For the next couple of weeks, we're going to be doing something a little bit different. Today is the first part of an ongoing series of articles dealing with learning, from scratch, how to become a video game developer.
The purpose of this series is to give a general idea of what is involved in game development to people that might be interested in learning how to make games, or people that have no idea what is involved and would just like to learn how it all works. In the meantime, I will be learning the skills needed to make a proper video game, which I will then be able to use to make something special for you guys at the end.
For those budding game designers who are looking to get into the dev scene, or for those who are curious about what it takes to make a game - you're in the right place.
Alright, let's get to it.
Before we begin doing absolutely anything, it is important to decide which engine we're going to use. A game engine is essentially a computer program that designers use to put all the bits and pieces of a game together, to make it work fluently as a video game.
There are tons of options out there - some are mobile specific, some do certain things better, some are free, some are expensive - but for the purpose of what I'm planning to do I boiled my choices down to three. As per recent announcements at the Game Developers Conference (GDC) 2015, Source 2 by Valve (makers of Portal, Half Life, Team Fortress 2) is soon to be released to the public, free for anyone to use. This option sounds fantastic, but wasn't much good for me as it still hasn't been released yet. Epic Games' newest iteration of their engine, Unreal Engine 4, has just been released as 'free' to the public, with the only caveat being that once a project starts earning over $3000, Epic takes a 5% cut of the revenue. With big name games such as the Bioshock and Batman Arkham series' being made in this engine, this was almost where I rested with my choice, but ultimately I decided to go with option three - Unity 5.
Unity has been around for quite a while now, and has been championed by indies worldwide as one of the best options available. It has two license options - personal, which is free, and professional, which is paid. For my purposes, the free option is more than enough. I chose Unity over the other options available to me due to both the large marketplace of assets available to download/purchase and the excellent community surrounding the engine. There are a bunch of really great people willing to help out with problems and any other issues a beginner might come across all around the internet, on the Unity forums in particular. Often all it takes is a google search to find the answer to a problem you may be stuck on for hours if not for these people.
Alright, with our engine chosen - lets get into it!
Where to start
After opening the program you have downloaded from http://unity3d.com/get-unity and beginning a new project, it's easy to get overwhelmed by all the stuff that has appeared all over your screen. Rather than just starting to randomly click things around the screen (which can work, even if it is a much slower way of learning) A good place to begin figuring out what's what is back on the main website.
http://unity3d.com/learn/tutorials/modules is where I begun my research. Here you will find a few hand picked tutorials made by Unity themselves to help you learn the basics of the program. While it can be tempting to just jump in to the cooler looking tutorials, it is best to start with the very basic beginning however - Project Roll-a-ball.
This tutorial is a great spot to start learning the essential parts of using the program - from using a camera to creating some basic building blocks to making a game out of the objects you've made. The videos are fantastic at explaining each step in acute detail, going through each minute bit of info to help you follow along. Rather than regurgitate that here, I would encourage you to watch through the project yourself, or at least the first video, to get a sense of what I'm talking about. Each video is divided up into a small 5-15 minute chunk that focuses on one particular aspect of the development, which helps keep the learning to bite size chunks rather than a Overwhelming sea of content to drown in.
It is worth noting a couple of things here - if you are kind of know how computer code works, but aren't a computer whiz, the scripting sections of the tutorial may be a tiny bit difficult to follow. My advice would be to slow it right down and stick with the video - pausing every little bit to see what the speaker is writing. Take the time to understand each little section of the code and how it affects your game.
If you have no idea how code works at all, it may be a good idea to learn some basics first. The best place to start with this would be a place such as Codecademy - a fantastic place to learn the basic structure of how code works. While the language might be different, the same general rules and logic apply mostly across the board with different coding languages, and you'll be able to translate what you learn there to Unity much easier than just starting from scratch.
Also, Unity 5 is a very 'hands on' experience - you can physically make a game area without needing to code a thing - but the true power of Unity is in scripting. Without being able to at least understand code, you are very limited in what is possible. Learning to code is pretty much essential to learning how to use a program like Unity.
So, within an hour or two, after overcoming any hurdles you face and following along intently to the video tutorial - you'll have created your very own beginner game with a rolling ball and some collectables, with a basic understanding of how to use Unity 5. Congratulations!
A little bit further
For the purposes of this article, I've pushed a little further and done two of the five total total tutorials that Unity has available on the main 'Learn' section of their site. Apart from the roll-a-ball tutorial, I've also gone ahead and ran through the Space Shooter project.
This project is a little more involved than the first tutorial, with a few more scripts to create, and some more interesting game-like devices such as sound, lighting and a re-spawn loop to keep you going. There is also a folder of assets for you to download and use with this project.
This project took me around 3 to 4 hours to complete properly, with a bit of time spent playing around with numbers and changing a few things to make it a bit more personal.
One thing in particular I noticed with this tutorial, more so than the first one (although it does occur in that one as well) is there are a few differences between the program you are using and the one the speaker in the videos is using. The tutorials were made to run people through using a 4.x version of Unity, while the program we are looking at is version 5. Naturally this means a few things have changed - notably here, some scripting elements are different, and some UI objects are in different spots (for example, GUI text is handled differently with Unity 5 - you need to create a blank game object and then add GUI text as a component, rather than just creating a GUI text game object) but these are generally minor and able to be solved with a quick google search.
For those that are interested, a file of my version of the Space Shooter game is available on the web. That's right - if you are on a computer, you can download my game and play it! Here's how to do so:
- Click on this link.
- Click on 'Download' or 'Open'.
- Double click on the zip folder called 'Space_Shooter.zip' that should be in your downloads folder to extract the files, or right click the file and choose 'Extract All'.
- Double click the space_shooter.exe file.
- Click the 'play!' button!
- Use the arrow keys to move around and the space bar to fire.
It's a start
With the very basics under our belt, we are now able to see the massive potential with a program such as Unity.
Next week, we'll take a look at some more advanced tutorials. Get excited - there may even be a new game for you to play!