Monthly Archives: January 2015

How To Start Making Games

Sometimes I get emails from people who want to make games but do not know where to start. I usually give an ad hoc response, but afterwards I find I left important things out, or no longer consider what I wrote good advice. This blog post is a more complete response to these emails.

If you’re just looking for some links to game creation tutorials, I’ve got some of those for you, but I hope there’s more I can tell you!

The Basics

I’ve read a lot of these types of posts myself over the years, and so I’ll start by restating bits from those that stuck with me. After that I’ll add some much needed counterpoint based on my own experience.

Start Right Now

Start making games right now, like right after you read this. Go! School, college and university are nice, but learning starts with you. Don’t wait for someone else to teach you things, nothing is stopping you from making something right this instant.

Start now especially if you’re still young and in school. You’ve got nothing but time on your hands!

Keep it Simple

Of course, you can’t just start making the next World of Warcraft of or something. Start small and keep it simple. An excellent choice would even be to start with something that’s not digital, like a card game. There’s loads you can learn from making something out of pen and paper.

But if you’re like me you’ll want to make software, right? Even so, start simple. Don’t focus on graphics, focus on making a little cube move when you press keys, that kind of thing. Then add a little bit to that, then add a little bit more, then move on to something else. Small steps!

Volo is the first real game I ever tried to make, and I had to learn the relevant skills along the way. If I knew then what I know now, I would have made a bunch of smaller games before tackling something so big. In fact, doing a couple of game jams and little prototypes while working on Volo has taught me many thing that I would never have learned just working on a single big project.

Learn how to Program

Opinions are divided on this, but my own stance is clear: While it’s possible to design computer games without knowing how to build them, it’s not very efficient.

You have to get a team to build your game for you (good luck with that), and then you have to wait for them to build it before you can see if your ideas even work! Far better to be able to develop your ideas yourself, even if only in prototype form. So yes, programming is essential; learn it and love it.

Don’t take that to mean programming is an annoying means to an end, though! Programming can be a very enjoyable and rewarding activity in its own right. Even though it’s probably not for everyone, I believe lots of people are scared of it unjustly. All it takes to get hooked is to write that first bit of working code that makes something move on the screen when you press a key, and that’s quite easy to do today.

Stand on the Shoulders of Giants (Here be Tutorials)

I’d recommend getting some experience with existing game development tools instead of starting a whole game engine from scratch. Making your own technology and tools has lots of benefits; you’re in complete control of everything. But you’re starting out, and making your first game is daunting enough without starting from scratch.

Use existing tools, make things with them, learn how they work, what you like about them, and what you don’t like about them. With the knowledge you gain from this you can always make something to suit your needs later on.

Below are some starting points for digital game creation using tools freely available today:

Tom Francis (who made Gunpoint) is doing a series of tutorial videos on learning to make games with Game Maker. Game Maker is used by a lot of indie developers these days. Ever heard of Vlambeer?

We use Unity to develop Volo Airsport, and you could use it too! It’s more complex than Game Maker because it is 3D, but there’s a lot of learning material available to help you take your first steps. See if you can follow their “Roll-a-Ball” tutorials, and take it from there.

Twine is a tool with which you can make text adventures that you can play in your browser. It’s dead-easy to get started with, so if telling interactive stories appeals to you, try it! Brooklyn Trash King is a neat example.

I worked with Processing for a while in college. It’s a toolkit designed to make digital audiovisual art with code, but you can make games with it too. The basics are quite simple, and you can learn a bunch from it. I wouldn’t recommend trying to make full games with it, but for learning it’s quite good.

It doesn’t matter which tool you start with. You will find that lots of skills you learn using one particular tool will be useful when you start using others.

How To Keep Yourself Going

Here’s some tips that don’t have anything to do with specific technology or skills, but rather on how to grow as a designer and developer.

Keep things simple. You’ll have to excuse me for sounding like a broken record, but I can’t remember the amount of times when I tried to make something too complex, leading to lots of unnecessary frustration.

Does my car really need to have James Bond gadgets and be family friendly? Should I really be making this into a massively multiplayer online game? Do I really need the latest real-time global illumination bajizmo?

The answer usually is: no, I can make it simpler without sacrificing anything with respect to the core concept.

Learn from lots of different sources. If one article/book on some topic doesn’t click with you, try another one. Then go back to the first thing you read and see if you get it then.

Learn to searchGoogle is your best friend. I have about 50 questions each day that it can help me with, questions that would have taken me ages to figure out all on my own. Even if you can’t find what you’re looking for and plan to ask someone for help, that person will appreciate it if you did everything in your power to try and find the answer yourself first. Don’t ask someone a question you could have literally put in the search bar.

