Macroquad is a cross-platform game engine in Rust that allows developers to write game code once and deploy it to Windows, macOS, Linux, HTML5, Android, and iOS without platform-specific conditional compilation.
The engine solves the problem of managing different main loop requirements across platforms, particularly the challenge that web and mobile environments cannot block execution like traditional desktop applications. Macroquad uses Rust's async/await mechanism to preserve the main function's stack and enable pause-resume execution, allowing identical code to run everywhere without external runtime dependencies. The library emphasizes minimal dependencies and fast compilation, with a clean immediate-mode API inspired by raylib. It includes efficient 2D rendering with automatic geometry batching and a built-in immediate mode UI library.
Macroquad suits developers building 2D games or interactive applications who want to target multiple platforms from a single codebase. It is particularly valuable for those deploying to web via WebAssembly or to mobile platforms, where the single-command deployment process eliminates much platform-specific boilerplate. The project works well for developers comfortable with Rust and those who prioritize compilation speed and minimal external dependencies over maximum feature breadth.
Development activity shows consistent engagement with the community through an active Discord server and maintained examples. The project maintains a curated ecosystem resource through the Awesome Quads list, indicating ongoing curation of related projects and resources. The inclusion of detailed platform-specific documentation, such as dedicated iOS provisioning guides, reflects attention to making cross-platform deployment practical rather than theoretical.