RG3D

Rust Game engine 3D (and 2D)

License (MIT) CI Status Crates.io docs.rs Discord Lines of code

A feature-rich, production-ready, general purpose 2D/3D game engine written in Rust with a scene editor.

Support

If you want to support the development of the project, click the link below. I'm working on the project full time and use my savings to drive development forward, I'm looking for any financial support.

Become a patron!

Community

Join the Discord server

Tutorials

Writing a 3D Shooter using rg3d: - #1 Character controller - #2 Weapons - #3 Bots and AI

Writing a role-playing game using rg3d - #1 Character controller

Important notes:

The engine is suitable for any kind of games, not only shooters, the fact that there are two 3d shooters that were made with the engine, and a set of tutorials about 3d shooters just means that @mrDIMAS loves 3d shooters. There will be more tutorials about games in different genre, but again - nothing stops you from making an RPG, RTS, rogue-like, etc.

Screenshots

These screenshots are from Station Iapetus which is a commercial project made with the engine.

1

2

These screenshots are from rusty-shooter which is a big demo for the engine.

3

4

5

Examples

There are many examples covering various aspects of the engine. Also don't hesitate to create an issue or ask on Discord if you need help!

Editor

editor

Features

Frequently asked questions

Q: Does rg3d use ECS?

A: No. It uses generational pools (arenas) which are optimized for efficient memory management to retain more static type safety.

Q: Examples running too slow on my PC, FPS is too low, help!

A: First, make sure you run examples on the discrete GPU, not on a built-in of your CPU. Built-in GPUs are very slow and not suitable for rg3d. Second, make sure your discrete GPU is powerful enough to run modern games at a decent frame rate.

Supported Operating Systems

Compiler version

rg3d requires the latest stable Rust compiler.

Contributing

Contributions are very welcome! Feel free to open Issues and Pull Requests.

Check the good first issue label to see where you can help.