Why Create Games?
Several reasons:
- enjoying the challenge for creating your own game
- wanting to create games for your kids to learn certain educational concepts
- wanting to modify an existing game that you like by creating “mods” (eg: for Quake, Half-Life, etc)
- wanting to know how games work (like lifting the bonnet of your car and working on your engine)
- wanting to make millions selling a game (the odds are against this except for a select few)
- it’s a multi-billion dollar business worldwide (yes “everyone” is playing games!)
Types of Games
There are different types of games that you might find fun to play (and program). Some games are a mix of types as well.
- First Person Shooters (FPS) such as Doom 3, Quake, Half-Life
- Role-playing games (RPGs) such as Everquest
- Real Time Strategy (RTS) games such as Warcraft, Command and Conquer
- Simulations – flight simulators, the Sims, Railroad Tycoon
- Sports games – car (Need for Speed), soccer, AFL football
- Adventure games – Monkey Island, Police Quest, Max Payne
- Board / card games – Solitaire, chess, draughts
- Arcade games – 2D style such as Space Invaders, Pacman, Wonder Boy, fighting games (Tekkien)
- Puzzle type games – Tetris
For a comprehensive list of types of games, click here.
What Should I Create?
Create some game that you find fun to play and that you can play it for hours. Whatever game you choose, you need to be able to think of ideas that you find interesting. One way you could do this is by brainstorming – ie. writing whatever comes into your head for 10 – 15 minutes and then going through it carefully. If you are excited by an idea, chances are others may be too and that you will stick to writing your game until the end. Try and think of good storylines that you like as most games are based on some sort of storyline or background information.
What’s in a Game?
Games are a complicated piece of software. A game contains the following:
- game loop – the main part that keeps the game running until the player stops playing
- graphics engine – controls what you see on the screen (in 2D or 3D)
- sound / music engine – controls what music plays in the background and the sound effects
- physics engine – controls how objects move / interact in the game
- input capture – the game has to get the player’s keystrokes or mouse movements in order to respond
- artificial intelligence – controls how the “monsters” or other objects react to the player
- networking – how the player interacts with others via the Internet or LAN
Hence it doesn’t matter which language or platform that you are creating the game in as the ideas are the same for any game.
What is Gameplay?
Gameplay refers to how the player interacts with the game and what keeps up the player’s interest. Some games may not have great graphics, but could keep a player entertained for hours due to how interesting and addictive the gameplay is. If you have a look at some of the best selling games, they tend to immerse the player in the game environment, be easy to learn how to play the game and have an addictive quality to it where the player tries to get more levels of the game without being too frustrated.
How do I go about it all?
Usually there is a very steep learning curve if you wish to know how to create a game. This involves lots of reading and getting some books. Luckily there are lots of tutorials online including video tutorials that are very helpful.
There is a lot to learn as it involves understanding computer programming, how to create artwork in 2D and 3D, how to create music and sounds (voice and sound effects), how to create videos (if you game uses them) and what interface the player will use (graphical, keyboard, mouse, gamepads, etc).
Alternatively there are courses coming out now that you can do to learn about programming games. Some tafes and universities offer diplomas and degrees in computer science with a “gaming” major. Some colleges also have courses specifically tailored to the gaming industry. Some courses are art based to create artwork / music for games, while others are more computer programming based for creating gaming engines.
Getting ideas can be obtained from browsing different websites, games magazines, playing many different types of computer games, joining forums and discussion groups, going to a gaming expo, reading books for storylines you are interested and watching different movie genres.
Also a few developers advise to start out small and try creating at least a 2D game before creating a 3D game – that way you can get your head around how a game works more quickly. Once you learn the basics, then you can tackle a harder 3D game.
How Much Time Does it Take?
Assuming you don’t know anything about programming, it could easily take a year or so to program your first 2D type game, depending on how much time you have to learn.
For building a 3D Action game – well small to large sized teams manage it in several years (eg: Fortnite took around 5 years to perfect) and a few million dollars later. But with the right tools and book(s), you could do a very simple 3D FPS type game in a year or two. The learning curve is very steep, but it can be done.
Due to time constraints many people have due to work or study, it may be hard to find time to learn how to create a game. The trick is to do a little bit at a time until you learn the skills for one stage before going to the next stage. Also it doesn’t really matter if you start programming a 2D game first or a 3D game first as both types of games are based on the same principles.
Some people do find it easier to try out a 2D game first before starting a 3D game, but this is entirely up to you. The learning curve is steeper for a 3D game, but you can get there in the end. As with anything, it just requires time to learn.
Which Platform should I create for?
Depends on which platform you like and the type of computer you are familiar with and your goals. Most of the money seems to be in console games (Xbox, Sony Playstations, Nintendo) though PC games do have their place in providing more scope and complexity in gameplay for the player. Mobile games are popular as well (eg: iPhone, iPad, Android phones).
Lots of PCs run Windows, so a Windows game could be a good option and this could be ported to the Xbox. Linux is slowly gaining popularity as a desktop operating system as well. Some companies also develop with most PC platforms in mind (Windows, Linux, Mac) and then port their game to consoles. Game consoles are getting easier to program with more tools out there for them. Also many tools used to build games can create the game for multiple platforms now, so you only have to build it once.
If your game is fast paced, it is probably better suited to consoles. If it is going to be complicated, have an indepth story line, and requires users to invest lots of time, then a desktop game (PC/Mac) could be the go. If you want something that is web based, then look at Java or .Net
What language or game tools should I use?
One of the most asked questions. The first thing it depends on which platform you are going to program for and the type of game you wish to create.
Most purists would pick C/C++ as it’s flexible and you can gain access easily to your computer’s hardware if you wish. Also a lot of AAA games use C / C++.
You could also choose to use C# if you wish to make your game run on both Windows and the Xbox. This may give an added bonus to your game without having to convert from one to the other. If you already know some C/C++, learning C# will be easier. Apple uses Objective C or Swift to build apps.
You can also use other games engines that are commercially available or free to use via opensource. Unity 3D and the Unreal Engine are gaining in popularity as tools used to build games.
Some people advise to go simple first and learn an easier language such as Python, and then learn C++ later once you get the hang of a programming language. You can get something called Pygame which is a gaming library for Python.