Mono relicensed under MIT - C# for UE4 can come back?

Pretty huge reason is that you can cut down your development time quite substantially including your bugs

hmm not really C# is just a language .Net is an implementation, you could have countless implementation of C#.

Its actually is the other way around , mono may not fully implement .NET but is actually .NET that is missing by far the most features , to be specific MacOS and Linux support. Mono not only support these platforms but comes with specialized libraries that give direct access to the OSes.

Again you got this the other way around, if you want dynamic objects its horrible dealing with them without GC. Memory leaks are reason enough to avoid C++. GC is pretty much mandatory this is why Unreal offers its own GC and you will be using in most cases Unreal GC anyway because that how most of its code works. Further more GC performance issues are more a problem for a game engine than is for gameplay code because gameplay code does not need to run in loops of thousands of time per frame.

Even if GC becomes a problem you can always fall back to C++ code and manual management for that small piece of code that creates problems with GC. It does not worth going full C++.

Wont matter, mostly because wrapping C++ to any of those language its dead easy and still many times easier than coding the whole thing in C++. So if you miss a you just add it in , in most cases all you need is the method signature and you are ready to rock.

because developer time is very precious, there is a reason why GC language have pretty much dominated the field anywhere you look there is GC and VMs, Java, Python, Javascript, PHP, C#, Ruby, Pearl, VB .NET and much more. Wasting less time on problem you can easily avoid by not using C++ in the first place. C++ very slow compile times is another good reason.

Other programming languages are not only a good replacement for C++ but also a very good replacement for Blueprints, mainly because they are made for pro coders they come with far more features and flexibility and text code is easier to deal with for complex logic and of course you have the advantage of IDEs, while with Blueprints you depend solely on Epic to improve your workflow with them.

Another big reason to use C# is because you are familiar with it, either because you have worked with it in the past or you come from Unity which uses C#.

I feel some .Net education is necessary here.

Introducing .NET Standard eco system (https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/)

This in summary says

  • .NET Standard is a set of APIs that all .NET platforms have to implement. This unifies the .NET platforms and prevents future fragmentation.
  • .NET Standard 2.0 will be implemented by .NET Framework, .NET Core, and Xamarin. For .NET Core, this will add many of the existing APIs that have been requested.
  • .NET Standard 2.0 includes a compatibility shim for .NET Framework binaries, significantly increasing the set of libraries that you can reference from your .NET Standard libraries.
  • .NET Standard will replace Portable Class Libraries (PCLs) as the tooling story for building multi-platform .NET libraries

Making it even easier to understand

  • Almost every .NET API will be in the standard library and thus will be cross-platform
  • Terrible APIs that they should have never created will be available as packages
  • Stuff that’s platform-specific runs only on those platforms
  • Every API is listed in this repo: GitHub - dotnet/standard: This repo is building the .NET Standard

I just have to put this out there too :wink:
standards.png

Gotdot is adding C# support too

And since you are educating yourself take a look in these links

http://www.mono-project.com/docs/about-mono/

http://www.mono-project.com/docs/about-mono/compatibility/

http://www.mono-project.com/docs/about-mono/plans/

Thank god people are working on this, coding in C++ is like swimming in molasses. Maybe some day we’ll be able to program for UE4 in a language with autocomplete that actually updates at a reasonable speed and that doesn’t take 2 hours to compile for each little change made.

I guess it’s somewhat not correct right now, as mono is owned by Microsoft now. It probabaly will be replaced by .NET Core 2.0 in not so distant future.

Yeap now with Microsoft support will certainly make mono developers life easier. Still .NET CORE does not contain the amount of features that mono has so it will probably more like replacement of part of the mono framework since core is just a cut down version of .NET.

The fact that .NET CORE is completely open source make things even more clear. A big objection that did not allow mono to be as popular as let’s say Python was that part of mono was replicating Microsoft patented software which made mono a target for litigation and everyone using it. Of course practically most of us knew there was a fat Microsoft would risk the negative publicity but still the landscape is much more clear now.

.NET Core 2.0 will bring back most of .NET API back. What will be missing from mono, are probabaly platform specific things (like gtk bindings). The same way like .NET Core 2.0 will be missing WPF.

core is being replaced with .net standard library

Many things will change no doubt about it , the reason why Microsoft bought Xamarin and made .NET core open source and cross platform was the spectacular failure of widows phone. Microsoft has realized that cannot fight iOS and Android so the will be investing a lot in the cross platform ability of .NET and will try to brake the monopoly of Swift/ObjC and Java. Which is great for us of course :wink:

One of the things Im excited about with C# is the modding ability. People who want to make script mods for a UE4 game no longer have to open up the editor and make blueprints to add new features, it can all be done outside of the editor at a much faster speed.

Noticed in the trello for UE4, there is a card for investigating/implementing scripting language. Could be C#?

C# is a programming language, not a scripting language.

This will completely depend on how C# would be integrated in the engine. Just adding C# will not suddenly enhance modding ability at all.

Thats true, I just assume this will be on at least someones mind when being implemented.

Would be nice, indeed. But I, personally, doubt that. If anything I expect it to just expose the same API in C# style, rather than C++. Time will tell:)

including the fact that is highly unlikely that a moder who probably is not a coder per se will prefer C# over Blueprints. Plus Blueprints will be the best supported scripting language for a long time because the whole environment of unreal has been designed around them. This is something that C# cannot easily compete with.

http://lists…net/pipermail/mono-ue/2016-September/.html

Sorry for digging up this thread, but how does one activate C# support? Does it come with the engine nowadays or do you have to do something special?

I must admit that I’m in the same boat as the OP and while I am far too deep in Unity with my current project (to the point there’s too much work done to just throw it away), ability to use C# in UE4 makes me seriously consider it for my second and perhaps future projects (since UE4 has better level editing tools, even with plain old BSP and with geometry 2.0 it is/will be, haven’t followed the news about it, even better).

//edit: I was referring to this post: Mono relicensed under MIT - C# for UE4 can come back? - General Discussion - Unreal Engine Forums

the current status is available here: http://mono-ue.github.io/
you have to subscribe to the mailing list

As for reusing the code it will not be really that easy, the closest thing to Unity way of doing things are components .unrealengine.com/latest/INT/Programming/UnrealArchitecture/Actors/Components/
But honestly it will take you forever to port an ongoing project.