EightBittr
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
Documentation
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.
- docs/FAQs
Development
This repository is a portion of the EightBittr monorepo.
See its docs/Development.md for details on how to get started.
Running Tests
yarn run test
Tests are written in Mocha and Chai.
Their files are written using alongside source files under src/
and named *.test.ts?
.
Whenever you add, remove, or rename a *.test.t*
file under src/
, watch
will re-run yarn run test:setup
to regenerate the list of static test files in test/index.html
.
You can open that file in a browser to debug through the tests, or run yarn test:run
to run them in headless Chrome.