<div dir="ltr">Thanks Robert - much appreciated.  We're aware of the C# limitations (eg pausing during GC as a simple example).  Many of these have been addressed by updates in .NET.  -  eg <a href="https://msdn.microsoft.com/library/ee787088(v=vs.110).aspx#background_server_garbage_collection">https://msdn.microsoft.com/library/ee787088(v=vs.110).aspx#background_server_garbage_collection</a><div><br></div><div>It's a form of game, but not in 3D at the moment.  We have an urgent need to test out some concepts in a 3D engine, and Unreal was our preferred choice.</div><div><br></div><div>While at some point we can re-commit to Unreal and what appears to be between 1-2 weeks of toolchain development, and thence to maintain it ourselves, the reality is that Unity and Unreal are similar engines feature-wise, though Unreal appears to focus more on high-quality 3D games, whereas Unity is a mix of 2D (ish) and 3D mobile games.   In other words: the engines are similar, though one has a larger asset library and solid C# support.</div><div><br></div><div>FWIW - our developer on this indicated that it was probably no more than a day or two away from a finalised build, however we're hoping for a "zero time" install of Unity + C#.  For us, at this stage - that's very compelling.</div><div><br></div><div>Much appreciated for the build details btw.  We'll store these for when we get back to Unreal.  </div><div><br></div><div>Many thanks for your help - we do appreciate it!  </div><div><br></div><div>Cheers - David</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 20 March 2015 at 11:52, Robert Potter <span dir="ltr"><<a href="mailto:robertbrucepotter@gmail.com" target="_blank">robertbrucepotter@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Disclaimer: I speak for neither Epic nor Xamarin, but the info here is all readily available if you look.<br></div><div><br>Epic is not really involved in this. This is a Xamarin operation and an 
as-yet exploratory one. If your production needs hinge on there being C#
 support, I think you will need to look elsewhere for the time being.<br><br></div>That said, there are a few things you might consider:<br></div>1) Your desire for binary releases for every is understandable, but for larger teams/organizations it is immensely helpful to have the tools build as just part of your normal process. Especially when it comes time to prep to go live, you want the ability to lock down a version but still take bug fixes from downstream (not to mention any changes you may want to make to better support your usage). If building the tools and distributing them to your team (via source control like Perforce or a local CDN... don't use DVCS like git or hg for large binary content) is just part of your normal process, then it won't be a potentially crippling distraction in the critical time of your project.<br></div>2) There are things C# does not do well, especially in realtime applications (though I don't think you've specified, this doesn't sound like a "game" project, but this still applies in general for RTA). C/C++ is difficult to avoid at a certain level, since some of the hoops you have to go through to get the same behavior in C# (say, fixed structured arrays); not to mention, the runtime optimizers are still less than ideal (especially the Mono-Unity version. Holy hell, it's terrible). It's hard to say whether it would come to that since I don't really know your project, but I quite often find a moment where I really want to be explicit about what the computer should do and C# is not the language for that (arguably, neither is C++).<br></div>I still like C#, and I am watching this project closely, but I don't think you are going to get what you want here.<br><br></div>-Robert<br><br></div>PS: not sure what build issues you are having, but I found the process pretty straight forward if you follow the directions. A few things though: <br>1) Make sure you have all of the prereqs (don't skip things like the
 DX Runtime version it specfies... it can give you seemingly unrelated 
