Advertisement

What upgrades do you think Unity needs?

Started by November 01, 2014 11:32 AM
23 comments, last by FGFS 10 years ago

The only thing that has turned me off is the fact that I'm spoiled by the latest versions of .Net and C#, which I now take for granted. Having to go back to Unity's version of these kind of makes me cringe, so I'd say getting those up to date would be removing the biggest obstacle to me giving Unity a go.

What are you missing? Honestly past linq nothing has changed that much and you get that in unity

So your very valid question forced me to challenge my own preconceptions about Unity and I discovered that C# in Unity is more up to date than I thought. That then led me to wonder why I still have an aversion to it and the thoughts that come to mind are that I read an article somewhere stating it doesn't really play well with version control (outside of Unity's own proprietary add-on solution?) which bugs me a lot, as that's something I like control over. I'm also very picky about visuals and only the as-yet-unreleased version 5 has shown lighting that lives up to my own unreasonable standards. And then there's the fact that I like to reinvent the wheel. Guilty as charged.

For version control now that MS bought off the visual studio plugin it's free to use iirc, so i guess for code you could just work with visual studio projects and use TFS. Also for visuals it really depend if you could "just unity" (but if so it's a waste as your missing it's greatest strenght) or unity + asset store offerings (which are cheap compared to unity itself). You can find plenty of eye candy there, last i toyed with unity there were even realtime GI implémentations on the way to the store (not sure how that went). Here are a few products i like that produce muchos eye candy for unity

http://tcparticles.tinycubestudio.com/ (gpgpu massive amount of particules)

http://www.noesisengine.com/noesis_gui_features.htm (basically WPF subset usable as your GUI Framework)

http://www.marmoset.co/skyshop (IBL for unity)

And plenty more of course, but the asset store was always what sold me in unity, makes the engine go from "meh, nice user friendly but not impressive" to "wow" for a few more $$$ compared to the base license price.

I'd love Unity to have more multi-threading support. The scripting sure doesn't.

Not sure what you mean? You can create threads just fine in unity?

Advertisement


Not sure what you mean? You can create threads just fine in unity?

You can create standard .NET threads, but AFAIK the Unity-provided classes still aren't thread-safe. For example GameObject, Transform, etc. This makes multi-threading challenging.


Not sure what you mean? You can create threads just fine in unity?

You can create standard .NET threads, but AFAIK the Unity-provided classes still aren't thread-safe. For example GameObject, Transform, etc. This makes multi-threading challenging.

Yea but isn't specially bad, not like whatever requires offloading to another thread is going to spend most of it's cpu time in those objects. Can either offload something working on it's own data (AI) or just go back and forth in execution contects

new thread

=> do something heavy

=> when done queue action on UI context

=> back to heavy work etc.

I'm not saying that it's impossible in general, but it's inconvenient and occasionally intractable. The Instantiate method can be very slow, and is not thread-safe, see below for that and associate topics:

http://answers.unity3d.com/questions/180243/threading-in-unity.html

