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

When the C# in UE project was canned back then it was because Xamarin was not open source. Now that Microsoft has acquired Xamarin and relicensed Mono under MIT, will Epic greenlight the Mono in UE project?

Epic doesn’t have to greenlight anything. Xamarin pulled the project because the EULA was seen as hostile to the mono project. ie, the source has to be free and open (which it wasn’t for commercial use). Now that Mono, and indeed Xamarin as a platform are both just that, and under MIT license no less, the road is clear and the mono for UE4 project is 100% doable. Now either Epic or Xamarin need to finish the project. Or someone like myself needs to get of their butt, grab the source and contribute it to UE4… hmmm

I look forward to seeing it, I’d really like to use Unreal but I’m staying with Unity my project and dabbling with learning CryEngine, while I don’t expect it will be as easy to use as Unity’s component stuff which makes it really quick to use. The fact C# is just alot easier for many like me to make use of… C++ is headache with headers and pointers, and a syntax that looks like txtspk>>::<< tribe lingo from a decade when programmers didn’t seem to care about design readability aesthetics of the language that its grown to look like an unsightly mess no indie developer really wants to deal with imo.

And blueprints are just meh… Its like catering to high end programmers, and low end newb… where is the middle ground for those who value sanity :slight_smile:

I prefere code overall… and don’t get me wrong blueprints are great for material shaders, flowgraph ui stuff… but overall they get messy if not contained to just very specific things. Doing an entire game with it is insanity to me, that I’d rather stay away from much like not ever having touch c++ just to use api’s outside of the engine stuff.

Adding first class C# support could like going back UnrealScript… a somewhat saner middle ground from designer/coder but actually using a ‘popular’ and established language without any weird quirks from a script language built specifically for an engine.

Well do or don’t Epic but I think it would be crazy not too get some progress on it.

P.S you’re VR GDC demo was way better than Unity’s :wink: but I don’t care about VR so VVwhateveRR

It would probably be a good idea to integrate Mono in UE4 using the already existing scripting language extensions, as detailed here: Scripting Language extensions via plugins - Engine Source & GitHub - Unreal Engine Forums

Well, I’ve coded with both C++ and C#, and for me C++, even with (or perhaps especially?) with UE-specific additions (all that decorations tho) is very cumbersome. C# is managed and is much more abstracted, and just feels much more natural to use. They are definitely not identical.

If you were to do a direct port of UE4’s macro-heavy API into C#, gameplay code would look very similar to it’s C++ counterpart (which uses it’s own management, not that inherent in the language, for the purposes of multi-platform support).

This is the, C++ is tedious and complex to use for new comers unlike C# , Cryteck understood it and made C# happen.

Seeing C# talks going nowhere past 2 years my question to EPIC is why not Python scripting? easy and free to use anywhere.

Epic answers were always a solid NAY for C#, i understand i dont like microsoft either, but if youreally wanted you could have used Python or Lua or any other scripting really. Visual scripting is awesome for materials and such, but when it comes to more complex workflow it falls on its head and its probably slower than any other scripting language.Now it seems the Blueprint work has gone so far that Epic will not consider any other scripting ever.

I guess at this point Epic wont fragment the engine even further with extra scripting languages that need separate tutorials/support and so on so we are stuck with C++ for coding and VS for quick prototyping.
I would rather lean towards something like python, not sure how good the mono C# support is on linux and mac.

if C# port would look exactly like C++ that would been an extremely bad port, it needs to look like unity’s or better

C++ gives you the ultimate power, Blueprints give you the best visual programming available in any game engine, and Skookum is the only truely game-centric scripting language out there. All is available in UE4 today and people still ask for C#, LUA or Python. It boggles the mind.

It would not be an “extremely bad port”. The look of it depends highly on the underlying API and engine architecture. Unreal is not Unity, and neither should it try to be.

I think it boils down to the fact that people keep seeing C++ less productive and a aged language even if its superior in terms of performance or as some say freedom. As the time has gone by everything seems to be moving away from C++ or similar style languages to more “flexible” ones. On software front it’s not really been used a lot for ages. On major mobile platforms it’s pretty much gone from the top used languages too. For people asking LUA, Python or C# they are used to them from other engines or from scripting/modding games/apps. Moving to C++ after using them can feel like degrading back to stone age for many.

I can assure you, the C++ market is still and will continue very large (and growing), in fact larger than C#.

Hey Guys,

C# was already ported to 4.4 of UE with full API and debugging support, MonoDevelop IDE support, multi-platform support (iOS, Android, Win, OSX, PS4, XB1 etc), as a plugin. It had full access Unreal’s API via the build system (just like Unreal.js). It was pulled from github because of licensing issues towards the release of 4.5. I’m currently in contact with from Xamarin, to help bring it back. Based on any discussions there, I will pull down the pre-4.5 branch of mono and look at the changes to core UE, perhaps get some PR requests to Epic to fix any integration issues and then hopefully get it back up to speed with branch as a plugin. This is all contingent on getting my hands on the mono-ue source and time availability(I do have a day job :))

Tommy.

Unreal should look at this from a business standpoint as well.

If they implemented C# support into their engine, they could “steal” quite a bit of Unity users, just because of C# support.

Hell, I’d definitely consider using UE4 for my project if C# was native, and could be used similarly to how Unity supports C#.

