4 ms·
I doubt projects like this would help. For big developers, 99.99% of the time they are already riding on existing codebases (even when they call it by different
by badsectoracula 6y ago
I doubt projects like this would help. For big developers, 99.99% of the time they are already riding on existing codebases (even when they call it by different names for marketing reasons) - the last two AAA games i worked at have codebases more than a decade old, one actually two decades old. While technically they could add rust as an extra language, in practice this wont happen both because the vast majority of game developers are conservative in terms of languages but also because it creates extra barriers (most people who write C++ code in games barely know C++ - the wizkids that everyone has in mind when hearing about high octane game engines are a tiny minority compared to everyone else who touches a game's codebase) which make it harder to hire new people (unlike other disciplines in gamedev, decent programmers aren't as easy to find). Also everyone hates how slow C++ is to compile and last time i checked rust is even worse.
For smaller developers projects like this still wont help drive adoption since smaller developers have the freedom to decide on their own what language they'd use (assuming they aren't already using an existing codebase, some of the stuff above also apply to smaller developers) and they'd already be using rust if they thought it'd help. In general i believe that developers who have enough knowledge to make their own engine in other languages and be able to make their engine in rust, would be able to tell if rust is a good choice or not.
Or to put it in another way, i doubt projects like this will help drive adoption for rust among game developers because the developers have either already decided what language to use (be it rust or something else) or are not in a position to decide what language to use.
(yeah sure, there might be an exception or two out there, but there are hundreds -if not thousands- of engines... after all Remedy, a AAA studio, used D in their engine yet you do not see much of an uptake of D among game developers even though technically D would be easier to grok by C++ programmers, integrate with existing engines with its C++ interop and even provides features like compile time code evaluation and generation for features that i've seen C++ projects use overcompilated macros and external build time generators that rely on brittle code comments to work)
- adamnemecek 6y agoHow would it not help? Someone might see this and realize that Rust is a viable game dev option and adopt it for their next game. In my experience, Rust is relatively fast on recompilation, possibly faster than C++. Rust is a much younger language so you have to wait.
- pjmlp 6y agoRust build times are definitly slower than C++ ones, specially when compared against Windows compilers. However I do conceed that some of it comes down to workflow and out of the box experience (no customizations). In C++ the only code I compile from source is my own, all third party dependencies are available as binaries. Then not only do I do incremental compilation, Visual C++ also does incremental linking, and I do take the effort of using external templates for common types. And modules are just aroud the corner. C++ Builder also is quite fast, due to its Delphi like extensions, it offers a fast compilation mode for debugging workflows. So while the compilation time for my Gtk-rs toy app has improved quite a lot during the last 3 years, the Gtkmm version of it still builds in a fraction of the time.
- badsectoracula 6y agoAnyone who has enough knowledge to build a game engine like rg3d also has enough knowledge to be able to judge if Rust is capable of building an engine like rg3d even if they haven't built an engine in Rust themselves. If after reading abour Rust a programmer cannot figure out if Rust can be used to make a game engine then that programmer is incapable of making a game engine in the first place so in the grand scheme of things this chances nothing.
- adamnemecek 6y agoOK they do, so what.
- pjmlp 6y agoYou are seeing this from the wrong perspective, and yes although I do like Rust very much, C++ is my native tool alongside the managed languages I regularly use (reasons for other time). Since the Assembly days it has been like this, some high level language keeps being disdained until it gets enough momentum for adoption by game developers. Back when I started coding graphics, Basic, Pascal, Modula-2 and C were seen as the Unity for home computers, good enough for simple games, but professionals were only using Assembly. Professionals with deep pockets would eventually manage to buy an UNIX or VMS based computer, make use of C or BLISS and cross-compile to arcade machines and 8 home computers. While on 16 bit home computers, C, Pascal with lots of inline assembly started gaining adoption, but no one in perfect mind would make use of either C++ or Object Pascal (even with MPW most Apple games were coded in Assembly). With Windows, OS/2, BeOS, Watcom C++ with DOS/4GW, Pentium/Abrash books, Sony Playstation C++ SDK, C++ finally started to get enough industry support to be taken seriously . Same with Java and C# adoption, while not at the same level as C++, they have found their way as programming languages to write engine tools, or be the scripting language on top of the performance critical C++ code. Also here it was a long path to adoption driven by J2ME ecosystem, Sun's JavaGamming failed efforts, Java3D, Android, Visualization industry (JViews, VTK), while C# had initially indies writing their own C++/CLI bindings to DirectX, followed by Managed DirectX, XNA (specially it being a must have on WindowsPhone 7), MonoGame, Unity, UWP/HoloLens. So Rust is still at the begining of this long road, if enough engines like this start poping up, eventually some well known studios or platform owners will pay attention and give it a place at the table. Microsoft is already prototyping with Rust/WinRT, who knows what plans they have for it. As for D, the community is great, but they don't push a proper roadmap for the language and all the cool features that D might have offered 10 years ago, have slowly been added to .NET, Java and C++, additionally Swift, Rust, Go, Kotlin/Native, Nim, Zig also arrived to the party of AOT compiled languages with low level capabilities. When one wants to go everywhere, and discusses where to go next at each crossing, it is impossible to reach the momentum we are discussing here.
- badsectoracula 6y agoRust is placing itself as the replacement of C and C++, not as a scripting language or something at a higher level, so it makes sense to see it from the perspective of someone who would write their engine in C or C++. And note that my comment wasn't dismissive of Rust, it was dismissive of the idea that projects like rg3d can cause gamedevs to turn towards rust. The reasoning is really at the second to last paragraph of my comment ("developers have either already decided what language to use (be it rust or something else) or are not in a position to decide what language to use").