With the fantastic news on the full source code release of Unreal 4 I’m sure more than a few of you are thinking about whether it might be worth to start working on C# bindings for the code. I thought I might kick off a thread here with this focus and to see if anyone is interested in starting a open working group on developing a Mono C# interface for U4.
You’re going to have the same LGPL licensing problems that Unity has to deal with, at least on iOS and any other platform which requires static linking.
Take a look at SWIG, which lets you generate bindings for a variety of languages, C#/Mono included, without having to write much language-specific code. Lua and Python are nice targets which don’t have the same licensing baggage.
When development starts up count me in. Hopefully my efforts with JS using V8 will be of use to you and we can collaborate to create something amazing.
The only noteworthy thing you should all keep in mind is that the GPL and LGPL are unacceptable licenses when working within UE4.
I have also thrown the great majority of the UE4 Static Linking tutorial up on the wiki.
Well then it means to be dynamically linked, if Unity managed to do that without being infected by GPL (this licence is designed to spread :p), UE might do that too.
I started working on this over the weekend, here is what I’ve learned so far for anyone wanting to help us get Mono in Unreal.
Compiling Mono - Right now the most difficult task (At least for Windows users) - Redirecting…
Embedding Mono - After getting it compiled, we need to embed it - Redirecting…
Another Embedding Example - The group that added Mono support to CryEngine created an example app to show Mono working in C++ here: /inkdev/Embedded-Mono-Sample
After getting Mono embedded, the fun part will be creating the bindings between C++ and C#, such as base classes and when to call into C#. Also intelligently loading DLLs and discovering what classes to call.
The CryMono example uses Mono 3.0.4 which is pretty old (Latest is 3.2.8), but it still works.