Friday, 26 February 2010

A Closer Look at Unity

Back in early November 2009 I reported on the free version of Unity that had been launched, and renamed from the Indie version to simply Unity. Today I will take a closer look at both versions and what they can do.

Before deciding whether to purchase Unity Pro you can download the free Unity which comes with a 30 day trial of Unity Pro included (after the 30 day period is up the software simply reverts to the free level of functionality). The main differences between Unity and Unity Pro are that with Unity you do not have real-time shadows, and with Unity Pro you do not have any splashscreens or watermarks. A detailed comparison of the differences between the two versions is on the Unity License page. Unity, with the 30 day trial of Unity Pro can be downloaded from the Unity download page.

Companies that have a turnover in excess of US$100,000 per annum must use Unity Pro. When using either Unity or Unity Pro no permissions are necessary to launch commercial products built with the software. However, they would take a dim view if someone took all the included asset bundles and resold them with a new name on them as if they were their own. No royalties are payable with either version.

Unity Editor
Unity features a fully integrated editor, which is tightly integrated with the game engine.At any time the game under development (and for 'game' also read 'virtual world' development) can be Played, paused or Stopped from within the Editor. Customisation is very flexible through the use of Editor-specific scripts, and layout arrangements. All assets and objects within the Editor use visual drag-and-drop, so it is a breeze to get your scenes up and running very quickly. Complex game objects can be designated as 'Prefabs' allowing them to be easily deployed throughout the game or at runtime. Any changes to the original Prefab is then propagated to all its clones.

Unity currently uses Nvidia's PhysX for its physics engine, and this is included in Unity.

Amazing Graphics
The graphics pipeline in Unity is highly optimised, so that both DirectX and OpenGL will run blazingly fast. Rendering is sorted to minimize state changes, taking lights and shadows into account. On good hardware, Unity can render millions of polygons/sec.

Unity can import 3D models, textures, bones, and animations from almost all 3D applications, including 3dsMax, Maya, 3D Studio Max, Cheetah 3D, Cinema 4D, Blender, Carrara, Lightwave, XSI 5.x, and meshes and textures from Sketchup Pro and Wings 3D. For images, Photoshop .psd and .tiff formats are imported with layers automatically flattened. Non-layered JPEG, PNG, GIF, BMP, TGA, IFF, PICT and many other image formats are also supported. Ogg video and audio are natively supported, but MOV, AVI, ASF, MPG, MPEG, and MP4 video files can also be used, and are recoded by Unity with a configurable bitrate. Audio formats such as AIFF, WAV and MP3 are also supported, and are stored uncompressed (great for high-quality sound effects).

Unity supports one-click deployment to either MAC OSX or Windows 2000/XP/Vista/7. All Unity games can be played using a standard web-browser including Internet Explorer, Firefox, Safari, and most Mozilla-based browsers, after installing a Unity Web Player Plug-in. The plug-in is small at around 3 MB, and auto-installs without a browser restart.

Unity provides great terrain tools to create all terrain types. An impressive range of foliage types can be painted directly into the scene, and with lightmaps showing the effects of all directional lights a realistic feel to a scene can be easily achieved.
Beautiful Terrains Can be easily Created

Unity supports JavaScript, C#, and a version of Python called Boo. All three can use the underlying .NET libraries which support databases, regular expressions, XML, file access and networking, and the logic runs on the Open Source Mono platform.

Unity has full network support via it's built in Raknet-based multiplayer networking system as well as c# socket support with which Unity can talk to any back-end software you want.

The most popular being Smartfox Server and Exitgames Neutron/Photon services. Smartfox Server already has an existing Unity based API, meaning you can actually get up and running in a networked, multiplayer environment. The API is right here:

Asset Bundles and other Resources
Dressing Room
Unity has a unique Locomotion System which allows avatars to move realistically, for example, walking up stairs intelligently. Keyframed and MOCAP animations can be imported, but then Unity adjusts the bones in the legs to ensure that walking on uneven ground looks natural.
Examples projects are available to use on the Resource pages, including one nice Character Customisation project, called Dressing Room, that comes in one zip file, and includes all the source code! Have a look at the demo here to see it in action.

Unity comes complete with a tropical island demo, but other projects can be downloaded from the Resources page, including: 3rd Person Shooter, Shadow demo, Character Animation, and Networking capabilities.

What are you waiting for? Go get it!