
An approachable cross-platform framework for creating 2D games in either Rust, Lua, or both.
⚠️ KERO IS CURRENTLY IN UNSTABLE ALPHA TESTING PHASE AND NOT FOR GENERAL USE
✅ Features
Kero is a pure-code framework that programmers can use to code their games or even to build their own game engines. It provides:
- 🖥️ a window, game loop, and rendering context out of the box and ready to go
- 🎮 mouse, keyboard, and gamepad input as well as virtual input mapping
- 🖼️ shaders, surfaces, textures, and other graphics resources
- 🖌️ a straightforward but powerful canvas-style drawing API
- 🧮 various math types for vectors, matrices, rotations, etc.
- 📐 geometry types for various shapes, overlap testing, extraction, raycasting, etc.
- 🎨 tools for working with colors, image encoding, decoding, and manipulation
- 🧳 texture packing and other techniques for rendering optimization
- 🦀 full access to Rust's speed, power, ecosystem, and pleasure of use
- 🌙 full Lua bindings if desired, with LuaLS type annotations
💡 Getting started
There's no fancy setup required, Kero is just a normal crate. To create a new empty game project,
first create it and add kero as a dependency:
cargo new --bin my_game
cd my_game
cargo add kero
Then, replace src/main.rs with the following:
use *;
// store your game state and graphics resources here
The examples folder has a bunch of examples you can check out to see how different things are done.
💃 Join the community
Join our Discord to chat, get help, report bugs, and share what you're working on!
Check out our {{TODO: Contributing}} page if you're interested in helping maintain and improve the project.
Say hello to our mascot {{TODO: MASCOT_NAME}}.