Today we are checking out RG3D, an open source Rust language powered game engine. We previous covered Rust game development a few years back, since then however a few new viable game engines have arisen such as BEVY and now RG3D. RG3D is open source, released under the liberal MIT license and contains a full featured 3D game engine, as well as a separate 3D editor Rusty Editor, for creating 3D scenes. RG3D is under very active development and is being used to create a commercial game.
Key Links of Interest
Features of RG3D include:
- High quality volumetric lighting (directional, point, spot) with soft shadows.
- PC (Windows, Linux, macOS) and Web (WebAssembly) support.
- Deferred shading – use tons of lights with small overhead.
- Built-in save/load – save or load entire state of the engine in one call.
- Full-featured scene graph with various nodes (pivot, camera, mesh, light, particle system, sprite).
- High quality binaural sound with Head-Related Transfer Function (HRTF) support.
- Standalone scene editor – make scenes in native engine format using the power of rusty-editor.
- Advanced physics: rigid bodies, rich set of various colliders, joints, ray casting, etc.
- Advanced user interface with lots of widgets, the editor is made using this UI.
- Advanced animation system with animation blending machines (similar to Mecanim) and animation retargetting.
- Multi-camera rendering – allows you to create picture-in-picture effects, make split-screen games and so on.
- Async asset management – load textures, models, sound buffers asynchronously and utilize all available CPU power.
- Skinning with flexible animation system.
- Multiple scenes support – allows you to have separate scenes for game menu, levels and so on.
- Normal, parallax, environment mapping – classic techiques that tremendously improves quality of graphics.
- Level-of-detail (LOD) support – allows you to change details of distant models to improve performance.
- Screen-Space Ambient Occlusion (SSAO) – add “volume” to your scenes at low cost.
- Fast Approximate AntiAliasing (FXAA) – old, but good antialising.
- Geometry instancing – render lots of objects without low overhead.
- Render in texture – render scene in a texture and use it later in other scene.
- Sky box – add details for outdoor scenes.
- Lightmap generator – bake static lights into texture to improve runtime performance.
- Particle systems with soft particles – flexible particles system allows you to build complex effects.
- Navmesh with
A*pathfinder – build navigation mesh for pathfinding and search paths on in.
- FBX Loader – allows you to load models of any complexity from industry-standard FBX format.
- TTF/OTF fonts support.
- Support of various texture formats, such as: png, jpg, dds (including compressed), tga, bmp, etc.
- Powerful core library with lots of commonly used algorithms.
- Fast iterative compilation: ~3 seconds in Debug, ~8 seconds in Release.
- Lots of examples covering various aspects of the engine.
- Production ready – it is possible to build almost any kind of game.
- Documentation and tutorials – it’s easy start making your own game!
- Hierarchical model resources – combine multiple assets in prefabs and engine will do the rest of the work.
You can learn more about RG3D and see this Rust powered open source game engine in action in the video below.