gavd.co.uk

Frail and faltering follower of Jesus

Getting into Game Development

By Gavin Davies

I was recently introduced to a young person who was looking to make her own games. I had a brief conversation with her sharing my experience of making indie games in the first decade of the 2000s, and I thought I would write down what I see as the key points.

The games industry

I see games industry as split into these main sectors:

  1. Triple A games - big studios like From Software, Id, EA or Bethesda making games like Doom, Tomb Raider, Destiny etc. Massive teams, extremely long hours, very stressful, and enormous knowledge required.
  2. Indie games - smaller studios with more “artisan” style games. Examples: Gone Home, Enter the Gungeon, Limbo. These games can often be simpler but more creative than the big studio offers.
  3. Mobile games - designed to be as addictive as crack. Small teams grind out a lot of games very quickly. Example: Candy Crush.
  4. Homebrew games - made purely for the love of it, often for old systems like the Atari 2600. Look up Halo 2600 for an example of this. Often a solo or small team project.
  5. Mods, ROM hacks and reskins - fan edits of games. There are countless modified games out there. Fallout 3 has a huge modding community.

There is a lot of crossover between these sectors, of course, but this is just to give you an idea of what’s out there.

Roles in the games industry

Any game needs the following roles. In small teams, one person may fulfil multiple roles. Producer/designer. The person who decides what the game will be, how it will play, what style it will have. Example: Peter Molyneux from Bullfrog. Asset creator. An asset it anything like a graphic or sound or 3D object. Animators, artists, musicians. Writer. The person who writes story, dialog, scenarios et cetera. Tester. All games needs someone to find the problems! Small teams often use friends and family to test games. Programmer. The person who actually weaves everything together, writes the code, and builds the tools that are used to make the game.

Larger organisations will also need the usual stuff business need - accounts, HR, sales, marketing et cetera.

How to get started

Step 1: get connected

First, pick a sector. Generally, for a first game, pick a homebrew style game, or reskin an existing game. Don’t try to make money on the first one, see it as a learning experience and a labour of love. If you enjoy the process, and you find you have a gift for it, then you can start thinking about monetisation.

Next, assemble the core of your team - producers and writers. Don’t worry about programmers and asset creators yet unless you know some.

Step 2: write a design document

With your core team, write a design document. This document details what the game will be like, who the target audience is, who the characters are - it’s the blueprint for your game. It can be scribbled on a cereal packet if you like, but Google Docs is a good tool for collaborative editing.

You don’t have to describe every tiny detail. It’s just to get a vision down that everyone agrees on. Now you have a concrete goal that you can aim at! With your design document, you can then go to people and involve them in your project.

Step 3: implementation

Now you need to either (a) find a programmer or (b) find a tool that you can use to build games without needing to know much programming.

Should I program it myself?

Programming is hugely rewarding, it can be great fun, but it can also be frustrating. It can make you feel like a genius one minute and a dummy the next. It has this advantage, though - it never lies to you. It either works or it doesn’t. Or, at the worst, it looks like it works then falls apart spectacularly down the line! Programming is hard for sensitive people but sensitive people often make excellent programmers. You need to be able to separate yourself from your work and not base your identity in it, or it will crush you. If you can do this, you’ll enjoy learning. If you find that you cannot, it’s best to find a programmer to help.

Finding programmers

There are quite a few avenues you can go down.

RPG Maker forums (or whatever tool you’re using). Get on there with your design document and put the word out for a programmer. Go to local meetups. Have a look on meetup.com for local programming meetups - you might be surprised what you find! Advertise in local University computer science departments

Programming it yourself

First of all, remember that the objective here is not to learn to program so much as to realise your goal - to make that design document become a reality. With that in mind, let’s get started! How on earth do I get started? There are THOUSANDS of programming languages. Never mind building a game, if you’re a total novice, how do you even get a pixel on screen?

Here’s a rough picture of how games are built:

Game
--------------------
Engine
--------------------
Programming language
--------------------
Operating system
--------------------
Machine code
--------------------
Physical hardware

Well, you COULD learn from the ground up - learn machine code, learn how processors work, learn the OS system calls, learn a programming language… That would definitely be beneficial, but at this stage, it’s best to start high up on the stack and then work down as and when you need to. This means you’ll need some tools!

Non-programming or minimal programming tools

There are many tools that do not require you to be a programmer. I would start with these rather than trying to learn C# in the first instance. Lots of these tools allow you to bolt together a simple game using your own assets

I’ve never used any of these tools myself (I’m a decade out of the games industry) but I’ve heard of the following

  • RPG Maker https://www.rpgmakerweb.com/ This allows you to make RPGs (Role Playing Games). It’s a commercial project but it’s quite cheap and has a great community. This is where I would start if I wanted to make an RPG.
  • AGS http://www.adventuregamestudio.co.uk/ Yahtzee Croshaw used this to make his Trilby games. Great for Monkey Island style adventure games. Programming tools

Once you outgrow RPG Maker (which may take years, if it all - from what I hear it’s a great tool), Unity is a fantastic tool. Unity offers an open source video game creation tool. Unity Personal is free! Lots of very successful games, like Granny on Android, have been made with Unity. There’s a vast community and a huge asset store.

3D modellers and programmers will get the most out of Unity.

I would not recommend getting into Unity unless you know what you want to build. “I want to make a game” is far too vague. “I want to make a 2D game where you have to escape a room by solving puzzles set in Spain in 1522” is much better.

Once you’ve gotten to grips with Unity, you can go down the stack and learn more about the guts of programming. This top-down approach is better for most people.

Getting help

There are lots of places you can ask questions. Take a deep breath, thicken your skin, and dive into Stack Overflow’s games dev forum https://gamedev.stackexchange.com/ . Get on IRC (Internet Relay Chat) and find some games development channels. You’ll be surprised who you can meet that way - lots of industry veterans are known to idle on IRC.

RPG Maker itself has a vast community and a huge asset store that you can use to help you build, test and release your games.

Releasing your game

Once you have finished your game, you can put it out on the app stores. If you’re targeting PC, you’ll want to get on Steam.