C++23 / ElysiaEngine / 2D Flight Game
FlyMe2TheMoon
A desktop recreation of Fly2theMoon built on my own ElysiaEngine. Guide the character toward the moon with controlled thrust, navigating gravity, inertia, and obstacles while collecting stars and gems. The project brings flight physics, level mechanisms, Lua-driven story sequences, and a complete desktop interface together in C++23.
Repo + Download
Demo Videos (0)
Videos to be added
Gameplay videos will be added here. You can explore the architecture and source excerpts below in the meantime.
Architecture & Implementation
Flight and controls
Keyboard, mouse, and gamepad inputs feed the same flight model. Pointer direction and distance determine thrust, while analog stick and trigger input retain gradual power after a 20% dead zone. Gravity, inertia, collision, power limits, and damping shape the route through each level.
Levels and mechanisms
The project imports terrain and object data for 60 levels across four chapters. Gameplay entities implement moving platforms, rotating mechanisms, spikes, wind fields, portals, lasers, launchers, and bombs. Content coverage and individual level validation are still in progress.
Story and presentation
Lua coroutines suspend for dialogue, delays, and camera travel, then resume through the game loop or player input. Host callbacks connect scripts to FlightScene. The presentation layer handles tutorials, character transitions, collection effects, dialogue, audio, and camera movement.
Progress and the desktop interface
Main menu, level selection, achievements, settings, credits, HUD, pause, and result panels form the desktop flow. Completed runs update stars, scores, best times, achievements, and newly unlocked levels through progress::Store and the engine save service. Death records and story flags are also retained.
Engineering and development tools
GameModule registers scenes with ElysiaEngine; FlightScene coordinates content, gameplay entities, story, and frontend components. CMake builds the C++23 project with SDL3, Box2D, and Lua. The optional F2 overlay exposes debug drawing, performance statistics, time controls, and camera controls; tests, input replays, and asset checks support development.
Architecture Diagram
Core Code Blocks (4)
Scene registration
GameModule registers the menu, flight, selection, credits, achievements, and settings scenes with the engine SceneManager.
Flight input and thrust
Analog controls rescale their dead zone; pointer input maps angle and distance to thrust. Force is limited by maximum power, with separate velocity damping.
Lua story coroutines
Script commands yield for dialogue and timed waits. Runtime resumes the coroutine after time advances or the player continues a line.
Clear records and level unlocks
The progress store compares dependency-based unlocks before and after a clear, retains best records, evaluates achievements, and saves progress.
Project status and asset sources
This is an unofficial recreation for game development learning and research into the original mechanics. Project code is MIT licensed; the original name, artwork, audio, and story belong to their respective rights holders and are not covered by that license. Implementation and level validation are ongoing; importing all 60 levels does not establish a complete playthrough of every level.