“With Mono for Unreal Engine, you can now use the latest version of C# to write your gameplay code, AI behaviors, UI elements, and more. You have access to the entire range of capabilities of the .NET framework, up to version 4.5.”
Interesting times - pretty much means that UE4 games can now be scripted in C# (and it seems in F# in the future too).
Blueprints, hot reload and async seems to be properly supported as well.
With you on . Posted my thoughts in the other thread. I feel like it’s going to cause a divide between coders in the community which is definitely the last thing we need. It’s hard enough for a newbie to learn as it is, without being thrown several options.
Either way, surely those using C# will have to learn the Engine’s C++ base to do anything truly productive with it? Just seems like a pointless effort IMO, worried about it bringing a certain mentality of community members with it.
For me the most important reason would be instant compilation. Hot swap of my C++ code takes 10 seconds in the best case, but it is often above 1 minute. It is more than enough to get distracted.
Yeah, I can always use blueprint scripting and I often do so, but I write code much faster than program in nodes.
Besides, in my opinion the C# is more flexible and cleaner than C++.
Well, i dont think waiting 10 seconds for hot reloading its SOOOOO bad that it needs to make you deal with a scripting interface, and not having access to all you want with the easy option of “go to implementation” in a engine function to see how it works, use blueprint for that.
C# more flexible, nope. Im with you that C# can be cleaner than c++.
In short, i just think that having to use a plugin with unofficial c# support that can be old some day or cause incopatibilities is NOT worth it for the small advantages c# has over just using c++, plus all the multiplatform stuff.
In something like Cryengine, a c# plugin is a godsend becouse the normal c++ support its total trash, but in UE4, we have hot reloading, and the complicated parts of c++ are handled by the engine and we dont really need to care.
10 seconds isn’t soooo bad, but makes difference comparing to 1s (and that’s the best case).
I don’t want to go into some kind of “which language is better” war, so I’ll just skip it, because I’ll probably stay with C++ and blueprints anyway :). And the reason:
I will keep programming in C++, it is good and clean in Unreal Engine. There is no reason to get over to C# and have an interface between engine code and framework.
I, as a professional C# developer, like the C# option for UE. However, I think its interesting for rapid prototyping. For production I would still use C++.
Options are good, though I probably won’t use it at point. If anything I’d rather try the upcoming Skookum Script which is the only language focused on scripting gameplay specifically. Other than that, C++ and BP has me covered.
No one has yet mentioned the Mono runtime licensing cost. C# is more familiar for me, and a lot more consistent and clean, which means I can be more productive. But C++ support is faster and has a significantly larger (In terms of ability) API, and it comes with the engine for what I’m already paying.
I agree with 100% here, C# is more familiar to me as well but I am not optimistic about implementation.
Not entirely sure, in the Reddit article they mention $300 per platform per year, but also mention a $13,000 platform licence fee, so I am not sure what the deal is…
I believe those are the costs for the development tools, if you plan to do something commercial. If you’re making something non commercial, then I believe it’s free. That’s why mono is so common a framework for cross platform projects that want to target Linux, it makes .NET portable, which is pretty nice.
And that’s if you’re using a platform you can fulfill the requirements of the GPL on. (Or is it LGPL?) If you deploy to, say, iOS, then you need something on top of that.
I’m really glad it’s happening, and I’m REALLY glad it’s a modern version of Mono, unlike the out of date version in Unity. Hopefully it’ll be enough to pull some Unity developers away, I know before I started using Unreal I’d have been more comfortable switching had there been C# support.
I just think it’s not going to be viable for indies to use commercially, since they’ll probably have to learn C++ anyway.
Yeah it’s LGPL , so you need a license from to use their LGPL-based libraries in a non-LGPL project apparently. I think that’s why there is so much confusions over the pricing…
I have nothing against it, but I can see it causing major headaches down the line, I worry (like mentioned) about how will affect the community, as well as he mentioned they are going to need to learn the engine framework anyways to know what functions to call, how much time will really save is yet to be seen.
I’m going to continue learning C++ for now, I think it’s still the best way to go in UE4 right now.