A code-first 2D game engine/framework for Go, providing an Entity Component System (ECS) architecture to enable developers to build captivating projects.
⚠️ Project Status: (Shelved)Bappa is a game engine, no longer in active development.
It was a self-directed project to build a foundational framework for 2D games in Go (Ebiten), and it was used to create the prototype "Concrete Echos."
This project was a massive learning experience and contains many early design decisions that I would architect differently today. The lessons learned while building this engine are the foundation for any future, more robust version.
I've left the repository public as a "read-only" example of this design and iteration process.
The best way to get started with Bappa is through examples and documentation, or use a bappacreate starter template for hands on experience!
Getting Started | Examples | Docs
![]() |
![]() |
![]() |
| LDTK Split Screen Platformer Template | Topdown Split Screen Template | LDTK Netcode POC Template |
The Bappa Framework is organized as a monorepo, combining all core packages in one repository. This makes it easy to follow all development activity and ensures consistency across the framework.
- Import Path:
github.com/TheBitDrifter/bappa/coldbrew - GoDoc
- Description: Main package for client-side game operations, handling rendering, input, scene management and cameras
- Import Path:
github.com/TheBitDrifter/bappa/blueprint - GoDoc
- Description: Core component definitions and scene planning functionality
- Import Path:
github.com/TheBitDrifter/bappa/warehouse - GoDoc
- Description: Entity storage, archetype management, and query system for the ECS architecture
- Import Path:
github.com/TheBitDrifter/bappa/tteokbokki - GoDoc
- Description: Physics and collision detection systems
- Import Path:
github.com/TheBitDrifter/bappa/table - GoDoc
- Description: Efficient data storage optimized for game objects
- Import Path:
github.com/TheBitDrifter/bappa/drip - GoDoc
- Description: Basic TCP server to run core Bappa systems, receive input, and broadcast state
The Bappa Framework is licensed under the MIT License
Bappa is built on top of Ebiten, a dead simple 2D game library for Go. Ebiten is also licensed under the Apache License 2.0.
This project wouldn't be possible without the incredible work of Hajime Hoshi and all the Ebiten contributors.


