finds.dev← search

// the find

Bombfuse/emerald

★ 550 · Rust · MIT · updated Nov 2024

A 2D rust game engine focused on portability.

Emerald is a 2D game engine in Rust built around portability — desktop, Raspberry Pi, and eventually WASM/Android. It wraps Rapier for physics, Hecs for ECS, and wgpu for rendering into a single opinionated API. Aimed at developers who want something smaller and more direct than Bevy without rolling their own engine.

The manual physics step is a genuinely good design choice — pausing is trivially `don't call step()` rather than fighting a global time system. First-class Aseprite support (both native `.aseprite` files and exported spritesheets) is a real convenience that most engines leave to third-party crates. The asset packing approach for WASM — `include_bytes!` behind a cfg flag so the same load API works everywhere — is a clean solution to a genuinely annoying portability problem. Example coverage is solid: raycasting, joints, tilemaps, hot reload, render-to-texture all have working examples.

WASM and Android are openly marked 'probably broken right now' and the last commit was November 2024 — 550 stars and 12 forks suggests this is mostly one person's project and momentum is unclear. No scene graph or built-in UI system beyond basic buttons; anything beyond sprites and tilemaps you're building yourself. The editor directory exists but is essentially a stub — don't expect tooling. Hecs is fast but deliberately minimal, so anyone used to Bevy's system scheduling and change detection will find the manual update loop pattern a step backward.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →