I’m on the same boat as you. I’ve got almost a decade experience in C# but I dont find it to be appropriate for this engine. The way they use C++ and do almost all your memory management for you makes it extremely simple. There’s essentially no manual management of pointers. Just UPROPERTY a resource and you don’t have to do anything. It’s not like raw, pre-Cpp11 C++ in any way at all. Not to mention that because they use C++ throughout the whole engine it becomes very easy to debug when something goes wrong compared to when you pass the c# -> C++ boundary and are left scratching your head because the native error that was thrown is confusing and unclear.
I don’t have anything against C# being part of unreal if some external non-epic entity wants to come along and add support (possibly as a paid plugin). What I’m worried about is that Epic will allocate resources internally towards c# integration which will come at the cost of improving the engine in other areas.
Isn’t this all pretty moot since there is a scripting language implementation layer? We already have lua and skookum. If some non-epic entity wants to add c# support they have the tools to do so.
Not to mention skookum is a really interesting language and one of the few languages with a lot of unique constructs that were developed specifically for game development such as race.
That’s very anecdotal. As a counter-anecdote, I’ve worked at many software companies and I’ve met few developers there who didn’t know C++ (these companies also used c#, java, haskell, python, lua etc…).
For what it’s worth I seem to recall saying that a large portion of the C# interface they made to the unreal engine was automated using some code generation tool. I can’t seem to find a reference to it on tirania. If that is the case then it seems like it wouldnt be too hard to add C# support to a project.
I’m working on 4.11 port of Mono for Unreal Engine, mostly done but need more testing.
And still try to figure out the license as it original requiring xamarin commercial license (which I happen to have one), and now mono is MIT…
@LinuxURU, thanks, though my contribution to projects you mentioned is quite trivial and hardly deserve your kind words.
I will be involved in a project soon and might not be able to continue my works on the port, so I really like to wrap it up and push it to github so anyone interested can carry on.
As the license, I’ve a short conversion with here (), hopefully it would be sorted out shortly. Ideally Xamarin could host it officially as a UE4 fork.
BTW, congrats @Noolarch! Anyone who are looking for text base scripting solution in their project now should really give a try, it’s getting better and better.
Just to point out to all the haters on this thread, Mono for Unreal Engine would also include the Mono API’s (which are pretty much a subset of the .net apis). I shouldn’t have to point out that many people find .net easier than C++ simply because whilst the standard library is a great improvement, and whilst UE4 provides some useful utility classes, .net still trumps them massively on the utility class front.
But, my personal advice would be to learn C++. Once you learn all the verbose UE4 annotations (and they are very verbose), it’s almost as easy as C#.