A small start. Room to grow.
Start with Game and Ctx. Reach for entities, components and fixed-step systems when your game needs them.
Explore the ECSA code-first Rust engine for 2D and 3D games.
A little less ceremony. A lot to make.
cargo add ponkoIntegrated tools to get moving. Direct APIs to make it yours.
Start with Game and Ctx. Reach for entities, components and fixed-step systems when your game needs them.
Explore the ECSA wgpu-powered 2D and 3D renderer, with physics, audio and UI alongside it. Build from code, with your own asset tools.
See the rendering guideInspect components, step a running simulation, capture screenshots and measure performance. Connect external tools and agents through MCP.
Meet the runtime toolsFixed-tick, headless runs without a window or GPU. Rust first, with C and C++ bindings for native integrations.
Run headlessOne setup closure. One frame loop.
Add a sprite, then make it move.
use ponko::*;
fn main() {
Game::new("My Game", 800, 600).run(|ctx| {
let sprite = ctx.load_texture("crab.png");
let mut position = vec2(400.0, 300.0);
move |ctx: &mut Ctx| {
if ctx.key_down(Key::Right) {
position.x += 200.0 * ctx.dt();
}
ctx.draw(&sprite, position);
}
});
}Ponko is a young engine with an ambitious direction. Expect rough edges, check the current capabilities, and help shape what comes next.
Contribute where you’re comfortable: Rust, a small bug fix, a clearer example. You don’t need to take on every language or write a book to help.