Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
mdd:rpg_dsl [2026/08/29 07:53] – Bulk sync migration usermdd:rpg_dsl [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +**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 графического языка. Генерация исполняемого кода осуществляется в два этапа:
 +
 +  - Преобразование образца RPG игры в метамодель muFramework методом M2M;
 +  - Преобразование метамодели muFramework методом M2C.
 +
 +Для генерации muRPG языка использовалось также преобразование моделей M2M: из модели RPG в модель muRPG. Затем для анализа данной модели, она подвергается преобразованию в APN модель. Верификация модели осуществляется с помощью ALPiNA. 
 +
 +**Результаты**
 +
 +Результатом работы является разработанный язык DSML для создания RPG игр, включающий в себя преобразования из модели в модель (M2M) и промежуточные языки для упрощения языка и обеспечения возможности его верификации.