RG3D (Rust game engine) feature highlights(rg3d.rs)
rg3d.rs
RG3D (Rust game engine) feature highlights
https://rg3d.rs/general/2021/08/21/0.22-feature-highlights.html
72 comments
Hi! Is it possible to donate Bitcoin? Cheers
No, unfortunately. Bitcoin is banned in my country and it is very hard to convert it to fiat money.
Look up Bisq. It's an anonymous trustless exchange that's hard to censure. Disclaimer: I contributed to it.
Maybe suggesting to someone to break the law to receive donations is not really helpful.
Whether something is lawful does not decide whether it's useful. To some people bypassing currency censure is a good thing.
Do you support github donations? (If not, I'll sign up for patreon.)
This is amazing and is something I'm interested in using for my startup. I'd be glad to pitch in!
This is amazing and is something I'm interested in using for my startup. I'd be glad to pitch in!
Thank you! Unfortunately, GitHub donations is not supported in my country, so Patreon is the only option for me.
There is also https://liberapay.com/mrDIMAS - see the right panel on the rg3d repo. AFAIK it should be better than patreon because it doesn't take any cut but for some reason people are not using it.
I couldn’t help but notice the RG3 reminds me of the NFL player Robert Griffin III whose nickname was RG3. Was this just a coincidence?
What exactly do you think the overlap is between people interested in a Rust game engine and people who watch american football?
Well, I follow the NFL and am interested in game engine design, so...non zero?
I can also vouch for this perspective as, I remember RG3 (and I am Canadian, btw :) ) and thought of him when I saw the name (or rather sounded it out). So definitely non-zero. Just my 2 cents. I like this engine also, just to be clear :)
The amount of work to bring a new game engine to even remotely near the feature-set of the main existing engines is enormous, so congratulations on getting this far. I hope you're able to grow a team of contributors who can help you with this.
I think the biggest missing thing that I notice in new engines is that no one is seriously making a game with them. I know, making the engine is more than enough work already, but if it's not you having _somebody_ aiming to release a product made with the engine ought to be somewhere in your priorities. You might have lot of interesting tech, but unless end-user developers are using it in real ways you might find out later you're not headed in the right direction and meeting real needs. You can see this with the difference in emphasis between Unity (not game developers) and Unreal (Epic definitely are), to Unreal's benefit. And I say that as someone who uses Unity in my full-time job every day.
... but of course, you need a base feature-set to attract devs. So it's a big of a chicken-and-egg problem.
I think the biggest missing thing that I notice in new engines is that no one is seriously making a game with them. I know, making the engine is more than enough work already, but if it's not you having _somebody_ aiming to release a product made with the engine ought to be somewhere in your priorities. You might have lot of interesting tech, but unless end-user developers are using it in real ways you might find out later you're not headed in the right direction and meeting real needs. You can see this with the difference in emphasis between Unity (not game developers) and Unreal (Epic definitely are), to Unreal's benefit. And I say that as someone who uses Unity in my full-time job every day.
... but of course, you need a base feature-set to attract devs. So it's a big of a chicken-and-egg problem.
Thanks! I do have two pretty big games written with the engine - https://github.com/mrDIMAS/StationIapetus and https://github.com/mrDIMAS/rusty-shooter . I've started writing them because it is impossible to get right feature set, without a game that uses it.
Very nice, have any large gaming companies been contacting you yet? I would think they'd have a pretty large interest in Rust after seeing buggy games like Cyberpunk on the increase.
This looks like it has a lot of features, but that it's still miles behind Unreal. (I'm not downplaying the amazing technical achievement, and I'm very interested in watching RG3D evolve.)
Is this the most mature Rust game engine? There seem to be a lot of entrants in that race now. This one has the best video demos with technical rendering specifics, AFAICT.
If a coalition of companies were to band together and build an open source engine, what tech should they back, or is there no good starting point?
Amazon was open sourcing Lumberyard, right? Is that more mature? (I'd love to see Rust take off and "win" over C++, but there's a lot of ground to make up... Especially if you're chasing after Unreal.)
Is this the most mature Rust game engine? There seem to be a lot of entrants in that race now. This one has the best video demos with technical rendering specifics, AFAICT.
If a coalition of companies were to band together and build an open source engine, what tech should they back, or is there no good starting point?
Amazon was open sourcing Lumberyard, right? Is that more mature? (I'd love to see Rust take off and "win" over C++, but there's a lot of ground to make up... Especially if you're chasing after Unreal.)
If you want to back an open source engine that’s already very mature and has a big community, you want Godot. It’s not written in Rust, but it supports an FFI API that allows you to write your game logic in Rust. The killer feature that sets it apart from pure-Rust engines is console support.
If you want to see a skilled team with strong leadership building on a carefully designed foundation, and you’re not afraid to wait years for the payoff, there’s Bevy, which has made a splash on HN a couple times over the past year.
If you want an engine that’s comfortably mature today, and you want it to be written in Rust for no particular reason, then RG3D is the clear winner.
If you want to see a skilled team with strong leadership building on a carefully designed foundation, and you’re not afraid to wait years for the payoff, there’s Bevy, which has made a splash on HN a couple times over the past year.
If you want an engine that’s comfortably mature today, and you want it to be written in Rust for no particular reason, then RG3D is the clear winner.
One level down, and underneath Bevy, there's WGPU, which was on HN a few days ago. That's an all-Rust layer of middleware which connects to Vulkan, and makes Apple's Metal and Microsoft's Direct-X look a lot like Vulkan. So you get cross-platform graphics. All three APIs are really very similar; the differences exist mostly for "product differentiation". WGPU also supports WebGL, but not consoles or phones. Having a common interface for all those targets is a big win.
Now, that's not a game engine. It's just a graphics API, and a low level one. One level up from that is Rend3, which handles GPU memory allocation and queuing for WGPU. At this level, you put in meshes, textures, material parameters, and transforms. Images come out. No rigged mesh yet, so no characters.
I've been using Rend3/WGPU, and here's some early video.[1] This is a small area of Second Life. I'm working on the issues of handling very complex user-created content efficiently. Most games are constantly reusing the same textures and objects, but Second Life user created content is not like that.
Frankly, it's to soon to be using these libraries for a project with a deadline.
[1] https://vimeo.com/553030168
Now, that's not a game engine. It's just a graphics API, and a low level one. One level up from that is Rend3, which handles GPU memory allocation and queuing for WGPU. At this level, you put in meshes, textures, material parameters, and transforms. Images come out. No rigged mesh yet, so no characters.
I've been using Rend3/WGPU, and here's some early video.[1] This is a small area of Second Life. I'm working on the issues of handling very complex user-created content efficiently. Most games are constantly reusing the same textures and objects, but Second Life user created content is not like that.
Frankly, it's to soon to be using these libraries for a project with a deadline.
[1] https://vimeo.com/553030168
adamnemecek(4)
From this outsider's perspective, RG3D and Bevy are the two most mature engines. The Bevy folks are a bit better about getting the word out, so you hear a lot more about it, but both are doing really impressive stuff.
>build an open source engine
Not sure on "coalition of companies" but godot[0] is probably close.
[0]https://godotengine.org/
Not sure on "coalition of companies" but godot[0] is probably close.
[0]https://godotengine.org/
And there are Rust bindings for Godot as well[0].
[0]https://github.com/godot-rust/godot-rust
[0]https://github.com/godot-rust/godot-rust
Thank you! There are number of cool 2D game engines, but almost no such developed 3D engines, so rg3d is the most feature-rich game engine so far.
If you're interested in a 2D engine you might be interested in https://github.com/ensisoft/gamestudio
Godot is the leading open source engine right now. It has a rust community. Lumberyard is iirc a CryEngine derivative which... maybe I'm biased but the two games I know in that ecosystem are MechWarrior Online and Star Citizen and neither left an excellent taste in my mouth.
> Is this the most mature Rust game engine?
It is.
> There seem to be a lot of entrants in that race now.
None of them are anywhere close to rg3d. Amethyst is kind of dead.
It is.
> There seem to be a lot of entrants in that race now.
None of them are anywhere close to rg3d. Amethyst is kind of dead.
>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.
So do you plan to support it anyways?
>A: No. It uses generational pools (arenas) which are optimized for efficient memory management to retain more static type safety.
So do you plan to support it anyways?
Nothing stops you from implementing it yourself. Engine internals just don't need it, it works perfectly fine with OO-design.
Why is Rust the defining aspect? What circumstances would I use this in compared to other engines? Who is the intended audience?
Rust is my most-used Language, but my pattern-matching brain is cautious about projects that have "uses Rust" as a primary requirement.
Rust is my most-used Language, but my pattern-matching brain is cautious about projects that have "uses Rust" as a primary requirement.
A lot of the safety features of Rust are very attractive in the game dev space, being able to guarantee against the errors Rust does is really nice there, additionally, rust is a fairly pleasant language and well suited to the types of tasks game devs do, as well as still having the flexibilty to reach out in to native libraries as needed / be used as a native library itself. Mind you, my rust experience is fairly limited, but I have a project I'm doing right now that this would be just the ticket for if I can get it to work the way I want.
Game devs care about the ultimate performance, many old timers would still be writing in Assembly if given the opportunity.
So even if security matters, specially in multiple player games, there won't be much Rust love at GDC.
So even if security matters, specially in multiple player games, there won't be much Rust love at GDC.
Absolutely, but that's one of the nice things about Rust, it benchmarks almost exactly the same as C. The benefits rust offers are almost entirely in their lexer / analyzer, that's the whole point. Dart does a similar thing with its sound null safety, being able to guarantee what can and can't be null / invalid pointer removes the need for the language to test those cases, your CPU doesn't give a shit if you read uninitialized memory and get into a bad state, but your language does, so being able to divert all that checking to compile time is a nice boost in runtime perf.
Those are all great reasons. I guess I'm more looking at it this way: What is the motivation and intended uses for this engine, in light of existing engines? For example, Jon Blow created a new engine for The Witness because he felt it would be easier than bending an existing one to his work. A Plague Tale uses a novel engine to deal with the massive amount of rats. What's the equivalent use case here?
It's a lot of technical stuff, but here's the ones that leap out to me specifically:
Rust is a really nice to use, low level language. It competes with C in terms of performance, but also with other modern languages in terms of features. It's almost as easy to integrate with rust as it is C, which also makes it attractive since you can re-use known good C libraries instead of having to find / port / bind them yourself. My specific use case is wanting an embeddable game engine I can use inside Flutter, and it's way easier to bind to a 'native' library like this than to use Flutter's platform system to integrate Unity (I know from first hand experience).
There's also the tinkering factor: Some people just aren't content with what's there, maybe this library started as a way to smooth over a frustration the original developer had, or just to learn about game engines, or to learn rust even, but then it proved to be useful and liked and has grown a community.
Rust is a really nice to use, low level language. It competes with C in terms of performance, but also with other modern languages in terms of features. It's almost as easy to integrate with rust as it is C, which also makes it attractive since you can re-use known good C libraries instead of having to find / port / bind them yourself. My specific use case is wanting an embeddable game engine I can use inside Flutter, and it's way easier to bind to a 'native' library like this than to use Flutter's platform system to integrate Unity (I know from first hand experience).
There's also the tinkering factor: Some people just aren't content with what's there, maybe this library started as a way to smooth over a frustration the original developer had, or just to learn about game engines, or to learn rust even, but then it proved to be useful and liked and has grown a community.
Do you have a comparison of your engine with existing engines?
Not yet, currently I'm focusing on new features, maybe at some time in the near future I'll do a comparison.
When I first saw this I thought it was a release of the video game “Rust” and thought “there’s no way Rust runs on Rust!”
That's a ridiculous amount of work for a bit more than 2 years of development and for 159$ per month!
I'm very impressed and I have no idea how I could miss such a project.
I looked into rust game engines last year for work and I had no idea you existed. We were very heavily biased towards ECS, which made us pick Bevy, but the level of maturity of your project would have made for a good contender.
I'd recommend adding your project to: https://github.com/rust-gamedev/arewegameyet
I'm very impressed and I have no idea how I could miss such a project.
I looked into rust game engines last year for work and I had no idea you existed. We were very heavily biased towards ECS, which made us pick Bevy, but the level of maturity of your project would have made for a good contender.
I'd recommend adding your project to: https://github.com/rust-gamedev/arewegameyet
Thank you! It seems that I'm just bad at promotion. The thing is that rg3d is on https://arewegameyet.rs/ecosystem/engines/ page for more than 1.5 years already, but nobody notices it.
If you want to support the project, please consider to either do a monthly donation via Patreon (https://www.patreon.com/mrdimas) or one-time via BuyMeACoffee (https://www.buymeacoffee.com/mrDIMAS)
Also join the Discord server, I'm looking to grow the community - https://discord.gg/xENF5Uh and check rg3d on GitHub https://github.com/rg3dengine/rg3d