I’m about to start developing a turn based strategy game with a lot of GUI elements.
I come from 2d game dev background and currently I try to decide what 3d game engine to choose (Unity, Torque, Shiva or Neoaxis).
Unity seems to be the best of the pack, but while I was scanning the forums I found that unity GUI system has some performance issues (a draw call for every GUI element). And since my game will heavily depends on GUI it would force me to switch from Unity to another engine.
I know that there are some 3rd party commercial solutions for unity GUI, like EZ GUI and GUIX. Do they solve the performance issues?
The most important question before answering the question: what platform is your game aiming for?
If the answer isn’t iPhone or Android: stop worrying. The amount of drawcalls from your GUI will pale in comparison to the drawcalls of the actual game.
If the answer is iPhone or Android: you will need to take some special care implementing the GUI, either by buying one of the external tools you mentioned, or by implementing it yourself. Either way, it is not extremely difficult to reduce the GUI overhead to a minimum.
I am with the same worries… but unfortunately my game is target to iPhone and Android… so I guess I have to care about the performance…
then I would like to known if someone already had tried the solutions mentioned (EZ GUI, Bitverse GUI, etc)… I mean do they solve the performance issues, when working with mobile platforms?
If you have many objects that have to draw during OnGUI(), I suggest that you remove from their monobehaviour script the OnGUI() function, and replace it with a DrawGUI() with exactly the same code.
Refer all your scripts to a GUIManager that will call all DrawGUI() during its own OnGUI().
For performance, I have noticed that it is noticely better.