Unity Diary 01: My first impressions of Unity3D

Posted by dolgion on Wednesday Jan 12, 2011 Under Unity3D

Today I decided to actually run the shortcut “Unity3D” that’s been collecting digital dust on my desktop for weeks now. I heard very good things about the software, about how it makes the whole workflow of developing games more simple and painless.

Well I gotta say, it totally does! If Flash CS4 is a really good software to make animation and 2D games, then Unity3D is the exact same for 3D games. It makes game development truly object oriented.

Let’s look at the interface:

Unity3D's default interface

So we got the scene view, where you can basically see the 3D world that you’re currently building and working on. It contains 3D objects such as tree models, characters, but also the light sources, camera(s), and sound sources. Everything that is used in the scene is added as a “GameObject”. Think of a GameObject as a blank slate that is defined by components that you can add to it, such as Cube component. This would mean that the GameObject is visible in the scene as a cube. It is a cube now. You could also add a Box Collider component, meaning that this cube now possesses the attributes which are connected to the collision system (such as what kind of material the cube is made of – wood, metal, etc). Did I mention that Unity3D has a solid physics engine?

Then we have the project view, which basically contains all the files associated with the project – prebuilt GameObjects, sound files, source code, and many more.

The hierarchy view lists all the GameObjects which are present in the current scene, and their relationships with each other. For example, you could add a table into the world, with an apple on it. Then, you could drag and drop the apple GameObject on the table GameObject in the hierarchy view in order to make the apple the table’s child. So now when you move the table, the apple will move too, never losing it’s position relative to the table.

The inspector pane shows all the information about the currently selected item, be it an asset, a GameObject or whatever. And last but not least, the toolbar is very much a normal toolbar like in other programs.

The programming languages (yes, there are several) used in Unity3D are Javascript, C# Script and Boo Script. Maybe there are more, but these are the ones I’ve seen supported. You can choose between them to program the behavior of the GameObjects. There are all the functions you’d expect – an update function which gets called every frame, event handlers for collisions and keypresses etc. Code/Scripts are assigned to GameObjects by dragging them from the project view to the hierarchy view or directly into the scene view. It’s that simple.

Actual asset creation is still done with dedicated software, such as Photoshop, Blender (I believe it’s compatible) etc. Things I liked about Unity3D itself were the ease of manipulating the 3D world through the scene view, the clear structure and relationship between assets and GameObjects and that there is a solid physics engine out of the box. I was able to mess around in 3D without having to actually program an engine. Of course, programming your own engine is something every real graphics programmer should try, but for somebody who’s more interested in making games quickly and to get results fast (Experimental approach to game design) this is an amazing tool and engine.

Unity 3D is free, but a professional version which contains some advanced features. There is a 30 day trial for the pro version.

Unity3D can deploy to the browser, so it is about as platform independent as Flash (users have to install the free Unity player plugin) and for a price deployment licenses for iOS and Android are available. Prices are here.

The tutorial I am currently working through is at unity3dstudent.com and it’s just sublime! The author Will Goldstone uploaded an entire series of ~2/3 minute long videos which illustrate a large amount of the functionality in Unity3D, as well as explain all the essentials and beginner stuff one needs to learn, without pushing the direction into any one type of game as is the case with most other tutorials I saw.

Working through the tutorial series

I worked on my first day through the Essentials module (~9 videos) and am now in the Beginner’s module at video 15. I’ve learned how to set up a 3D scene with GameObjects, am able to manipulate their attributes through code, get input from the keyboard, play sounds, use collision and trigger detection, display on-screen text and how to change between scenes. There is a lot more to cover and I’ll write about that stuff next time.

So for now my impressions are very good. I get the feel that with Unity I could make a simplistic 3D shooter in a week or two, even though I’ve never actually made anything in 3D!

Share Share

2 Responses to “Unity Diary 01: My first impressions of Unity3D”

  1. Will Goldstone Says:

    Hi there, thanks for the mention! hope you enjoy the rest of the videos! ps. for better SEO on your wordpress, go to reading in your settings and change the permalink style to something with the title of your post in. All the best!

    Will

  2. dolgion Says:

    Wow, I hadn’t expected you to notice my post! I would like to be able to change the permalink style, but my server runs nginx rather than apache, and the setting somehow breaks my blog.

Leave a Reply