Skip to content

observant2/rg3d

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Discord Lines of code

RG3D

3D game engine written in Rust.

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 channel

Screenshots

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

1

2

3

4

5

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

editor

Features

  • Deferred shading.
    • Directional light.
    • Point light + shadows.
    • Spot light + shadows.
    • Bump mapping.
    • Screen-Space Ambient Occlusion (SSAO).
    • Soft shadows.
    • Volumetric light (spot, point).
    • Instancing - render lots of objects without any overhead.
  • Render in texture.
  • Sky box.
  • Multi-camera rendering.
  • Level-of-detail (LOD) support.
  • Scene graph with pivot, camera, mesh, light, particle system, sprite nodes.
  • Built-in save/load - save/load state of engine in one call.
  • High quality binaural sound with HRTF support.
  • Skinning.
  • Particle systems with soft particles.
  • A* pathfinder.
  • Navmesh.
  • FBX Loader.
  • Full TTF/OTF fonts support (thanks to fontdue and ttf-parser crates).
  • PNG, JPG, TGA, DDS, etc. textures (thanks to image crate).
  • Compressed textures support (DXT1, DXT3, DTX5)
  • Advanced node-based UI with lots of widgets.
  • Animation blending state machine - similar to Mecanim in Unity Engine.
  • Animation retargetting - allows you to remap animation from one model to another.
  • Async asset management (textures, models, sound buffers).
  • Advanced physics (thanks to rapier physics engine)
    • Rigid bodies.
    • Rich set of various colliders.
    • Joints.
    • Ray cast.
    • Many other useful features.
  • Core library.
  • Fast iterative compilation
    • Debug: ~3 seconds
    • Release: ~8 seconds
  • Lots of examples.

Frequently asked questions

Q: Is rg3d using ECS?

A: No. It is using more classic OOP approach. However, it uses lots of optimizations for efficient memory management such as generational pools.

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

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

Supported Operating Systems

  • Windows - full support
  • Linux - full support
  • macOS - full support
  • WebAssembly - not supported yet: any help is appreciated.

Compiler version

rg3d require latest stable Rust compiler.

Contributing

Contributions are very welcome! Please check Issues to see how you can help project and feel free to create your own issue!

Limitations

  • FBX loader supports versions 7100 - 7400. Binary 7500 is not supported yet, but ASCII is.

About

3d game engine written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 98.8%
  • GLSL 1.2%