It's quite frustrating to work with C# without all the features of the last few versions, particularly if you want to use third party libraries.
It's quite frustrating to work with C# without all the features of the last few versions, particularly if you want to use third party libraries.
It's one thing if you're a major version behind (unfortunate, but manageable), but 2.0 was 5 years ago. That's not a major version, that's practically an entire generation.
Also, lack of compute shader support for anything other than Windows and DX11 is a bit of a drag. Compute shaders are really the future of development and it's a bit of a pain not to be able to use them without going through a number of hurdles. This should be fixed eventually though, I'd imagine.
Hopefully they figure out a better way to handle all their platforms equally, at least for development purposes. Being held back on the desktop just because Unity can deploy to mobile is, again, a bit of a drag. I'd rather have the option.
AFAIK you can do OpenCL on OSX with Unity, you just don't have the typical Unity integration so you'd have to handle all the details yourself. It's on my list of things to try out soon... the switch to general purpose GPU processing is too large of a revolution to ignore.
I have my game server as a C# MVC app as well (latest .NET running on Windows, not Mono/Linux) and the only things new that I seem to be using are the async and await keywords. But you don't need them inside of Unity since they have Coroutines and yield.
The rest of that stuff seems cool though. Oh well =\
http://forum.unity3d.com/threads/197948-New-version-of-Mono-...
Of course, I find it somewhat amusing that licensing is what prevents Unity from upgrading their C# support, since licensing the Unity source code is something that is also very difficult:
We license Unity source code on a per-case and per-title
basis via special arrangements made by our business
development team. As this can be quite expensive, we do
not generally license source code to smaller operations,
educational institutions, nor to companies in countries
which do not have adequate legal intellectual property
protection.
http://unity3d.com/unity/faqThe compiler and parsing pipeline is exposed, there is an interpreter built-in, you can hook into the assemblies, etc. I have a console in my game that does input/output from a Boo interpreter and it is exposed to everything in the game scope with no real extra effort on my part.
Only took a few hours to set up, most of which was spent either writing a UI for it or sorting out some compatibility issues (Unity doesn't come with a copy of Boo.Lang.Interpreter).
It's pretty sweet.