AdaCore: Build Software that Matters
AdaCore Hero Image

Yarlib - Capstone

A Penn State Behrend Capstone team built an Ada-only 2D game engine inspired by Raylib, with no C bindings, native Win32 and audio, an ECS design, and a playable demo delivered.

Yarlib

Penn State Behrend

Raylib has become a go-to library for indie game development. It's straightforward, powerful enough for many projects, backed by a vibrant community and written in C. Last year, we saw Tsoding create around 20 episodes developing a 2D game in Ada using Raylib bindings. While this approach worked, interacting directly with a C-based library can be quirky for developers preferring Ada's ergonomics.

To address this, AdaCore's mentor challenged a Penn State Behrend Capstone team (Lloyd Byrne, Brenda Garcia, Christopher D. Page, Robert Joseph Vogel) to build an equivalent library entirely in Ada, with a reduced but focused initial scope. Their ultimate goal was to enable the creation of 2D games solely in Ada, with no bindings and no third-party libraries. They even implemented native Win32 window handling and audio playback directly in Ada.

Additionally, they structured their game engine around the Entity Component System (ECS) pattern. Entities are simply objects in the game world composed purely of data (components). Systems are specialized units that update these entities by processing relevant component data.

The team quickly learned Ada, designed a realistic yet ambitious plan, and delivered impressive results. You can build and play their game here