72 comments

[ 389 ms ] story [ 2252 ms ] thread
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?

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.

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.
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.
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.

Bevy has made little progress in the last year.
I'll let the lead developer be the one to dispute that. He posts here sometimes.
You should probably disclose that you're somehow affiliated with RG3D if you're going to be putting down the efforts of other engine developers, especially when what you're saying is wrong. Bevy has only been out for a little over a year anyway.

https://bevyengine.org/news/bevys-first-birthday/

I’m not affiliated with rg3d. I have submitted minor commits and I’m friends with the author but the involvement ends there. rg3d is currently the most advanced Rust game engine and I’m rooting for such endeavor.
Then the rg3d author should remove you from the "Special Thanks" portion of the page. Rooting for one engine also doesn't mean that you have to lie about another engine not making any progress; it just makes rg3d look bad since you're listed on the release page.
I have advised the author on some matters, that is all. I’m a fan of the engine more than anything.
I am following both Bevy and RG3D. You make RG3D look very bad.

I think both engines have quite different philosophies (ECS vs OO among other things) and could actually learn and benefit from each other. Different types of projects and people need different engines.

It is very unfortunate that you are spreading this toxic competitive mindset when the situation is not a zero sum game at all. Especially considering that the author of Bevy has shown to be quite friendly towards other projects like Amethyst in comparison.[1]

[1] https://community.amethyst.rs/t/bevy-engine-addressing-the-e...

What toxicity? What competition? What are you talking about?
If you can't see how you are hurting the project you apparently care about with your behavior after multiple people have called you out on it, I am sorry. There is no sense in discussing this further.
Please link me to the toxic comment I have made.
You've made twice as many posts in this thread as mrDIMAS. You might not have realized it because you don't feel like you're exerting yourself. Nevertheless, you're vocal enough that a casual observer can see you as the public face of the project, and the picture you paint is not a constructive one.

In the past, you've said that you don't believe community-building skills are important. This tells me you have a serious misunderstanding of software development, especially open source software development. The disagreements you're having in this thread are not debates you can win on technical merits. You should fundamentally reconsider the way you approach them.

If you still can't see the problem with your behavior, I advise you to delete your posts and do literally anything else. Read a book. Download some cool free ringtones. Anything.

I have made twice as many posts because people have been responding to me.

Well a casual observer would be wrong to think that.

I didn’t say that community building skills aren’t important, it’s just that you can’t build an engine with just a community.

> You should fundamentally reconsider the way you approach them.

Be rest assured I won’t.

That’s pretty affiliated, my guy. Comments like that are a bad look, and I’m sure your friend would appreciate it if you took down that comment, or reworded it in a kinder manner.
I would assert that we have made huge progress this year. Just check out what we've accomplished: https://bevyengine.org/news/bevys-first-birthday/.

But adam already knows this, given that they've advertised on almost every hacker news post we've made over the last year. https://news.ycombinator.com/item?id=26131350 https://news.ycombinator.com/item?id=24530698 https://news.ycombinator.com/item?id=24983956 https://news.ycombinator.com/item?id=26716166

Is there a nontrivial demo? Also I’m really happy for you that you reached a funding goal and posted a comment on a forum, but idk if I really care about that when evaluating and engine.
I see that you (uncharitably) ignored the 5 huge bevy releases that occurred this year and the features they contained. I wont bother listing them here because the "last year of bevy" post above does it better.

Also feel free to check out the many Bevy games published to Itch: https://itch.io/games/tag-bevy

And the large library of community generated games and plugins: https://bevyengine.org/assets/

But again, adam already knows this. They just have a chip on their shoulder.

I didn’t ignore them but they just aren’t that interesting.

The games aren’t nontrivial.

> They just have a chip on their shoulder.

Those are not my pronouns.

here you are with the moving goal posts again!

I’m a financial supporter for a few of these Rust game engine projects. I’m not of rg3d. if you cared about the project so much, you might spend some time reflecting how your role is holding the project back. toxic communities like the one you are becoming the unofficial figurehead of are a net negative for the ecosystem.

cart, don’t feed him. every adult in the room sees it for what it is. he’s a mean spirited bully.

What goal post did I move?

I’m not involved with the engine, so I’m not sure what you are accomplishing.

Also you said below that I spread misinformation, what misinformation?

Please stop.
I legit don’t understand what I did.
You started a flamewar (about game engines, god help us) and perpetuated it.
if the owner of rg3d is reading, your friend Adam is a big reason I’m not emotionally (or financially) invested in your project. his incessant negativity on every “competing” project reflects poorly on your community. I suggest you politely ask him to stop.

I’ll take a supportive member of the ecosystem over a toxic one.

for others who aren’t aware, the parent commenter reliably show up in any thread about this project to spread misinformation about others.

What misinformation did I post about bevy? Also, for what it’s worth it was yours truly who posted bevy on hn a year ago which got them a lot of traction

https://news.ycombinator.com/item?id=24123283

I’m just a fan of rg3d because it’s more advanced and less promoted than bevy.

I just want to clarify that I cannot tell Adam what should he do. I can just try to convince you that the community is friendly and non-toxic, I answer all the questions in the Discord server (https://discord.gg/xENF5Uh), even write code to help help people. It is sad that you're judging the whole project by posts of just one guy.
I agree with this. To anyone reading: please don't write off rg3d due to the behavior of a single person. rg3d is a super solid engine, they are ahead of us in a number of areas, and mrDIMAS (rg3d's lead) has never been anything but perfectly professional in their interactions with us. We've even discussed ways to collaborate a few times over the last year. There are good reasons to choose Bevy over rg3d (and the reverse is also definitely true). But I won't be discussing that here I'd rather not hijack this thread when the focus should be on the cool new things that mrDIMAS and the other contributors have built for rg3d 0.22. Congrats on another fantastic release!

(I am the lead of the "alternative rust engine" being discussed in this ... interesting thread)

Oh no, am I the enfant terrible of rust game engines?

Hey, any publicity is good publicity.

> I just want to clarify that I cannot tell Adam what should he do.

Sure, but do you condone it?

> It is sad that you're judging the whole project by posts of just one guy.

I agree it’s sad, you have put a lot of work into this project and for non-technical reasons many here myself included are driven away from your project because of Adam’s negativity.

I recommend you stop condoning it, at least publicly.

Please, get me right, I'm not condoning his behavior. I just can't tell people what to do. I can just tell that his position does not match mine. I prefer to keep distance from any kind of "hot" discussions. I can only apologize for the current situation.
That mental model makes a lot of sense. It’s a difficult situation. Sorry that you’re dragged into it.
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

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.
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!”
Hello! Engine author here, I'm ready to answer your questions.

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

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!

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.
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.
That UI system looks really nice!
Thanks! It took half of year to build it, it was a hard task especially for a newbie Rust programmer I was back in the day. I was able to find right desing from fourth attempt.
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.

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

>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?

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.

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.

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.

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.