Please work with Xamarin to make Mono for UE a reality

Thanks for your feedback! This topic is really important to myself and the engine team – we regularly discuss the possibilities. We use both C++ and C# every day. We’d love to support additional programming languages someday, including C#. That’s why we made the engine extensible to allow new scripting language plugins to be created by third parties. (The upcoming SkookumScript UE4 plugin looks awesome!!)

For now the engine team is committed to making the C++ programming and Blueprint scripting workflows clean and efficient – every release we try to make programming in UE4 faster and easier to use. C++ is an amazingly powerful language, and gets you top performance on every platform. High performance gameplay is absolutely a pillar of Unreal Engine. But so are fast iteration times, extensibility and and ease of use.

We’d consider supporting C# as long as there is a way for developers to release their games on any platform at no extra charge. This is really important to us! We’re not going to be able to put significant Epic resources into a project that adds “built-in cost” to UE4 developers who want to ship their game developed using a particular programming language.

We’ve been really impressed with the quality of Xamarin’s efforts, and we’ve been excited to see Microsoft open-sourcing their CoreCLR runtime and their upcoming cross-platform code IDE. There are many possibilities for C# to become more broadly adopted on all platforms. This is the same excitement I felt when the LLVM/Clang compiler reached critical mass and really inspired a lot of awesome change in the C++ community. For now we’re watching closely and talking excitedly about potential futures.

Remember if we eventually are able to support additional programming languages “out of the box”, we’ll want those to be first-class features! Besides fully supporting all UE4 target platforms, this means generating plenty of examples, dedicated API documentation, new video tutorials… the list goes on. It would be quite a large project! I’d be very excited about it though – but wow, it is a huge initiative. Either way we’re forever committed to making the C++ and Blueprint development experience as awesome as we can, even if add more languages someday.

Another thing that’s sort of interesting to keep in mind. Syntax niceties and iteration times aside, Unreal gameplay programming in C++ isn’t all that different than in C#, JavaScript or any other language. You’re still sub-classing actors and pawns, selectively exposing properties to the editor (or to Blueprints), and carefully considering local or remote actor roles when writing your replication in your multiplayer games. The gameplay framework still works the same, and there is fundamentally a “Unreal Way” to go about writing your classes. This is why we’ve also been focusing on changes to make the gameplay framework easier to learn and use, which will benefit developers using any programming language.

In any case, on the engine team we’ve really had our hands SUPER full since we launched last year. We’re carefully picking which large projects to put our resources into. We always try to be really open with you guys, and if kicked off a “new programming language” project we would want the whole community’s input and help as we brought that online. I think that when the time comes for that, it will be really fun. :slight_smile: