Scroll Shooter
A 3D vertical shoot-'em-up with no power-ups: the only way to get stronger is the hangar. Earn credits for every kill, then buy weapons, shields, armour and reactors and balance the energy budget of your ship.
Click the game to give it keyboard focus. Best on a desktop browser.
Six missions of scripted enemy waves (fighters, zigzaggers, gunships, kamikazes, carriers) end with the boss Leviathan. Kills pay credits, a first win pays a mission bonus, and missions can be replayed.
Between missions the hangar is the game: weapons, shields and armour all draw on the reactor's capacitor, armour makes the ship heavier and slower, and a negative energy balance means your guns fire in bursts. The visuals are 3D, but the ship moves only in the plane, as in a classic scroller.
How it's made
Built by agents, designed by me
I acted as orchestrator and architect: I set the requirements, the architecture rules and the verification approach, and AI coding agents wrote the code and documentation inside those rules. This game was developed in parallel with LifeSim by a separate agent session on its own branch.
Home-made ECS and DI
Combat runs on Morphic, the small entity-component-system and dependency-injection framework written for these demos. Every mission is its own DI scope with its own world and pipeline, created when you launch and disposed when you return to the hangar.
Patterns from morphisms
Enemy trajectories are strategies, the hangar economy is a set of pure functions over the ship loadout, the screens are a state machine and the UI follows MVVM. All of them are derived from one graph of data transformations that is generated from the code and checked by a test.
Verified
The game logic is engine-free C#. Tests run in plain .NET and in Unity: they cover the economy (sell at half price, slot and money checks), the energy budget, the shield → armour → hull damage order, deterministic waves and a smoke test of the whole hangar → mission → debrief loop.