Bare-bones, highly modular game engine for 2D 8-bit games.
EightBittr is an in-progress experimental game engine targeted to 8-bit retro 2D games. It's got some great features built-in, such as:
⚡Blazingly fast start times:
- Lazily-instantiated and -loaded components
- Lazily-instantiated actor classes with inline POJO sprite declarations
- <150KB minified / <30KB gzipped TTFI game components
🔧Easy scaffolding for extensible mods, level editors, and random map generation 🖐Touch UI support with schema-driven menus and touchscreen buttons 💉Full testability with dependency-injectable, swappable APIs for data storage and time management
Interested in learning more? See:
- docs/Architecture for a rundown of how EightBittr sets up its members.
- docs/Components for descriptions of how each of EightBittr's pieces work together.
- docs/Consumption for how to set up a game using EightBittr.
- docs/Testing for how to test a game set up with EightBittr.
- docs/Runtime for a detailed play-by-play of what happens each game frame.
- ../../docs/Walkthrough for step-by-step instructions on how to set up a game with EightBittr.
This repository is a portion of the EightBittr monorepo.
See its docs/Development.md for details on how to get started.
yarn run test
Tests are written in Mocha and Chai.
Their files are written using alongside source files under
src/ and named
Whenever you add, remove, or rename a
*.test.t* file under
watch will re-run
yarn run test:setup to regenerate the list of static test files in
You can open that file in a browser to debug through the tests, or run
yarn test:run to run them in headless Chrome.