A cross-platform 2D game engine with a custom asset pipeline, a component-based scene model, and a TypeScript scripting runtime built on QuickJS-NG.
Bokken is for developers who like owning their tools: the asset packer, the scripting bridge, the render pipeline, and the command-line workflow are all first-party rather than glued together from black boxes.
It features component-based scenes, TypeScript scripting with QuickJS-NG compilation, Box2D v3 physics, a multi-channel audio mixer with DSP, dynamic 2D lighting with soft shadows, a JSX-based UI layer with hooks, a CPU particle system, PhysFS virtual asset archives, and a comprehensive CLI tool for building and debugging projects.
You don't clone this engine directly to make a game. Start from the project
template, which pulls the engine in automatically via CMake's FetchContent:
cookiecutter gh:bokken-technologies/template
cd my-project
make build # First build fetches the engine and builds bokken-cli
make install # Put bokken-cli on your PATH
bokken-cli run # Build and launchSee the template's README for the full project workflow and bokken-cli
command reference.
Cloning this repository is only needed to work on the engine itself or to run its tests:
git clone git@github.com:bokken-technologies/bokken.git
cd bokken
makeContributions are welcome. Before opening a pull request, read
CONTRIBUTING.md; all contributors must sign the Contributor
License Agreement, which is handled automatically by a bot on your first PR.
- Fork it (https://github.com/bokken-technologies/bokken/fork)
- Create a feature branch (
git checkout -b my-feature) - Commit your changes (
git commit -am "Add my feature") - Push the branch (
git push origin my-feature) - Open a pull request
- Giorgi Kavrelishvili — creator and maintainer