12 ms·
Mono for Unreal Engine
- j_s 12y agoMaybe this will light a fire under Unity to get a recent version of a C# compiler. No one has ever been able to point me to an official explanation for why theirs is so far behind.
- WallWextra 12y agoThe unoffical reason is Xamarin wants too much money.
- pjmlp 12y agoOr the Unity guys want to pay too little money.
- Mikeb85 12y agoYou haven't seen Xamarin licensing prices...
- pjmlp 12y agoNo, but they are surely cheaper than a lot of comercial software I have to deal with in the enterprise space. Plus let's not forget Unity was just another 3D engine before they got Mono integrated. Whereas Mono was already being used in multiple areas. Anyway, this is playing conspiracy theory until someone issues an official statement.
- _random_ 12y agoI think it is very fair if Unity will be in the same boat as e.g. MonoGame.
- frik 12y agoMono is open source and free software. Because of the "single static binary" policy (no dynamic linking) of app stores you have to obtain a proprietary license from Xamarin. • The C# compiler is dual-licensed under the MIT/X11 license and the GNU General Public License (GPL). • The tools are released under the terms of the GNU General Public License (GPL). • The runtime libraries are under the GNU Library GPL 2.0 (LGPL 2.0). • The class libraries are released under the terms of the MIT X11 license. and: When do I need to obtain a license from Xamarin to the Mono Runtime? We only require licensing for uses of Mono and Moonlight on embedded systems, or systems where you are unable to fulfill the obligations of the GNU LGPL. source: http://www.mono-project.com/docs/faq/licensing/ http://www.mono-project.com/docs/faq/licensing/
- MrDom 12y agoIt's not just mono they need, it's the IDE. The default IDE that comes with Unity is MonoDevelop. If they upgraded the runtime, they'd have to pay for Xamarin's IDE. I wonder if embedding the java runtime would have been cheaper in the long run.
- jstedfast 12y agoOur IDE is free for anyone to use, whether you are using our iOS, Android or Mac products or not. It's also open source (except for the addins that work with our iOS, Android and Mac products). There are a lot of Unity customers on our forums using Xamarin Studio already.
- Alphasite_ 12y agoHow would that work with the App store now, since you can dynamically link to frameworks?
- gillianseed 12y ago>We only require licensing for uses of Mono and Moonlight on embedded systems, or systems where you are unable to fulfill the obligations of the GNU LGPL. In other words, you have to pay a license fee for shipping the Mono runtime in a proprietary game, which is what Unity does. So Unity has negotiated a license deal with Xamarin for the Mono runtime version they use, and if they want to use a newer version they will have to pay more, which they aren't doing. Instead Unity has developed il2cpp which means that they no longer have to ship the mono runtime with each game and therefore no longer have to pay the license fee for shipping mono. Atleast that's what I've gathered.
- forrestthewoods 12y agoThey forked a long, long, long time ago.
- mnglkhn2 12y agoI suspect the issue is related to the licensing fee which might be on a per dev seat and hence might not fit unity 3d's business model. Unless there is a hard stop issue, business wise, it won't happen.
- mnglkhn2 12y agoWhen unity got their mono license xamarin wasn't yet a business, hence the license was most likely zero.
- shadowmint 12y agoIt would have been zero to Xamarin, but doubt it was free. I imagine they bought a perpetual license to distribute sans-GPL the full code of a specific version of mono from Novell. This thread has a bunch of speculation and a few comments from unity developers: http://forum.unity3d.com/threads/new-version-of-mono-with-unity-4-3-any-additional-details-on-that.197948/ http://forum.unity3d.com/threads/new-version-of-mono-with-un...
- TillE 12y agoThat was my number one reason for moving to UE4; announcing Unity 5 with no Mono runtime update was the last straw. Current versions of Mono could probably do a serviceable job with simulation-heavy games, but not Unity's ancient one. Bizarrely, they don't even have a C or C++ API. You can add native code libraries to your project in Unity Pro, but you always have to go through Mono to interact with the engine.
- azakai 12y agoUnity is writing a C#-to-C++ compiler, il2cpp, see http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-in-unity/ http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it's much faster that Mono on some things currently, http://blogs.unity3d.com/2014/10/07/benchmarking-unity-performance-in-webgl/ http://blogs.unity3d.com/2014/10/07/benchmarking-unity-perfo... but it is so far only used in the WebGL port. Long-term, il2cpp is meant to replace Mono in Unity, according to the first of those links.
- migueldeicaza 12y agoSmall clarification. It is faster than the old Mono they ship. Their Mono is at best Mono 2.10, about three years old, without any of our optimization work for three years, very notably, a lot of the LLVM support, or the new garbage collector. That said, the il2cpp looks like a very promising an interesting project, so kudos for that!
- azakai 12y agoYes, I think those benchmarks are based on the Mono they use, which is indeed old. I would be very curious to see benchmarks compared to trunk Mono - should be interesting. My information may be out of date, but typically people tell me that Mono tends to not match Microsoft's .NET implementation in speed, and in turn, .NET tends to not match native C++ either. So I would still guess il2cpp can win here. Or are there benchmarks showing Mono matches .NET and/or native C++?
- 12y ago
- Mikeb85 12y ago> No one has ever been able to point me to an official explanation for why theirs is so far behind. They don't want to pay Xamarin. Mono commercial licensing sucks...
- AlexeyBrin 12y agoHopefully, Xamarin will add Visual Studio support in the Indie dev plan at some point. Currently, if you want to support iOS, Android and use Visual Studio you need to pay $1798 per year which is a bit more for a one man shop.
- j_s 12y agoNow that they've added a profiler as another differentiator the chances of that happening may have improved slightly. They do have 'call us' deals for small/new businesses. I'm wondering if you would mind sharing what features you miss the most when you are away from Visual Studio? I've not tried it but I'd guess a lot of the editing is possible even if you do wind up stuck using Xamarin Studio for building and debugging.
- AlexeyBrin 12y agoI've never played enough with Xamarin Studio and only tested Xamarin Business with Visual Studio (I've used a 30 days trial).
- j_s 12y agoThanks for sharing your experience. Xamarin Studio is definitely rough around the edges but for the most part it seems to get the job done. For example, I've had issues where the update dialog steals the modal focus from the source control dialog(s) and that's basically the end of all interaction with the app until I restarted it.
- Rapzid 12y agoIts essentially branded monodevelop with bundled addins(or is mono develop now unbranded xamarin?). In any case, it has improved dramatically over the past couple years. I write services/daemons in it and find the C# functionality to be fantastic now. F# is coming along too.
- pjmlp 12y agoHaving spent some time writing JNI wrappers for a hobby application in Android, I think it depends on what one is trying to achieve. For hobby purposes and small development, it is expensive and probably is doable doing everything alone. However, for usual business with short time to market, taking into consideration "time spent on feature" X "hourly rate" per developer time, the prices are quite cheap.
- sremani 12y ago>>This is a project that allows Unreal Engine users to build their game code in C# or F#. F# support is the real kicker.
- T-A 12y agoBut "Features and roadmap" at http://mono-ue.github.io/ http://mono-ue.github.io/ says "Our current release supports C# on Mac and Windows. We hope to add many more features, such as support for the F# language [...]". Confusing.
- sremani 12y agoThis is what is on their page: http://mono-ue.github.io/roadmap.html http://mono-ue.github.io/roadmap.html <Quote> While you can use F# today, we want to provide default templates that people can use. Currently, you must set the projects on your own. </Quote>
- deleted 12y ago[deleted]
- migueldeicaza 12y agoApologies, I have clarified this. It works, we just do not provide any code templates yet.
- nailer 12y agoBlueprint, the default UE4 language, seems functional. All functions are pure functions, with input and output, not methods, there's no 'self' or 'this'. That said, I'm not an expert on Blueprint or FP so maybe someone who knows more can tell me whether that assessment is accurate. (And I totally understand that some people will prefer F# and access to all those .net classes anyway)
- teamonkey 12y agoI wouldn't say it was pure, since a lot of the commands have side effects. Probably more accurate to say that it's a powerful flow-based language with a graphical representation.
- aric 12y agoThis is another game changer. Personally, the portability of C++ is, by far, its own reward. But I'm thrilled for others that C# is finally becoming an option. It's been many months in waiting for Unity users sitting on the fence.
- Xelom 12y agoThis means a lot to me. I will try to contribute to this one, nice kickstart guys! I don't have much C++ experience and I had doubts about getting into UE only with blueprints. It feels like there will be cases that I won't able to cover just with blueprints. I was experimenting Unity just because of their C# support but now I can gladly turn back to UE and it is more exciting for me.
- HeshamA 12y agoAs a long time Unity developer that hasn't touched C++ in years, I can say that I have been experimenting a lot with UE4 and I haven't really needed to touch C++. Blueprints are really powerful. Having said that, I'm really excited to see c# supported.
- _random_ 12y agoGood! Unity is in a desperate need for competition. How old is their Mono version again?
- azakai 12y agoOne concern here is portability: If you write your game logic in C# on Mono, it won't run on all platforms (possibly for either technical or licensing reasons - you're limited to where Mono runs). For example it won't run on the HTML5 target. For comparison, Unity has written il2cpp to replace Mono to get around that, http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-in-unity/ http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-... it basically compiles C# to C++, which they found is much faster. I wonder if this project has a solution in mind for platforms where Mono won't run? Or maybe it targets just a subset of the things Unreal Engine can target?
- Sir_Cmpwn 12y agoMono is a well designed, very portable codebase. The only platform I can imagine having trouble _is_ the browser, but I would bet that you could compile mono with emscripten quite easily. Also, there's http://www.jsil.org/ http://www.jsil.org/
- azakai 12y agoThere are also issues with Mono on some consoles and mobile devices, due to how linking works as well as some non-technical (legal) restrictions the platform owners place. From talking to Mono devs, definitely Mono can be ported to new platforms, at least if there are no license problems. But even then, it can be quite a lot of work. il2cpp avoids all those issues, it emits C++ which every significant platform can handle very well.
- berdario 12y agoAlso, there's NaCl. Some Mono games (like Bastion) have already been ported to run on the browser: http://www.supergiantgames.com/blog/surprise-bastion-now-available-in-the-chrome-web-store/ http://www.supergiantgames.com/blog/surprise-bastion-now-ava... (then again, NaCl is not probably what most people have in mind when they think about browser support)
- Sir_Cmpwn 12y agoMy only disappointment is that Linux support isn't mentioned anywhere, not even in the roadmap.
- migueldeicaza 12y agoI'll add it to the FAQ, but a variation is already there: You should be able to make this work on any platform where Mono and Unreal Engine work together.
- deleted 12y ago[deleted]
- drawkbox 12y agoDefinitely game changing. The barrier to move from Unity to Unreal is really low if this works out. Still best to do C++ where possible but this opens up Unreal drastically.
- socialist_coder 12y ago> The barrier to move from Unity to Unreal is really low if this works out. Not at all. You still have a huge chunk of your code written specifically for interfacing with UnityEngine. Also, coroutines instead of async. It still won't be easy to migrate.
- deleted 12y ago[deleted]
- kayoone 12y agoAwesome, the last thing that held me back jumping ship from Unity was that i love C# so much and have no prior C++ experience.
- keyle 12y agoThe installation process (PC) kinda just threw me off :/
- ed_blackburn 12y agoI wonder if Xamarin are considering acquiring Untity 3D?
- cturhan 12y agoWell this is very strange. Language shouldn't matter so much. Eventually you will use the same function name for any language. Whether it's c++, c# or f# you will use same functions e.g. `setActorLocationAndRotation` so I didn't get that.
- AlexeyBrin 12y agoFrom http://mono-ue.github.io/about.html http://mono-ue.github.io/about.html > To redistribute code written with Mono for Unreal Engine, you must have a commercial license to the Mono runtime. These licenses are available from Xamarin for Mac, Android and iOS online, and you can request Windows licenses through support. So, if I want to use this commercially on Windows I will have to buy a license for the Mono runtime ? Judging by the price for the Mac license it should be around $300 per year, while the Unreal license itself is about $240 per year. Now, if I want to use the same code on iOS, Android, Windows, Mac I will pay to Xamarin about $1200 per year.
- numo16 12y agoThe Unreal license is only that much if you keep your subscription going. You can subscribe and then cancel your subscription whenever you want, while still being allowed to publish using the latest version of UE4 that was available while you were subscribed. From the EULA: After cancellation of your Subscription by either you or Epic, you will not be entitled to access or use future Versions of the Engine Code or Assets that Epic makes available under the License. However, cancellation of your Subscription will not affect your rights under the License with respect to any Licensed Technology you have already downloaded under the License.
- AlexeyBrin 12y agoI know about the Unreal license and I actually think it is a decent price for the engine. My comment was more about the Mono runtime licensing that ads up quickly and it is more than the initial cost of UE 4.
- mnglkhn2 12y agoUnreal's model of subscription+5% of top revenue becomes a real nice deal when coupled with Mono. All o fthe sudden there is room for C#/.NET devs to be able to contribute to the platform. It should be a nice boost for UE4's adoption