mdd:rpg_dsl

The RPG DSL: a case study of language engineering using MDD for Generating RPG Games for Mobile Phones

Eduardo Marques, Valter Balegas, Bruno Barroca, Ankica Barisic, Vasco Amaral

Departamento de Informatica Faculdade de Ciencias e Tecnologia Universidade Nova de Lisboa, Portugal.

Предметно-ориентированный язык для RPG игр: исследование языка разработки на основе управляемых моделей для создания RPG игр для мобильных устройств

Введение

Данная работа посвящена разработке предметно-ориентированного языка (domain-specific language – далее DSL) для разработки, развития и технической поддержки RPG (Role-Playing Game – RPG) игр. Актуальность обусловлена сложностью разработки различных игровых программных обеспечений в связи с их интенсивным развитием. Данная проблема является типовой в области разработки игр и приводит к снижению темпов разработки, дорогостоящим тестам и т.д. Новизной данной работы является метод разработки, а именно: применение высокоуровневых абстракций (разработка с использованием управляемых моделей, model-driven development, далее MDD). Также демонстрируются некоторые преимущества использования технологии MDD для проектирования кросс-платформенных игр и верификации моделей игровой логики.

Утверждается, что причиной относительно низкого качества продуктов в области разработки программного обеспечения (не только направления игровых программ) является недостаток воспроизводимых достигнутых при реализации работ решений и результатов, а также недостаток инфраструктур. В идеале данные инфраструктуры и решения могли быть повторно воспроизведены при реализации настоящих проектов, тем самым ускорив процесс разработки ПО.

В более конкретной области, а именно области RPG игр, любая игра данного жанра может быть представлена одной общей моделью, т.к. внутри каждого игрового жанра присутствует определенная игровая логика. Данная игровая логика заключается в наличии определенных повторяющихся концептов (к примеру для игр RPG данными концептами являются герои, диалоги, карты и т.д). Таким образом, при проектировании интерфейса ПО имеет смысл разработка некоторой абстракции над концептами, которая позволит максимально автоматизировать процесс создания интерфейса, тем самым значительно уменьшив объем выполняемых работ при разработке, а также упростив анализ интерфейса ПО и его тестирование. Одной из ключевых задач, рассматриваемых в исследуемой работе является разработка предметно-ориентированного языка моделирования (domain-specific modeling language – DSML).

Анализ предметной области

В работе приводится детальный анализ предметной области, над которой строится концептуальная абстракция. В результате анализа игровой логики различных игровых ПО жанра RPG, приведено детальное описание выделенных концептов. В работе рассмотрены и проанализированы в терминах объектов следующие концепты:

  • Агенты (второстепенные герои);
  • Герой (контролируемый игроком агент);
  • Игровое пространство (карта, сцены);
  • Задачи, цели (логика выполнения и завершения игры);
  • Игровая платформа.

В качестве платформы решено выбрать игровую платформу, максимально подходящую для реализации RPG игр и разработать для нее собственный Фреймворк (Framework, каркас). Приведены примеры Фреймворков и, на взгляд авторов, их преимущественные характеристики. В качестве Фреймворка решено использовать Corona, т.к. данный язык обеспечивает возможность кросс-платформенной реализации. В разработке игровой платформы применяется язык Lua. Т.к. достаточно легко в качестве продукта игрового приложения (программы) иметь игру, которую невозможно выполнить («пройти»), необходимо обеспечить возможность тестирования имеющейся модели программы. В качестве инструмента проверки статичных свойств в работе используется OCL. Тем не менее, отсутствует абсолютная гарантия того, что динамические свойства модели будут сохранены при любых возможных шагах выполнения игры. В качестве инструмента проверки модели (Model Checker) используется ALPiNA (Algebraic Petri-net analyser).

Реализация DSML

При реализации DSML используются метамодели EMF (Eclipse Modeling Framework). Данные метамодели позволяют в полной объеме описать все возможные свойства и атрибуты абстракций разрабатываемой платформы. В результате реализовано 3 метамодели, предназначенные для: основного языка разработки RPG игр (основная модель) и упрощения преобразования в исполняемые и анализирующие платформы (промежуточные). Вместо использования метода преобразования одной модели в другую Model-2-Model (M2M) или модели в код Model-2-Code (M2C), преобразование осуществлялось поэтапно. Поэтапной метод преобразования позволяет упростить будущее преобразование моделей при кросс-платформенных разработках, отслеживать этапы преобразования моделей, а так же упростить имплементацию разрабатываемого языка. Реализована графическая оболочка, позволяющая инженерам программного обеспечения создавать примеры, затем преобразовывать их в промежуточные языки: Corona Framework и APN. С помощью разработанного muFramework API, созданного над Corona удалось значительно облегчить процесс M2C преобразования для генерирования кода игры. В связи с ограниченным функционалом инструмента ALPiNA, авторы работы описывают разработанный промежуточный язык muRPG, который выполняет функции фильтра при тестировании игровой логики (выполнение и завершение игры) и других интересующих свойств и атрибутов. Реализация и имплементация моделей произведена с помощью основанного на GMF/EuGENia графического языка. Генерация исполняемого кода осуществляется в два этапа:

  1. Преобразование образца RPG игры в метамодель muFramework методом M2M;
  2. Преобразование метамодели muFramework методом M2C.

Для генерации muRPG языка использовалось также преобразование моделей M2M: из модели RPG в модель muRPG. Затем для анализа данной модели, она подвергается преобразованию в APN модель. Верификация модели осуществляется с помощью ALPiNA.

Результаты

Результатом работы является разработанный язык DSML для создания RPG игр, включающий в себя преобразования из модели в модель (M2M) и промежуточные языки для упрощения языка и обеспечения возможности его верификации.

  • mdd/rpg_dsl.txt
  • Last modified: 3 weeks ago
  • (external edit)