Давайте познакомимся с технической частью. Игра разрабатывается на языке С/C++ с использованием моддифицированного движка общего назначения Cocos2d-x. Вообще изначально задумывалось создать собственный движок, под рабочим названием "Exarion" для RPG игр, как вдруг мы решили его сначала испытать на простенькой маленькой игре про смайликов. Так что первые наработки с этого движка отправились прямиком в новоиспеченную игру. И в результате история движка "Exarion" кончилась не успев начаться, дело в том что Cocos2d-x, что должен был лежать в его основе на деле оказался далеко не идеален и имел кучу своих проблем, в частности крайне плохую поддержку настольных систем, что вынудило лепить свои грабли даже для работы с клавиатурой и самим прикручивать звуковой движок OpenAl. Так что для RPG движок придется менять и уже есть претенденты, но это уже другая история...
К слову проект оказался не такой-то уж и маленький, уже считай полгода идет разразработка (конечно не вплотную, а по мере возможности). На данный момент код игры содержит 13163 строки кода без учета комментариев и стороних библиотек. И это без учета кода изменений движка Cocos2d-x, вспомогательных утилит и шейдеров из игры.
На данный момент уже реализованно:
- - основная игровая логика и игровые менюшки
- - сохранение прогресса и счета игры
- - поддержка нескольких языков и переключение между ними на лету
- - воспроизведение звука-музыки
- - загрузка спрайтов из "атласов" (хранение нескольких изображений в одном большом) - это экономит память, что особенно полезно для тайлсетов в рпг
- - различные спецэффекты и анимация, работающие через шейдеры
- - отладочная консоль с логом работы:
- - отлачная информация в игре для слежения за изменениями в потреблении ресурсов и игровыми счетчиками
- - работа с ресурсами из контейнера данных (*.epk)
- - чтение каскадных файлов конфигурации (*.ecd)
- - гибкая настройка всего и вся, почти все что нужно вынесенно и разнесенно по различным файлам настроек, что особенно полезно при разработке уровней.
- - глобальные настройки, позволяющие менять разрешение экрана и настраивать основные начальные параметры игры...
За подготовку этой записи отдельное спасибо товарищу программисту за помощь, правки и уточнения.