GithubHelp home page GithubHelp logo

sunguangdong / rg3d Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fyroxengine/fyrox

0.0 1.0 0.0 234.84 MB

3d game engine written in Rust

Home Page: https://rg3d.rs

License: MIT License

Rust 98.41% GLSL 1.59%

rg3d's Introduction

RG3D

Rust Game engine 3D

Crates.io Crates.io docs.rs Discord Lines of code

A feature-rich, general purpose 3D game engine written in Rust with a scene editor. Most powerful 3D game engine written in Rust so far.

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:

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

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

Features

  • Exceptional safety, reliability, and speed.
  • Deferred shading.
    • Renderer based on OpenGL 3.3 Core (released in 2010) which means that your game will run on almost any relatively modern GPU.
    • 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.
    • FXAA
  • Render in texture.
  • Sky box.
  • Multi-camera rendering.
  • Multiple scenes.
  • Lightmap generator.
  • Level-of-detail (LOD) support.
  • Scene graph with pivot, camera, mesh, light, particle system, sprite nodes.
  • Built-in save/load - save/load the state of the 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 the 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: 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

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

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.

rg3d's People

Contributors

mrdimas avatar adamnemecek avatar jepotter1-archive avatar toyboot4e avatar martin-t avatar observant2 avatar minusgix avatar naomijub avatar jytesh avatar martinlindhe avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.