5 ms·
C++ doesn't do quick and dirty either. That's why experienced game developers combine a core engine written in a high-performance language (C++, Rust, C#), with
by Aeolos 2y ago
C++ doesn't do quick and dirty either. That's why experienced game developers combine a core engine written in a high-performance language (C++, Rust, C#), with a scripting language (Lua, Python, hand-rolled).
That approach gives you the best of both worlds: high-performance core with high-velocity iterations for gameplay. Don't use Rust or C++ for scripting... madness lies that way.
- pjmlp 2y agoExcept hot code reloading and interpreters is something that C++ devs can reach for, and Rust ones not, at least for the foreseable future.
- bendhoefs 2y agoWhat do you mean by this? Rust has multiple game engines that support hot reloading and/ or scripting. https://fyrox-book.github.io/beginning/hot_reloading.html https://fyrox-book.github.io/beginning/hot_reloading.html https://github.com/jarkonik/bevy_scriptum https://github.com/jarkonik/bevy_scriptum
- pjmlp 2y agoThis the bare minimum, https://liveplusplus.tech/ https://liveplusplus.tech/ Also supports is kind of relative, "CHR is very new and experimental feature of the engine, it is based on wildly unsafe functionality which could result in memory corruption, subtle bugs, etc."
- bendhoefs 2y agoWhy is that the bare minimum? I also think that doc page is a little old. The feature is over 2 years old now and hot reloading is inherently "unsafe" in any compiled language. It's just letting you know that Rust's safety guarantees might go out the window if there are bugs in the code that handles hot-reloading.
- pjmlp 2y agoBecause that is what existing game studios expect, as shown by their customer list. Also that was only one example, there are other similar ones.
- desumeku 2y agoFunnily enough, Mojang is on that list, and I remember recently watching a video[1] of Notch hot-reloading code while developing Minecraft, except it was with Java and I'm sure he didn't pay a dime for the ability to do that. [1] - https://youtu.be/BES9EKK4Aw4 https://youtu.be/BES9EKK4Aw4
- pornel 2y agoThat live reload probably already works with Rust — they say they don't parse any source code, and instead analyze the compiled binary and debug info.
- lenkite 2y ago"C++ doesn't do quick and dirty either." You can do very easily do quick and dirty in C++. (And shoot your foot off also..but that's a different thing)
- pornel 2y agoC++ will easily let you write non-thread-safe code anywhere, won't complain about multiple mutable pointers to the same object, will let you leave pointers dangling and resources leaked. Such code is of course crappy, but the OP wants to test if things are fun before committing to implementing them properly. Rust wants things done properly on the first try (which usually is a good thing, except throw-away prototypes). https://loglog.games/blog/leaving-rust-gamedev/ https://loglog.games/blog/leaving-rust-gamedev/
- Narishma 2y agoIt also introduces a lot of complexity where the two languages interact.