Try different tools. The tools you use shape the way you think about design, problems, and the world in general; and using a new tool will help you understand things from different perspectives. As the age-old saying goes: “If the only tool you have is a hammer, every problem is nail.

Read lots of different things, do lots of different things. Not just about games. The universe is an interesting place, you never know where inspiration comes from!

Keep making things. Regular practice is how you learn best! Work on something every day, it doesn’t matter how much or how little you get done. Even just five minutes of tinkering with something helps you memorize important things, and keeps the problems you’re working on active in your sub-conscience. This is another reason making simple things is a good idea: you don’t get stuck, and you can keep a good pace.

Have a notebook with you, and make a habit of making notes. Thought of something funny? Write it down. Half-baked idea for a game? Write it down. Can’t quite remember that tune you liked as a child? Write down how that makes you feel. This process helps lock things in your memory, and you never know when odd little thoughts can turn out to be useful later.

I use Evernote as a kind of digital notebook. Right now it lets me search through about 3 years of personal notes on everything and the kitchen sink; it’s an external part of my brain now.

Take breaks. If you’re absolutely stumped on something, do something else for a while. Go for a walk, draw something, make some coffee, talk to a friend, whatever. You’ll often find that when you come back later the solution isn’t far away.

Talk to yourself. Doing this out loud is the best, but if you find yourself in a situation where this isn’t an option try logging your train of thoughts in a text editor. Talking to yourself helps you make your thoughts concrete in a way that just thinking them does not, and verbalizing your thoughts can help you find problems with your thinking that would otherwise go unnoticed. Stuck on a problem? Write it down in detail, chances are you’ll find you missed a step. Bonus: put all this in your notebook too, it might be useful later.

Sure, some people might think you’re a bit nuts, but nuts is good. Speaking of which…

Be an Idiot

Idiots stumble upon the most amazing things out of sheer luck; things that sane people (the real idiots, really) would never ever find! A normal, sane person would never dream of building and aircraft, or donning a wingsuit and diving off cliffs.

When you’ve made something that people find unique, it means you’ve made something those people would not have thought of, or would never have considered feasible. This means you have to think different thoughts and understand the world in a different way than most people. It means you have to be mad as a hatter.

You see now that it is in your best interest to be the biggest, maddest idiot you can possibly be, as long as you’re smart about it.

Idiots also have a habit of hurting themselves. This is unfortunate, but true idiots know that this is only part of the process.

Invention is banging your head against the wall until you have a light bulb.

Ignore My Advice

Don’t take anyone’s word for anything, including mine! All advice is wrong, but some is useful.

I’m just some guy making some particular game, with some particular technology. I enjoy, and have enjoyed a whole bunch of privileges that gave me the opportunity to learn how to make games, privileges that you might not have. Be it age, location, race, education, parents, finance; your situation might be very different from mine, and some or all of my advice may very well not be useful to you.

I don’t know what the best way to start developing games is; in fact, I am sure there is no single best way to start with anything. About the closest thing to a universal truth I think there is, is that you need to try things, try more things, and then try yet more things.

It is interesting to note that I didn’t take most of my own advice. I stubbornly slaved away on a single project that was clearly too much for me to take on. It looks like I lucked out and came up with something good, but in hindsight I think I could have saved myself a lot of headache and (minor) depression if I did things differently.

On the other hand, perhaps Volo Airsport is what it is precisely because I tried to make something stupidly ambitious and just kept throwing myself at the problem.

The End

And that’s all I have for you right now! I hope some it it was of interest to you. If you have questions or want to discuss this article, don’t hesitate to leave a note on the forums or send me an email.

Beta Feature: Course Editor

(As part of our development process we release test versions of the game. These are bleeding-edge builds that we can update and distribute much faster. You can opt in to these versions to see what we’re working on, help us find bugs, and give us feedback on design choices before big official releases. Interested? Check the manual for details.)

Today we’re pushing the first beta feature to the test branch: The Course Editor.

Course Editor Beta UI

This first version of the course editor does exactly what it says on the tin: It lets you design and share time trial courses. You can load it up at any time during play, create as many courses as you like, and share them with your friends.

Frank has been working on this baby for a while now. It’s rough around the edges (like the rest of the game, really), but at this point we’re really curious what you think of it.

If you’d try it out, check out the detailed post in the Beta Forum Section. And while you’re there, be sure to give us some feedback on it!