A tile-first, retro-ready 2D game engine that runs on terminal, desktop, and web with a unified rendering abstraction.
RustPixel is a 2D game engine built in Rust with a tile-first architecture designed for retro-style games and applications. It enables developers to write code once and deploy across multiple targets—terminal, native desktop, and web—with consistent GPU-accelerated rendering.
Game developers and hobbyists creating retro-style 2D games, especially those who want to deploy the same codebase to terminal, desktop, and web platforms. It's also suitable for beginners interested in using the built-in BASIC interpreter for prototyping.
Developers choose RustPixel for its unified tile-based rendering abstraction that delivers high performance across all platforms with a single draw call, and its unique ability to render GPU-accelerated terminal UIs without a terminal emulator.
Tile-first. Retro-ready. Write Once, Run Anywhere—2D Engine!
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 code once and deploy to terminal, desktop, and web with consistent rendering, as shown by the MDPT toolkit running identically across all targets using commands like 'cargo pixel r mdpt g -r' for native and 'cargo pixel r mdpt w -r' for web.
Uses a unified Texture2DArray with mipmaps for crisp text and graphics, enabling single-draw-call performance and efficient GPU usage, as detailed in the architecture section.
Includes pixel_basic, a BASIC interpreter with game hooks and graphics commands, ideal for beginners or quick iteration, plus tools like Petii for image-to-PETSCII conversion.
Renders terminal interfaces in native GPU windows without a terminal emulator, offering rich shader transitions and effects impossible in standard terminals, demonstrated by the MDPT presentation toolkit.
The tile-first architecture is optimized for retro-style games but lacks support for modern 2D rendering techniques like vector graphics or complex sprite animations, limiting visual flexibility.
Requires Nerd Fonts, Rust 1.71+, and additional tools like wasm-pack for web deployment, complicating initial setup compared to all-in-one engines with simpler install processes.
As a specialized Rust project, it has a smaller community and fewer third-party resources than established game engines, which can slow development for complex features or troubleshooting.