// the find
Bombfuse/emerald
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.