Flame Steel Engine Game Toolkit

Today I want to show you Flame Steel Engine Game Toolkit architecture.
Flame Steel Engine Game Toolkit allows you to create games on Flame Steel Engine platform:

All classes in Flame Steel Engine is starts with FSE prefix (Flame Steel Engine), and FSEGT (Flame Steel Engine Game Toolkit) for toolkit.
Game scene, objects and game map, ui, everything is FSEObject subclass and must be placed inside FSEGTGameData class. Every FSEObject subclass must conforms to FSESerialize interface (subclass), that allows to save/load the game data with all objects.
FSEController class that allows to work with FSEObjects data. Game toolkit have basic game scene controller – FSEGTGameSceneController, you must subclass it to use your custom game scene logic.
IOSystem is instance of FSEGTIOSystem interface (subclass), that interface contains FSEGTRenderer, FSEGTInputController, FSEGTUIRenderer.
FSEGTIOSystem must implement renderer, input handling and ui rendering, based on some IO system available for current platform.
At this moment game toolkit contains SDL-based renderer, keyboard handler inside FSEGTIOSDLSystem class.

Flame Steel Engine Raycaster Demo
Flame Steel Engine Raycaster Demo

In the future plans – to create OpenGL-based io system, it will be called FSEGTIOGLSystem. If you want to create your own io system for the game toolkit, you must subclass FSEGTIOSystem and implement FSEGTRenderer, FSEGTInputController for that system.

Source code of Flame Steel Engine, toolkit, and game: