// the find
not-fl3/macroquad
Cross-platform game engine in Rust.
macroquad is a raylib-inspired 2D/3D game library for Rust that targets Windows, macOS, Linux, WASM, Android, and iOS from a single codebase. It deliberately keeps things simple: immediate-mode drawing API, built-in UI, and a minimal dependency tree. Aimed at hobbyists and game jam developers who want to ship something fast without fighting Bevy's ECS.
Fast compile times are real — 16s from clean on aging hardware is a genuine differentiator versus Bevy's multi-minute cold builds. The async/await trick for the main loop is clever; it solves the WASM blocking problem without pulling in an executor runtime. Cross-platform deploy via single cargo command for WASM and Android removes a lot of toolchain pain. The examples directory is thorough — arkanoid, asteroids, platformer, snake, first-person 3D, particles — actual runnable games, not just hello-world shapes.
The 'experimental' module sitting at the same import level as stable API is a red flag — coroutines, scene graph, and animation have lived there for years with no graduation path, so you're building on shifting ground. 3D support exists but is clearly a second-class citizen; no PBR, no scene hierarchy, no skeletal animation. The built-in UI is immediate-mode and functional but nowhere near production quality — don't plan a complex UI on top of it. WASM still requires hosting your own JS bundle from a GitHub Pages URL in the README, which is a supply-chain concern for anything you'd actually ship.