IMHO Rust is a 1000x better than C#; but FII still presents a whole lot of challenges if one is willing to integrate with Unreal because of the many custom types that only exist in Unreal and are built using the many tricks C++ provides. Translating these types to Rust and back, I don’t think would be easy.
It feels as if the same individual starts all these threads (under different user names) about adding another scripting language to UE4 (C#, Rust, etc.)
Anyway… If “comfort” is a major point, I would in the end go with Swift lol
That’s such a sweet nice language to use.
Yeah, that’s the problem with having a bazillion languages on this planet, at some point I just loose count and track.
The only thing that I know about Swift is that it was also feature suggestion on the old page for Unity. But F# was leading. As a matter of fact, aside of the black UI skin, F# was quite on the top of the most asked features. Swift was lagging behind a lot last I checked a long time ago until Unity took its page down for stupid reasons.
I’m currently working on my custom game engine in Rust, to learn Rust, and maybe to keep the engine if I shouldn’t go for UE/Unity/Godot.
Thing is that a lot is changing. I’m not sure when it’s the right time for making Rust bindings for UE4. For all we know UE5 could support Rust out of the Box. We may need to wait until 2021.
Rust managed to convince MS to adopt it. MS made it clear that they don’t view C++ as a valid choice for safe code anymore.
MS makes a COM binding generator for Rust and Rust/WinRT already. Dot Net 5 will be merging with Dot Net Core soonish. According to MS this merge is the reason why they make C#/WinRT by lifting the Dot Net Library out of the compiler/run time, and keep Windows exclusive features separated as WinRT. Looks like WinRT is the future. All of Windows 10 SDK may get deprecated and replaced with “language projections” for WinRT. So, there is C++/WinRT, C#/WinRT, and Rust/WinRT. Rust in its WinRT is safe idiomatic Rust code unlike the bindings on crate.io.
According to one Github user, XInput will get deprecated like Direct Input already is for a long time. Instead we will use a non UWP bound feature in WinRT under name space Game.Input or something. With 2021, also Visual Studio and actually Rust Edition 2021 should come soon if Rust sticks to their 3 year release period, and VS to its 2 year period. There is already some plugin for VS Rust. This is that kind of working environment that UE5 would require for adopting a new language. Jet Brains also supports Rust.
I’m afraid, personally, I would be far more inclined to stick with my own custom engine all together, if MS finally brought more DX features to WinRT, like DX Ultimate. Well, actual DX11/12 in the first place… Maybe only DX Ultimate will come to WinRT as their new OS Windows 10X, and Office Ultimate pave the way for their unification of their empire at long last so that it could last for 1000 years.
KISS …no looking above im like ya now document all that ■■■■■■■■, do 30 courses on it and achieve very little …profits right for you only
If I understand you correctly. You are saying that you don’t want to learn yet another language? Well, welcome to the club, nobody wants to learn yet another language.
However, in my case, it’s C++ that is the yet another language. I have learned already C, C#, F#, and of course now Rust(In progress). Also it’s 2020 and not 1997, C++ isn’t that dominated anymore at all, not even in the game industry, and certainly not for game logic. Nobody really can predict the winner of this race, but my money is on Rust. All of it. Because the worst case is only to have to make my own engine instead.
If UE5 can’t do it, and I’m not here for UE4, because the latter crap still got an editor that can break your entire project just by moving around assets. Yeah, I actually managed to break a template project already just recently… However, editor extensions are written in C++, too. Or Python now? Yet another language for that what Unity can use C# for all. Or in my case, with my own engine I just could use Rust for all.
Anyways, there is actually one big flaw with Rust, at least if you want to use it with UE4/5. Rust doesn’t have hot reload yet, at least not officially. But, if the Rust lang devs are serious, and according to their Are We Game Yet web page, they are having their eyes on gaming, too. There could be such a feature for it soonish. It’s Rust’s design philosophy to be one packages for all your needs, hence the Cargo, documentation, and formatting systems. They made surveys already, they know how to prioritize regarding game dev.
You really need to chill down a little. Why are the anti ue4-c++ people always so … jumpy?
Rust has a fine foreign function API, and has pretty reasonable interoperability with C/C++.
There’s no heavy additional runtime requirement, because it doesn’t use garbage collection or write barriers or runtime code generation or any of that stuff that the Java/Ruby/JavaScript/Python/PHP developers have to worry about.
Thus, you could write your own Rust binding, and it would probably be pretty good, once you started out with the unreal reflection tools and made them bind the UCLASS() and friends to a Rust FFI.
its not just that i dont want to leanr another , it shtat if its already based on C++ and your adding a layer over it that cant be efficient as in emulation , it cant be faster better and safer either your adding more vectors for attack, and more chances of some bug that leads to exploits or crashes
the fact is KISS means you got C++ unless they rewrite the engine from scratch in rust. then its differant story and while ya learn if it has a blue print system some stuff can then still get done
First of all, Epic already said that there is going to be another language. It’s just the question of which one. They don’t want to make such a decision lightly. So, the argument of the bug issues introduced by the bindings is out of the way. You will have them with any language.
Obviously my personal choice would be Rust. Rust is a good middle ground between safe and fast. Virtually this: Rust = C/C++ + C# + F#
Secondly, Rust is native, so regarding interface speed it certainly beats any managed code or interpreted language like C#/F#/Python/Lua, etc. Obviously regarding run time speed it’s faster than them, too.
The only issue I see is that Rust needs to be learned. C# for instance, a ton of people already know it, especially Unity devs to whom Epic may want to appeal with UE5. And to make things worse, Rust is indeed a notch harder to use than C#, it’s still a native code/system language and not the typical managed code. You have to handle the pointers, because although in safe code Rust there won’t be issues during run time, there will be issues during compile time. Yes, Rust is very famous for its very user friendly compiler that is quite informative with is suggestions to fix its errors and warnings. New comers like me would know…
I’m afraid that there is zero doubt that C# is the community favorite. And because of that eventually will make it into UE5, and not Rust.
Learned a lot! Thanks!
So many information for Rust.
Look forward to something like “WebAssembly” in UE4, which doesn’t care about the programming language.
I think WebAssembly is an excellent addition to Rust.
I’m not a web guy. Seems it may chance though. Because I like to make small tools for myself once in a while. I just finished Rusty Savings that computes from my bank account’s transactions how much money I didn’t spend for a month, so how much I “saved” for that month and the entire year. I’m not under the impression that a managed code language could write those 206 lines of code much faster.
Of course one doesn’t need a system language for such non performance driven tasks, but doing it with another language gets you to have to learn yet another language, and worse, you may have to learn yet another set of APIs, too, a huge waste of time. Side note, F# can use ALL C# code/bindings just like that since it also supports OOP and .Net. But unlike F#, not even Rust is that lucky with C. Because Rust is safe by default, while C isn’t. You may have to create safe wrappers yourself.
Anyways, I never thought that managed code could outlive its usefulness. And now try to do the same thing with C/C++. You will get slowed down not by one notch, but by at least two, writing the same code.
WebAssembly seems to be another step towards making the programming world more universal by allowing it to run compiled binaries from virtually any language. If you game’s GUI is solid enough. You can use it not only for the game itself, and the usual tooling/editor or even game launcher task, but also your web site, so forum, so everything else. This is another case where sticking to one language gives you benefits. You won’t have to make bindings either or give up on an API. And with Rust no matter how small, or how big the code is, or how fasts it needs to be, with Rust you can write it all with a descent production speed and quality.
At least that’s my opinion judged by what I could learn from my Rusty Savings tool and the current game engine that I write to also learn Rust in the first place.
epis said …and ill add moving to a windows language only will just mean more people stop seeing the value of this game engine as costs ramp up and ms goes subscription only
you dont get that its your prob i wont be sucked into ■■■■ that i do not have to , cause relearnign a new language from c++ which has a huge base and long use already has means time and more money none of us have
off to godot and unity i guess with linux
I don’t know whether I understand you correctly, but at this point we don’t know how MS will monetize W10 if at all, or especially W10x since that should be the future.
But in regard of the “Windows” programming languages, it’s actually irrelevant because it won’t affect C#/F#. We know this for a fact because .Net Core will merge into .Net 5, while the cross platform elements like basic functions are remaining in .Net 5. The Windows exclusives will go to C#/WinRT similar like C++/WinRT and most importantly Rust/WinRT, too. WinRT is the future according to MS.
In other words C#/F# as languages are not bound to Windows anymore and are crossplatform. Though, regarding crossplatform, perhaps Rust would take the lead because Rust was made from the ground up and from the beginning for being crossplatform. Cargo beats C#/C/C++ with no doubt. Code sharing is a breeze in Rust thanks to the built-in Cargo system.
By the way Unity is using C# only. You would have to use Godot with its funky scripting language. And even if UE4/5 got Rust support, that wouldn’t mean that they dropped C++ support obviously. Because UE4/5 are written in those language and some use it still.
I think I said this already, but the real problem with F#/C# languages is that they are not that much easier than Rust (in my opinion), but they are potentially slower because of their GC. To make things worse, unlike F#, C# isn’t even thread safe and wasn’t made with multi threading in mind. Rust was made for this, from the ground up.
The latest news about Rust 2021 is that there won’t be as many new features as with 2018 edition, because it’s already a very stable and feature rich language.
You know that Unreal Editor sends its own telemetry (registering what blueprint nodes have been used) and doesn’t automatically means Epic sold data anywhere?
One could say “Epic monetized telemetry in the engine” by using it to improve the engine for users
Also, nobody called upgrades in other systems as “malware like tactics”. (btw, Windows allows to defer major upgrades up to 18 months now)
To be clear, agree with what you said. Just trolling a bit now
It’s one of the dumbest people do, avoid system updates. Rarely it has anything to do with your privacy (telemetry is already set up with the system installation), as it mostly security and feature updates. Meanwhile, I bet that most people still have all Google data collection enabled. Like the option where Google Maps store your entire history of locations. That’s was a terrifying thing to me… not some stupid ads that you can simply turn off in wizard appearing after installing the system. There are many questions there, asking if you want ads if you want location tracking enabled.
Anyway, if somebody wants to have Windows without all things you mentioned installed, there’s a special community-made edition available. (hopefully not created by the Chinese gov to spy us)
Removing things like Windows Update from this edition is kinda dumb… Still, might be a better option than switching to Linux game developers which values privacy.
PS Perhaps would be better to end offtop in Rust topic
yes they have, just by breaching basic privacy they are able to glean data that they previously would have had to ask for in writing or pay for(and this is not to say a true proper legal challenge in say privacy strict canada would me its illegal too )…not paying for something = profit… also they are subscriptioning windows ten enterprise and have stated it is being used so it can get rolled out for non enterprise…
that my friends is the end of microsoft windows…and when one considers that android linux now accounts for literally 70% of all net traffic , microsoft has seriously lost its way.
just like pro guys ive helped leave adobe and autodesk for things like davinci resolve and blender you create that by going subscription
you also lose all the hobby people that do all the wacky inventive stuff.
And yea all the big boys have there issues but on the greatyer good side if epic makes em all play nice ( love the new 1 million terms a service for example) it means at least for whatever platform i wish to i have options. IF say we all in end lose apple then lets push harder in the non apple space and make apple feel it…get some deal with google ( yea i know they are being sued too but make an alliance with them and ask say for 5 % off for fortnite …then shove hard. apple shareholders just lost 300 millin a year…this 30% steam apple and google want is even higher then some crdit card comapnies want MUCH higher its extorionist.
and jsut to be clear enterprise windows ten is subsciption based they would love that for all users of windows ten so they get business used to it then they try the bs on users…it wont fly
its gonna be that time like a pandemic and no one has money then poof out go the OS? haha oh the humanity…lol
ya thats why they annoy everyone with popups ads and other retarded garbage no one wants
android linux now is 70% of all internet including desktop , mobile etc…you want into linux and get it up to grpahics drivers speed not pay into some declining os…each gen they move on i notice a bigger slice say na not upgrading
thats the rub theyve now shed to older oses of there own 25% of there user base lol