
PSU Ada Game Engine
A Penn State Behrend capstone team built PSU.Ada.GameEngine, an ECS-based 2D game engine in Ada that talks directly to the platform, with a hand-rolled Wayland binding on Linux and native Win32 bindings on Windows, with no middleware in sight. The team proved it out with a playable Arkanoid demo running on both OSes.

Penn State Behrend
Most student game engines sit on SDL and call it a day. A Penn State Behrend capstone team, Grant Deuterman, Timothy Robinson, Gregory High, and Christopher Moore, working with AdaCore through the GNAT Academic Program, built PSU.Ada.GameEngine the hard way: an ECS-based 2D engine library in Ada that talks directly to the platform. On Linux, that means a hand-rolled Wayland binding for windowing and input, and audio played straight through the PipeWire C API from Ada; on Windows, native Win32 bindings. No engine, no framework, no middleware layer.
The ECS core stores entities and components in a central "database" of hashed-map component tables, with systems written as tagged types registered dynamically in a vector — movement, collision, ball physics, brick destruction, audio — each instrumented with real-time performance timers. Rendering is pure software into a raw ARGB8888 framebuffer: pixels, lines, filled shapes, and text, all drawn by Ada code. A test suite covers the component tables, store, systems, and the math and AABB physics libraries underneath.
The proof runs on both OSes: a playable Arkanoid demo with per-platform input backends. And the project lives on; the engine is now a base for continued experimentation within AdaCore's academic program.