Various useful helper classes and methods (such as Unity's Random) which one would expect to be usable are not thread safe. By design I might add, they check which thread they're in and do an Assert. My point is that most chunks of simple repetitive Unity code cannot be multi-threaded without significant re-writing (e.g. extracting the number-crunching only, creating new transport classes to pass the required info between threads, re-creating any Unity functions you need which aren't thread-safe).

I think that Unity 5 is pretty good, I am beta testing it right now, but I think things that are plugins should be bought out and placed into Unity as additional asset packages and may be improved upon. Some of these things are built into other engines and would push Unity into a more complete game engine \ editor.

  • ProBuilder (Building the scene inside the editor is common and useful)
  • Shader Forge (Ease of shader/material creation!)
  • Sprite Tile (2D Tile mapping, invaluable)
  • Prime31 (IAP, Social Networking, really just functionality almost every mobile developer will want)

The plugin system is very powerful but is not as documented as it should be and some of it doesn't work too well:

  • It's harder than it needs to be to override scene view controls
  • No additions to toolbars
  • Can't override base asset inspectors means have to recode them from scratch (thousands of loc!!)

That's about it I think.

Engineering Manager at Deloitte Australia

Advertisement

I haven't tried Unity 5 so far, but I'm surprisingly happy with Unity 4 so far. The material system could use work, but I've found it pretty easy to write my own shaders. Unity's surface shaders have some limitations, but it's generally possible to work around them, and the fact that they handle all of the shadow mapping, lightmaps, and even forward/deferred paths "automatically" is a big time saver, even if there's not a full-featured node-based editor. With a bit of work I've found that it's more than possible to achieve professional-quality lighting in Unity 4.

The biggest thing that annoys me is that the prefab system is still a bit awkward. Last I checked, there's still no way to create nested prefabs, or instances of prefabs which retain some aspects of the original but not others (meaning that if you change the prefab in a significant way, your only option for have the changes propagate to an instance is to revert the instance and lose all changes you've made). It's annoying, but I'm not sure there's a straightforward way to fix it, either (although nested prefabs would certainly help).

-~-The Cow of Darkness-~-

with Unity 5 coming (haven't tried the beta yet, but given they can fulfill all they promised), there is hardly anything left I miss.

My list until now was:

- suboptimal implementation of deferred rendering (lighting only, hence 2 passes isntead of one)... promised to be replaced by a new, fully deferred renderer in Unity 5!

- Crappy, resource hungry shadow mapping implementation (separate shadow map per light)... maybe Unity 5 will help here, haven't heard much yet, there are multiple Assets in the Store that promise to rectify this problem... one of them is a new, all DX11 renderer from the asset store I might give a shot if Unity 5 dissapoints (to hell with all the old crappy DX9 hardware)

- Draw call overhead... Hardly a Unity problem, more like a DX Problem that might be rectified with DX 12...

- Suboptimal multithreading in built game (while multiple cores are utilized, virtual cores with i7 HT for example seem not to be utilized)... not really a problem as such, not many people have HT ready CPUs anyway, and with draw call optimizations by DX12, the CPU will hopefully be less stressed.

- no 64bit Editor... Solved already!

- Crappy SSAO... Enlighten GI might one up all existing GI-like image effects and lightmapping, until then I found a brilliant 3rd party SSAO effect in the asset store that is cheap, high quality looking and not too performance hungry.

- PhysX often not good enough for realistic looking detailed physics... Well, I haven't tried any of the 3rd party physics libraries yet and instead opted in fiddling with the physics at runtime if PhysX is weak at a task (wheel colliders for example... like trying to achieve atomic fission with a stone age axe smile.png )... guess this is just PhysX being crap

- spherical render range instead of a square one... Still outstanding! Hope they fix this at one point in the future!

- crappy input manager... but there are 3rd party options.

- Better AA Solutions... for deferred, all the last gen solutions suck! Next gen solutions are already in other engines, but I have not heard from Unity implementing these (temporal AA and such algorithms)... might be not so much of a problem, if solutions like Nvidias new "Multisampling+" become en vogue

For me, this list contains the most annoying shortcomings of Unity I had to deal with in the last 1.5 years since Unity 4. I still think Unity needs to do some catch up in the higher end of graphical and performance features, but there is not much left, especially with Unity 5 coming.

And then there are all the smart guys on the asset store. Some of these 3rd party solutions are good enough to close the gaps left by Unity... and most of them are cheap enough to get them for the price of some beers.

Getting a better graphical fidelity and doing something for your health at the same time (beer just makes you fat ;) )

Future looks bright for Unity, and DX Games in general. Let us hope both Unity 5 and DX 12 do live up to the hype.

This page turned out way more popular than I thought...thanks for all the responses guys!


Last I checked, there's still no way to create nested prefabs,

+1

This topic is closed to new replies.

Advertisement