Unity: Starting your First Project (Part 1)

Posted: November 22, 2011 in General, Tutorial, Unity

This will be the first of 4 part series on getting started with Unity. In this portion, I will go over some things I learned while starting my first project, as well as some design issues I came across, as well as how to solve them. In addition I will talk about starting a game from scratch. This section won’t be too heavy on code or follow-able examples, so if you want to skip ahead to the more code heavy parts in section II, III, and IV, feel free. These posts assume you have basic knowledge of Unity’s GUI, and have to navigate it.

What I learned:

I’ve been using Unity for a few months now, and I’ve learned quite a bit about game design in general. The types of problems you come across in game programming are much different than on other domains. For example, in a web or mobile development, you spend a lot of time processing and retrieving data from various databases or calculations, and presenting it in a simple manner to the user. In game development, you have to work with things like positioning, and rotation, and figure out solutions to things like path finding, combat, and artificial intelligence.

The most interesting part of developing a game is definitely designing the individual game mechanics. When deciding on which mechanics to work on first, starting on the simplest, or most fundamental to your game is key. This is one things I learned while developing the simulated city game I am currently working on. For example, in a game like mine, where spawning certain buildings or other objects in a key part of the game, starting with a simple script to place objects (ignoring resources, and similar) is important. Once you have that basic functionality done, you can continue adding to it without worrying about whether the basic functionality of it will work. In a platformer game (like Lerpz 2), focusing on the movement of the player controlled character is also very important and should be one of the first things designed.

In addition to coding, the look and feel of your game is also important. Unlike web design, where creativity can be borrowed from free templates and similar sources, getting visual content for your game can be difficult. There are online services that offer free game assets, but getting a large group of assets that look good together can be difficult. This actually brings me to my next point.

Starting from Scratch

Starting a game from scratch can become a daunting process, and unfortunately many would be game developers get eternally stuck at this part of the process. I wrote a post a while ago with a bunch of different resources: http://blackscorner.me/2011/10/04/list-of-unity-game-assets-both-free-and-paid/. This is a great place to start for free assets of all kinds. Things like sounds and textures (I use http://www.cgtextures.com/ for textures, and http://www.freesound.org/ for sounds) are easy to get, and using these resources saves a whole lot of time. However, for models, many models, while of good quality, just don’t fit with what you need. Some are too high poly, some or too low poly, and some just don’t fit the style. Sometimes you need to make your own models


Modeling can be a very difficult process, especially for those whose experience lies mostly in coding. Choosing what 3D modeling software depends on quite a few factors. The free and open source alternative, called Blender (Blender.org) is a very popular choice for indie game developers who don’t have the money to put towards one of the proprietary pieces of software. Other alternatives are Maya, 3Ds Max, and others. I have experience with Blender, so what is what I will talk about briefly.

There are many online tutorials for Blender (you can find many on this page: http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Tutorial_Links_List). The learning curve is somewhat complex, but once you learn how to successfully create and texture a simple model, things get easier. I am by no means an expert, or really even good at modeling, but making your own models at least as place holders can really make development faster. You can always change the models, but if you are waiting on models before you can do code related stuff, the development process really slows down. The great part is that importing 3D models from Blender (and really, most other 3D modeling software) is extremely easy.

View the second part of this series here: Link

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s