Unity Is a Powerful Free Tool for Serious Game Designers

Unity isn't for writing Pong. Oh, you could do that with Unity, I'm certain, but it would be like using Deep Blue to maintain your grocery list. Unity 2.6 is a professional-level game engine and editor, and you need to know a lot about what you're doing to get the most out of it. Familiarity with 3D modeling is essential, as is real coding skill. While Unity has a slick, modern, GUI interface and simplifies or automates much of the tedium of game coding, it's not a beginner's toolkit or a "point and click, drag and drop, presto, you've got a game!" tool.

Unity screenshot
It takes a lot of code to make a heron walk, and Unity can handle it.

It comes with some well written and very useful tutorials, but these tutorials assume you have some level of knowledge about game design in this type of environment, and are tutorials in using Unity, not in the concepts you need to understand beforehand. An intuitive understanding of manipulating objects in three dimensional space using your two dimensional computer screen is mandatory. Those with experience with level editors for modern games such as Oblivion and Half-Life 2 will have an edge here.

Unity's interface is very intuitive and clean, given the complexity of the data it manipulates, so reading the tutorials is essential--it's very easy to think you know what you're doing and then get frustrated because things don't work the way you expect them to. In other words, it's so easy to do things that you don't realize which things you're supposed to do.

Games consist of scenes, which contain GameObjects; GameObjects can be items like rocks or enemies, light sources, cameras, or interface elements. GameObjects are made up of components, such as the Transform component (which is what positions and moves the object), the Mesh (the base of the visual representation of the object), Materials (which help define how the object will be drawn), and much more. Creating a simple cube which will "fall" and "bounce" as you'd expect is as easy as dragging the RigidBody component onto the cube object.

You can "play" the game at any time, so you can see how object will be rendered, how scripts execute, and so on. It's easy to have an editor window and a game window open at once, so you can simultaneously work with objects in the editor and see what the player will see in the game window.

Unity supports a variety of scripting languages, including JavaScript and C#. All behavior in the game must be scripted, and the documentation assumes you're already a skilled programmer. Just about anything you want to happen in your game--right down to the player moving around in the world--requires a script. Fortunately, the absolute basics, such as generic movement and mouselook scripts, are provided.

Unity does not include any 3D modeling tools, except for the ability to create very basic geometric shapes. You will need to use another program, such as Maya, and then import the models. Unity does include an animation utility, but you can also use other animation programs.

If you're looking for a "Learn game programming!" type of package, check out Game Maker or RPG Maker XP. If you have the background to take advantage of it, though, Unity is a powerful development environment at an unbeatable price.

To comment on this article and other PCWorld content, visit our Facebook page or our Twitter feed.
Related:
  
Shop Tech Products at Amazon