A simple, cross-platform game engine for Rust with efficient 2D rendering and immediate mode UI.
macroquad is a cross-platform game engine for the Rust programming language, designed to simplify 2D game development. It provides an easy-to-use API for rendering, input handling, and UI, with support for multiple platforms including desktop, web, and mobile. The engine solves the complexity of cross-platform main loop organization using Rust's async/await without external runtimes.
Rust developers interested in creating 2D games or graphical applications that need to run on multiple platforms, including web and mobile. It's suitable for both beginners and experienced developers looking for a lightweight, dependency-minimal engine.
Developers choose macroquad for its simplicity, fast build times, and efficient cross-platform support without the overhead of complex dependencies. Its immediate mode UI and single-command deployment for WASM and Android streamline the development workflow.
Cross-platform game engine in Rust.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Write once and deploy to Windows, Linux, macOS, HTML5, Android, and iOS without platform-specific defines, as emphasized in the README for streamlined development.
Minimal dependencies result in a clean build taking only 16 seconds on older hardware, reducing iteration time during development.
Automatic geometry batching optimizes drawing performance for 2D games, ensuring smooth graphics with minimal overhead.
Single-command deploy for WASM and Android simplifies publishing, with clear instructions in the README for web and mobile targets.
Uses Rust's async/await for cross-platform main loop organization, which the README admits can look 'scary' and adds a learning curve for those unfamiliar with Rust concurrency.
Focuses solely on 2D rendering with no native 3D support, restricting use cases for games or applications requiring advanced graphics.
Deployment to iOS requires manual steps for provisioning and app bundle creation, as detailed in the README, making it less straightforward than other platforms.