Архитектура Flame Steel Engine Game Toolkit

Сегодня я расскажу об архитектуре тулкита для разработки игр Flame Steel Engine Game Toolkit.
Flame Steel Engine Game Toolkit позволяет создавать игры на базе движка Flame Steel Engine:
flamesteelgametoolkitschematics

Все классы движка Flame Steel Engine начинаются с префикса FSE (Flame Steel Engine), и FSEGT (Flame Steel Engine Game Toolkit) для тулкита.
Игровая сцена, объекты, кнопки, все это подклассы FSEObject и должны находиться внутри класса FSEGTGameData. Каждый FSEObject должен реализовывать интерфейс FSESerialize, это позволит сохранять/загружать данные игры, обеспечивать механизм сохранений.
FSEController класс работает с объектами класса FSEObject. Тулкит имеет базовый класс контроллера игровой сцены – FSEGTGameSceneController, вы можете наследовать данный класс для реализации своей игровой логики.
IOSystem это объект интерфейса FSEGTIOSystem, этот интерфейс содержит FSEGTRenderer, FSEGTInputController, FSEGTUIRenderer.
FSEGTIOSystem должен реализовывать отрисовщик (рендерер), получение данных от клавиатуры, джойстиков (устройств ввода) и обеспечивать отрисовку элементов интерфейса, для доступной системы ввода-вывода данной платформы.
На данный момент реализован отрисовщик, контроллер клавиатуры на основе библиотеки SDL, он доступен в классе FSEGTIOSDLSystem.

Flame Steel Engine Raycaster Demo
Flame Steel Engine Raycaster Demo

Планы на будущее создать IOSystem на основе OpenGL, класс будет называться FSEGTIOGLSystem. Если вы хотите создать IOSystem на основе какой-либо платформы, то вам необходимо использовать интерфейс FSEGTIOSystem и реализовать отрисовщик FSEGTRenderer, контроллер ввода FSEGTInputController для данной платформы.

Исходный код Flame Steel Engine, тулкита, игры:
https://github.com/demensdeum/FlameSteelCallOfTheDeathMask