We are currently looking at releasing v1 of our C# implementation by June. We are also planning on an evaluation, indie, and pro build of the plugin.
Great to hear how ambitious the community is with embedding mono. One word of caution is on the GC side of things. You’ll want to use SGEN for an embedded Mono implementation. Otherwise you’ll start running into memory thunking issues pretty quickly. Embedding Mono is no small task in UE4 and requires some serious thought as to what the outcome should be for UE4 developers. Are you looking calling the engine or calling the C# DLL? What about integration with BluePrints?
Also another word of caution. Our solution takes advantage of the existing macros in the engine used for declaring BluePrint exposure such as UFUCTION() UCLASS() UPROPERTY() macros decorated across the codebase using a clever little macro setup that is engaged by the UBT.
================
Right now we have a C# based UE4.DLL which can be included in any standard C# compiler as well as used by our own compiler built directly into the UE4 Editor. On the C++ side we have a MonoRuntime and Script Engine Plugin for Engine as well as a Script Editor Plugin for Editor.
The UE4 C# library currently as it stands binds to the entire Game Framework sanely as well as any inherited classes that the Game Framework uses. So this includes common game logic UClasses like Actor, PlayerController, and Pawn (just to name a few). We have also binded Core and several other necessary parts of the engine.
You will have a few setup steps in C++ before you can begin using the Plugins with your game. You’ll need to setup the Plugin in your Game DLL. We are working on ways to overcome this step to make this feel as natural as possible to C# developers.
We also provide a Script Editor which lives inside of the UE4 Editor which allows developers to write and compile C# directly in UE4! We use the mcs to compile C# scripts into DLLs which are placed alongside the C++ Binaries.
We are shooting for the most natural Unreal Coding experience possible in C#.
Here are some screenshots:
Hey - Just curious will this be similar to coding inside unity3D? I am not trying to compare engines. I am trying to get someone to port a plugin from the Unity3D Asset store to Unreal 4. Basically a traffic simulator asset.
Will you guys be charging for the C# Bindings/Script Editor as well?
Any response is appreciated