build errors) installed and ready. <br>2) Build the vanilla version of UE4 
first just to ensure that is correct. It's a mostly turn key process, so other than build time (do it in the background), it's not much of a hassle.<br>3) Start with 4.4, since that's the version that it is targeting while the plugin stabilizes. You can get it working with the later versions, but I would hold off on that until you get it working with 4.4 (easier to get support).<br><br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 19, 2015 at 4:48 PM, David Ford <span dir="ltr"><<a href="mailto:davidfordaus@gmail.com" target="_blank">davidfordaus@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">As mentioned - we have tens of thousands of lines of C#, and a small number of lines in JavaScript.  In short:<div><br></div><div><ul><li>We have developers that need to know one language - C#</li><li>The rest of our product is in a single language</li><li>C++ itself is notoriously painful (though I know it reasonably well myself - I find it far easier to code in C# with Linq, reflection, automatic GC, etc etc)</li></ul><div>In short: rather than either re-skill a developer to C++, or fragment the team, or outsource the work, or any one of a myriad issues surrounding supporting C++ - we're using C# unless a compelling case can be made to support multiple languages.  As it is we're using C# with a number of additional frameworks (eg Postsharp, etc) - so it's a non-trivial C# environment in any case.</div></div><div><br></div><div>This should be just a plugin - built by Xamarin or Unreal / Epic.  This would install in seconds. Ryan Burnham's comment seems to indicate the issues he's found using the existing practice of "compile your own".</div><div><br></div><div>In addition to the rebuild problem - the statements around the fact that the plugin isn't "production ready" after many months of apparently zero development does not fill me with any sense that it's a viable option long-term, and could be killed at any point.</div><div><br></div><div>Epic / Unreal - if you're listening : I will be blogging about our experiences with the C# environment.   My most honest and best advice is this:</div><div><br></div><div><ul><li>Finish it - not all features need to be supported, but core ones do need to be</li><li>Include C# / Mono as part of your software build process - which will make it part of your normal dev cycle, and will disappear as a problem</li><li>Distribute it with the product out of the box</li><li>Trumpet it across the C# development threads</li></ul><div>Right now it's a failed feature launch.  It indicates that it's easy to use - but the reality is far from this, and is largely full of frustration. </div></div><div><br></div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 20 March 2015 at 10:23, Eugene Tchoukhrov <span dir="ltr"><<a href="mailto:ujen@vicogamestudio.com" target="_blank">ujen@vicogamestudio.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="blue" vlink="purple" lang="EN-US"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hi David,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I’m not with Xamarin nor Epic.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Just for my curiosity, what are the reasons you and your team are tied to C#? I moved our team over to UE4 and C++ a couple years ago and we have not looked back. It has been a great experience working with C++ and UE4.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Kind regards,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Eugene<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">PS, you don’t have to respond, but I’m simply curious.<u></u><u></u></span></p><p class="MsoNormal"><a name="14c34ab1ccef9c63_14c347032495923d_14c3459083266ef6__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></a></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> <a href="mailto:mono-ue-bounces@lists.ximian.com" target="_blank">mono-ue-bounces@lists.ximian.com</a> [mailto:<a href="mailto:mono-ue-bounces@lists.ximian.com" target="_blank">mono-ue-bounces@lists.ximian.com</a>] <b>On Behalf Of </b>David Ford<br><b>Sent:</b> Thursday, March 19, 2015 2:58 PM<br><b>To:</b> Ali Scissons<br><b>Cc:</b> <a href="mailto:mono-ue@lists.ximian.com" target="_blank">mono-ue@lists.ximian.com</a><br><b>Subject:</b> Re: [Mono-ue] A call to establish a C# / Mono development and build environment for the plugin<u></u><u></u></span></p><div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">I think my request still stands.  There is very little (if any) benefit to having each individual developer compiling on their own.  Few (if any) Unreal downloadable examples appear to use 4.4.<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I am re-tasking our developers to Unity as of this morning, and halting Unreal development entirely.   We may return to Unreal at some point, but will review the decision to support two engines in detail before committing to that effort.    <u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">If there are someone within Xamarin / Unreal that this email can be forwarded to - I'd appreciate it.  We're expending effort developing products, not wasting time recompiling (with compilation errors, as it turns out) non-production grade toolchains.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Regards<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">David<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On 20 March 2015 at 03:24, Ali Scissons <<a href="mailto:ali.scissons@gmail.com" target="_blank">ali.scissons@gmail.com</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><p class="MsoNormal">The plugin isn't complete and not ready for production use, not to mention the plugin requires changes with UE4 itself (thus the patches). However, not everyone is required to build UE4/plugin from scratch. Once it is built, you should be able to redistribute it to your other developers and only have them setup with C# related tools like Xamarin Studio and it's plugin.<u></u><u></u></p></div><div><p class="MsoNormal"><br clear="all"><u></u><u></u></p><div><div><div><div><p class="MsoNormal">Ali Scissons<u></u><u></u></p></div></div></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><div><p class="MsoNormal">On Thu, Mar 19, 2015 at 7:34 AM, David Ford <<a href="mailto:davidfordaus@gmail.com" target="_blank">davidfordaus@gmail.com</a>> wrote:<u></u><u></u></p></div></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><div><p class="MsoNormal">I'm somewhat confused as to why each developer wishing to use C# "must" recompile from source.  As far as I can see there's nothing compelling within the Mono code that requires that each developer should rebuild for their own specific machine or environment.<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Can I suggest that the better (best) approach be that a virtualised build environment be established within Xamarin or Unreal / Epic, and that a single developer be tasked with updating the Mono plugin on each release of the game engine (presumably the API's don't change between patches to point releases - eg 4.7 + patch will be compatible with the plugin if 4.7 raw is compatible.  This developer wouldn't be full time, but may perhaps spend a day each month (or less, assuming straightforward compatibility between releases).<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">At this stage there is potentially a vast amount of wasted effort having every C# developer establishing a full Mono build environment and toolchain for C#, when in fact most developers (including myself) simply want to download the Mono plugin and add it to the UDK, then add our own C# assemblies.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">We currently have one developer spending several days simply getting a Mono C# plugin environment to run, when in reality a pre-built Mono plugin would have removed all of that needless effort, and reduced the time to hours at most.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">We would prefer to use Unreal rather than Unity, however at this stage I may pull our Unreal development completely and switch our (early phase) project to the Unity platform based solely on the lack of a simplified development toolchain with C# / Mono.  <u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Note that all the other code for our project (20 + C## projects, tens of thousands of lines of code) are C#, and I see no reason to add a small amount of C++ purely to support Unreal, and based solely on the fact that recompiling the Mono C# plugin for each UDK release is non-core effort.<br clear="all"><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Best regards<span style="color:#888888"><br><br>David Ford<br>0421 659 552</span><u></u><u></u></p></div></div></div></div><p class="MsoNormal"><u></u> <u></u></p></div></div><p class="MsoNormal" style="margin-bottom:12.0pt">_______________________________________________<br>Mono-ue mailing list<br><a href="mailto:Mono-ue@lists.ximian.com" target="_blank">Mono-ue@lists.ximian.com</a><br><a href="http://lists.ximian.com/mailman/listinfo/mono-ue" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-ue</a><u></u><u></u></p></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></blockquote></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">-- <u></u><u></u></p><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Best regards<br><br>David Ford<br>0421 659 552<u></u><u></u></p></div></div></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr">Best regards<br><br>David Ford<br>0421 659 552<br><br></div></div>
</div>
</div></div><br>_______________________________________________<br>
Mono-ue mailing list<br>
<a href="mailto:Mono-ue@lists.ximian.com" target="_blank">Mono-ue@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-ue" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-ue</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Best regards<br><br>David Ford<br>0421 659 552<br><br></div></div>
</div>