Skip to content

TheBitDrifter/bappa

Repository files navigation

Bappa Framework Logo
Bappa

(www.bappa.net)

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.

Getting Started

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

Framework Components

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.

Coldbrew

  • Import Path: github.com/TheBitDrifter/bappa/coldbrew
  • GoDoc
  • Description: Main package for client-side game operations, handling rendering, input, scene management and cameras

Blueprint

  • Import Path: github.com/TheBitDrifter/bappa/blueprint
  • GoDoc
  • Description: Core component definitions and scene planning functionality

Warehouse

  • Import Path: github.com/TheBitDrifter/bappa/warehouse
  • GoDoc
  • Description: Entity storage, archetype management, and query system for the ECS architecture

Tteokbokki

  • Import Path: github.com/TheBitDrifter/bappa/tteokbokki
  • GoDoc
  • Description: Physics and collision detection systems

Table

  • Import Path: github.com/TheBitDrifter/bappa/table
  • GoDoc
  • Description: Efficient data storage optimized for game objects

Drip

  • Import Path: github.com/TheBitDrifter/bappa/drip
  • GoDoc
  • Description: Basic TCP server to run core Bappa systems, receive input, and broadcast state

License

The Bappa Framework is licensed under the MIT License

Acknowledgments

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.