Unity Development Blog 1 – Unity 2.5 Review
by Ryan Zec on May.27, 2009, under Game Programming, Unity, Unity Developement Blog
I have been playing around with Unity ever since they released version 2.5 which included development on the Windows operating system; it’s been about 2 months now. I am done with the evaluating period and decided that a general review of Unity would be a good way to start of this blog series. I am starting to get into a specific project that I will be using Unity for and hope to continue this blog series (at least 1 post a week) and basically post back on how Unity is the deeper I get into it.
This general review only covers the things I have been working with and because I am more on the programming side, some things I did not cover like asset importing which deals a lot with 2D/3D graphics. Lets get to it:
The Development Editor
I think this is one of Unity’s biggest selling points. Their development environment for working with all of your assets (script, scenes, 2d graphics, 3d graphics, audio clips, etc…) is very clean and is mostly intuitive (no major issues).
Since scenes are very important in Unity development (scenes are basically your levels when dealing with games), this is something that needs to be very easy to work with and it is. The visual scene editor is pretty easy to navigate. Adding assets to the scene is as easy as dragging those assets from the project window (which has all your assets) and dropping it into the scene window. You have a hierarchy view which shows all of the game objects in your scene and then the inspector, which allows you to modify the game object properties.
Again, it is very clear that UT has put a lot of thought into the development environment to make it as easy to use as possible when working in Unity.
Terrain Editor
The terrain editor is overall pretty good but there is one small flaw that has a big impact for me. Now the terrain editor is pretty good and provides a good set of tools for creating terrain, adding trees, applying textures, raising and lowering terrain, and more however the one flaw that effects all of these tools is that there is no visual brush to see where your edits are going to take place. This can make terrain editing a little annoying at times. Most of these tools give you the ability to set the size of the affected area however when you move the mouse over the terrain in the scene editor, you will not know how big that area is until you try to apply the effect. This can lead to a lot of guess work.
I am happy to say that they are implementing a visual terrain brush for version 2.6.
Graphics
I am not going to say that Unity’s rendering engine can outperform engines that cost hundreds of thousands of dollars or that is it the best is the world but what I will say is that the rendering engine does not disappoint me. Unity can run on a wide range of video cards from low to high, and I have seen Unity render millions of polygons per second on the higher end hardware. The shaders that Unity provides are also very good and of course you can create your own. I think Unity has a very good mixture of power and accessibility.
Scripting
Unity uses Mono which is a cross-platform implementation of Microsoft’s .NET platform. This allows Unity to tap into an already established programming platform that I believe is a good one.
Unity also provides 3 different languages for you to use when scripting: an implementation of JavaScript, C#, and Boo. The JavaScript implementation is pretty easy to learn and is the most documented language in Unity’s official documentation. There is a lot of general C# information but not a ton of Unity specific C# examples (which I wish there were more of since C# is the premier language of the .NET/Mono Platform). Boo is a similar to python but not a widely used language in the Unity Community.
The bad news is that Unity is currently using Mono 1.2.5 but the good news is that they are planning to upgrade to the latest version however there is no news of which Unity version this upgrade will be include in (I am hoping it is before 3.0 but I will have to wait and see).
Assets Management (Version control)
Currently Unity’s files do not play well with free/commercial version control systems (like SVN or Perforce). They do have an Assets Server add-on that works ok (not as feature full as something like Perforce) but it cost 500 extra to get it. If you are going to be working with 2 or more developers than you really need the asset server.
The are planning to integrate SVN and Perforce in Unity’s work flow before version 3.0 however I hope people who purchased the Assets Server are not screwed over. I have yet to purchase the assets server, still on the demo of it but chances are I am going to have to buy it. I don’t want to spend 500 on the Assets Server and then 8-10 months down the line, everyone can use SVN for free. Not sure how they are going to handle this but hopefully they don’t screw people who have purchased the Assets Server.
Deployment
Deployment could not be easier. To build your project just select the platform you want to build for and hit build. That is it. So far I have not had issues building for web or standalone for windows.
Documentation
The documentation is better than some engine I have used in the past (like TGEA) but still leaves room of improvement (but isn’t their always room for improvement). There is a 500+ page user manual along with a scripting API reference. They do explain a lot however I feel they could use more detailed examples as some stuff is only lightly covered.
On a side note of documentation, the user forums are generally very helpful. Most people are friendly even when it comes to what some people call newbie questions. A lot of useful information can also be found from searching the forums.
Conclusion
Overall this is one of the best game engines I have seen. There are a few annoy bugs (nothing major) that I hope will be fixed in version 2.5.1 but I can live with them for now. If you looking for a game engine where you don’t want to deal with modifying the core engine source code, then Unity is one the best engines (for me, it is the best) out there for under $2000.
May 27th, 2009 on 5:44 pm
Ryan,
Nice review and as far as game development platforms Unity is an amazing set of tools.
We started testing at the launch of the windows 2.5 release and loved it so much we added Macs and the Unity iPhone version.
Matro