Not sure you’re aware of the programming landscape we have today. The vast majority of Java, .NET and PHP coders out there probably don’t know C++. i worked at a software company for years where we used C# and VB.NET and not a single person including myself knew any C++.

Ehm… well first I’d like to say you should read again where I was replied in a general way and not related to UE4. I have been a professional programmer for over 15 years which of majority is on the software development side and seen how things have moved on and C++ has died pretty much on all fronts there. All legacy C++ have been pretty much converted or replaced by newer solutions and languages and C++ is not used anywhere anymore on software side.

You are partly correct when you refer to schools when saying someone does not know C++ as it’s not really a thing that they teach anymore. This affects business side and productivity when hiring new full time or project based employees and for several years now it is very common that that applicants do not a thing about C++ but know about javascript, python, php or c# for example. Many of most used languages are productive in a “change code and see” style way where you can see and test the result immediately or in few seconds where as C++ only is most cases always compiling.

For desktop applications it’s been mainly VB or Delphi followed by C# and today it’s all about web. For server applications it’s been tomcat, php, asp.net, node.js and so on. Even on mobile it’s the same as ages ago we had Symbian C++ and now its java for Android, C# for Windows Phones and Swift for iOS as Apple is pushing it to replace “aged” Objective-C. The cross-platform solutions for mobile are also based on more common languages. So in short what I said earlier and now is that people are used to other easier, scripting like and more common languages and stepping in the world of C++ can feel horrible.

I know C++ is and will be used for a long time on hardware level things or other memory and performance critical places. However in gaming with today’s desktop and mobile device capabilities the margin between pure C++ and C++ via script bindings is getting minimal to non-existent. CryEngine LUA binds to the core engines C++ stuff just like Unity scripting or C# binds to their C++ and there are hundreds of smaller engines that are majority of C++ based but with LUA, Python or other scripting layer included.

With all this it’s not unreasonable or weird for people asking for C#, LUA or Python. They see them everywhere and are possibly already used to them.

Yes it will always have it’s place in various areas and use cases however it does not mean some things can’t evolve or have options like I said in my other reply above.

hey can i have java port :smiley: . hahaha will probably get banned for this :wink:

Are you like the resident troll here ? You seem kinda clueless on what people are talking about here or why they might, like its somehow threatening to your usage of Unreal in what they’d like to see improved on…I mean if you’re an Unreal or the highway guy, you’ll find many might be passing by on the highway not really that good for Unreal if you’re such a fan.

Anyway C# would be a great bonus for games to offer better modding support aswel… Something Ark servers could use as they all are rubbish and constrained to poor mod support via Unreal blueprints bleh, last I checked C++ wasn’t even allowed.

Unity made games get modding support with C# pretty easily by the community via groups like oxidemod.org who have a much easier time with C# reflection etc… you won’t find that done for any Unreal games, and I believe they’ve tried and it ain’t worth the time bothering. Also python or lua is really not at all on the same level of C#… runtime script compilation with C# its just overall vastly better programming/scripting language (and no I’m not saying it can be as fast or efficient c++ can be… I don’t care its good enough for those who use it well)

Just in comparison the Rust server I run (ran Ark aswel but like I said poor modding support) can script multiplayer gameplay improvements for the server and hotload changes in realtime… who doesn’t want that kind of community support for the kind of game they are making especially if its the kind that would fit with user generated content. If the engine you’re using can’t help provide it or tools to make that, are community people going to do that sort of heavy lifting to make it happen… don’t think so.

http://blogs.unity3d.com/2016/04/01/unity-joins-the-net-foundation/ I think even with Crytek working on C# support, Epic seems to have been out of touch. I do get up until now its been a licensing, but what is the now.

And documentation and tutorials do go a long way to easing users into using C++ for gamedev (Unreal could do with a lot more on it really) but I just end up feeling like why bother, no need for me to do this anymore… and for those who think that Unreal C++ and C# version would be almost identical… sure (though I would hope given more time someone at Epic might actually decide to do something about improving that situation). But it would still be a bonus for those don’t want to mess with pointers, headers and archaic programming style/syntax… Already looking at Crytek C++ and C# examples its plain to see which I would to prefer to work with even though doing similar things is much faster in Unity while doing it in CryEngine or Unreal via C++ is like doing it the oldskool way, I don’t disagree that C++ can offer better performance and many who are technically skilled in it don’t find it to be problem at all, but those type of guys/gals are the ones you hire and build/join teams with later on… to work on more ambitious games. For many indie shops and solo/small team they ain’t got time to go learn that nor desire to when an less user bugprone, less frustrating alternative exists… as some already say they are having to wear many hats to make a decent game already.

For many being able to quickly make and iterate on gameplay and take advantage of a market place with actual improved editor tools and starter framework kits helps a lot… I just don’t see ignoring the ease of use C# brings as a good thing at all… Being like lets not redesign our engine a bit to pick up on some of the philosophy of a more successful game engine is to me stupid. Unity’s easy extensibility as an editor because of the ground work and framework it provides to developers to use C# to build there own editor tools is powerful. I’m no C++ coder but I have built my own editor gui in unity to help me make my game easier… Am I going to achieve that with Unreal blueprints? I think not. For Unreal you have full source, but for most indies that is almost good as useless to wrap ones head around and get started with especially without much larger community tutorial script sharing going on. I’m sure if their is the desire to look at changing philosophy and looking at how things can be improved to make it more inviting for middle ground indie’s to use the engine/editor it would be a good thing.