ponko
OPEN SOURCE GAME ENGINE v0.0.1 / early days

Games begin
with code.

A code-first Rust engine for 2D and 3D games.
A little less ceremony. A lot to make.

cargo add ponko

RUST FIRST2D + 3DC / C++ BINDINGSHEADLESS READY
01 / UNDER THE HOOD

Bring an idea.
Keep your hands on the code.

Integrated tools to get moving. Direct APIs to make it yours.

[01]

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 ECS
[02]

Pixels, polygons, possibility.

A wgpu-powered 2D and 3D renderer, with physics, audio and UI alongside it. Build from code, with your own asset tools.

See the rendering guide
[03]

See what your code is doing.

Inspect components, step a running simulation, capture screenshots and measure performance. Connect external tools and agents through MCP.

Meet the runtime tools
[04]

Keep the simulation running.

Fixed-tick, headless runs without a window or GPU. Rust first, with C and C++ bindings for native integrations.

Run headless
02 / HELLO, WORLD

The first frame
is yours.

One setup closure. One frame loop.
Add a sprite, then make it move.

Follow the complete tutorial
src/main.rsRUST
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);
        }
    });
}
Place crab.png in assets/. The guide covers setup and platform dependencies.
03 / BUILT IN THE OPEN

Early days.
Open doors.

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.

Make something
only you would make.

Get started