Introduction
Fyrox is a general-purpose 2D and 3D game engine written entirely in Rust. It provides a scene editor (FyroxEd), a UI framework, PBR rendering, skeletal animation, physics integration, and sound — covering the full game development pipeline without requiring external tools.
What Fyrox Does
- Renders 3D scenes with PBR materials, deferred shading, and global illumination
- Provides a visual scene editor (FyroxEd) for placing objects, tweaking materials, and scripting
- Handles 2D and 3D physics through Rapier integration
- Supports skeletal animation, animation blending, and state machines
- Includes a built-in UI framework (fyrox-ui) for in-game interfaces and editor plugins
Architecture Overview
Fyrox uses a scene graph with nodes representing objects, cameras, lights, and terrain. The renderer is deferred with multiple passes for lighting, shadows, and post-processing. Game logic is attached to nodes via Rust scripts that implement the ScriptTrait. The engine compiles as a Rust crate, giving full access to Rust's type system and borrow checker during development.
Self-Hosting & Configuration
- Requires Rust toolchain (rustup) and a C++ compiler for native dependencies
- Create projects with fyrox-template which scaffolds game, editor, and executor crates
- Configure rendering, physics, and audio in the editor or via code
- Assets (models, textures, sounds) are managed through the editor's asset browser
- Export builds for Windows, Linux, macOS, and WebAssembly
Key Features
- Full scene editor with gizmos, material editor, and animation graph
- Rust's memory safety eliminates entire classes of crashes and undefined behavior
- Built-in navmesh generation and pathfinding for AI navigation
- Terrain system with multi-layer texturing and vegetation painting
- Hot-reloading of scripts during editor sessions speeds up iteration
Comparison with Similar Tools
- Bevy — Rust ECS engine without a built-in editor; Fyrox ships a full visual editor
- Godot — GDScript/C# engine; Fyrox uses Rust and benefits from its safety guarantees
- Unreal Engine — Proprietary C++ engine; Fyrox is MIT-licensed and Rust-native
- O3DE — Heavier AAA-oriented engine; Fyrox is lighter and more approachable for indie teams
- Macroquad — Minimal Rust 2D library; Fyrox is a full engine with 3D, physics, and an editor
FAQ
Q: Is Fyrox ready for production games? A: The engine is usable for indie and mid-scale projects. Several community games have been built with it, though the ecosystem is smaller than Godot or Unity.
Q: Can I use Fyrox for 2D games? A: Yes. Fyrox supports 2D rendering, sprite sheets, and 2D physics alongside its 3D capabilities.
Q: How does the editor compare to Godot or Unity? A: FyroxEd provides scene editing, material configuration, animation graphs, and terrain tools. It is functional but less mature in terms of plugin ecosystem.
Q: Does Fyrox support WebAssembly? A: Yes. Games can be compiled to WASM and run in the browser, though some features like multithreading have limitations on the web.