How do you make a video game?
Sometimes the answer seems simple: you don't. The top titles on the market - think Halo 6 and Call of Medal: Whatever - have budgets equivalent to Hollywood blockbusters.
To the outsider, even small games seem to magically emerge from a cave filled with people with titles like Development Wizard and Sub-Orbital Code Crumbler.
So while the rise of mobile, web-based and marketplace games has led to a boom in indie game development, let no one tell you it isn't still a slog to get something finished.
But that doesn't mean it isn't worth it - great works usually take great pains to come about, after all. And it doesn't mean it isn't possible, either. Even if you're just an outsider with an idea, who isn't able to demolish their life to make a platform game about spiders riding boats (or whatever), you too can make a game.
Two weeks ago I decided to make a video game, with no experience. I didn't know what I wanted to make, or how.
I pretty much succeeded. (Ahem, it's Chrome only, hold shift to go up stairs).
Here's how I did it.
Above: Grave Maker, a game made with Game Maker
1. SOFTWARE: Experiment With Simple Tools
In the classic manual of how to make video games - or, for that matter, how to write a novel, make a film or knit a jumper - the first few chapters usually aren't about making things at all. Instead they'll focus on exploring your ideas, playing other games and insisting that you need to know what you're making before you start.
This is good advice. But we only have two weeks. So ignore it.
For me, the most important first step I took was firing up a modern, entry-level piece of Game Making software, and seeing what it did. Only when I'd followed a few tutorials, made a little guy move about and realised "hey, I can do this" was I able to have confidence to dream a little bigger.
Fortunately there is a ton of great software out there to help you get started:
Game Maker: The first software package I tried was Game Maker Studio by YoYo games, which is available for a free trial on Windows, with paid versions available (with more features) for both Windows and Mac.
Game Maker is a visual and easy to understand tool which is also very powerful, potentially allowing you to make games for everything from Windows and Mac to iOS, HTML 5 and the Chrome Web Store.
It also comes with a set of really excellent tutorials, which are handily embedded within the software itself. These tutorials take about an hour each, and take you through literally every step of making your (or rather their) first game - whether it's a block-smasher or a vertical-scrolling shooter.
It's not worth explaining the process itself in depth here, but (for me) the key concepts to understand were the difference between objects, instances and events - roughly your actors in the wings, your actors on stage and the things you tell them to do - and how to define the 'room' (or layout) in which your levels actually take place. It's visual enough to get started - drag and drop sprites and backgrounds - but does take a bit of time to wrap your head around it all.
The only problem with Game Maker is that visually it doesn't give a very good first impression. It's on its eighth full version, but it still looks like an ancient Windows program from the era of old-school Word, full of difficult-to-see buttons and other quirks. It's also relatively expensive, in that each export option (iOS, HTML 5 etc) costs extra, unless you plump for the full professional version right away which is well over $300.
Construct 2: A similar tool to Game Maker - and also a simpler one - is Construct 2, by London-based outfit Scirra.
The game engine is almost entirely based on HTML 5, which is a modern alternative to Adobe Flash and other web animation tools. Making games with it is so simple that it's hard not to be suspicious. It's possible, for instance, to make a game in five clicks: create a square; give it the behaviour "8-direction movement"; press run. There you have it - a square that runs about. Congratulations!
The main thing going for Construct2 - other than its friendly presentation and free trial version - is its community. Alongside a similar set of tutorials and examples to Game Maker, Construct has a forum filled to the brim with excellently helpful and engaged gamesmiths, ready to help you out and tolerate the whims of newbies.
Because of its simplicity, built-in "platform" movement system and logical "events-objects" structure, Construct was the tool I went with for my first game. I may switch eventually, but it's a good first step.
There are, of course, a huge number of other tools to make games. Most of them are not for beginners, but here are a few selections (there's a much bigger list here).
The important thing I found is to be flexible, see what works and experiment.
Multimedia Fusion 2 ($120) - simple and visual 2D games developer
Flixel (Free) - an open source game making framework used by the developers of Canabalt and others
Stencyl (Free) - another easy to use iOS and Flash game maker with drag-and-drop gameplay.
Unity (Free) - built mainly for 3D games, this is a big and powerful engine that's still focused on indie developers - just probably not your first game
2. DRAW: Create Your Characters
In my experience over this fortnight, making my game really started coming together when I had my own character to animate, jump, climb and eventually plummet to his death.
For while many of the above game makers will give you the option of using pre-made sprites and character art - and there is also no shortage of art to use online - it's when you have something all of your own that you'll start to really enjoy yourself.
I decided to make a retro-themed platform game, which meant my character was very simple and easy to draw. Theoretically. While I have some experience as an artist, I still found animating characters for the first simple surprisingly time consuming until I got into a groove.
Above: my character 'Ghost' from 'Tower of Ghost'
The main tools I used were:
Sprite Something (iOS, £2.99) - this iPad sprite drawing app is a fantastic tool with a few limitations. It's incredibly easy to draw small characters and preview their animations, and colour them with brushes. It connects with Dropbox to share your files with your desktop, and can also make tilemaps for simple level design. Unfortunately it's also slightly buggy, and prone to crashing.
PixelMator (Mac) - a drawing and painting app for Mac, PixelMator is also effective when making smaller sprites and backgrounds. Plus it's a lot cheaper than even the basic version of Photoshop - a very useful tool, with a decent free trial version.
PhotoShop (Windows/Mac) - you can't get away from Photoshop, it's the king for a reason. If you have a copy, it's invaluable for producing images and sprites.
Pen and Paper (Free) - again, you can't get away from this. Drawing out your characters on paper really helps focus your ideas, and saves time in the long run.
3. PLAY: Have Fun With Basic Ideas
Let's face it - you're not going to make Mario or Super Meat Boy on your first go. But the more you start to experiment with tools like Game Maker and Construct, the more you'll learn. At its best, making games is like solving a wonderful puzzle - in fact, it's pretty much a game in itself.
For instance, I needed to make a ladder for my little guy. Simple right? Not really. That behaviour wasn't built into Construct, so I had to invent it. A search on their forums taught me to disable certain types of movement when my guy collided with a ladder tile. A bit of tinkering meant he could go up and down the ladder - but now he did it automatically every time he touched one, meaning he couldn't run past without climbing. So back to the drawing board, again and again, until it came together.
I got it right in the end, and it took a while, but since there was no code involved it was never frustrating. I wasn't held up by small mistakes - I was able to focus on the logic, the art and the fun.
Another example is lighting effects. With tools like Construct's layers structure, it's simple to make cool-looking lighting, 3D-lite "parallax" scrolling and particle effects, which really make a game sparkle. Yes, it's just window dressing in the end (and seasoned players won't be fooled). But it's a huge boost to see something you've made start to look semi professional with just a little extra work.
Above: my game, Tower of Ghost
3. PUBLISH: Show The World Your Work
This is my game. It only runs properly in Chrome, has no original ideas and is a basic platformer. But it's mine. I made it. And I never thought I could - let alone in two weeks.
Publishing games is easy with all of the tools above - and in my case, it was as simple as pressing "export" and uploading it to my web server. You can also just export it as a .exe file and run it in Windows. It's great to see it live, online, and working, as simple as it is - and it's another big boost to making more games.
But perhaps the most fun element of this all is watching somebody play your game - unprompted - and come at it with fresh eyes. Seeing someone try and jump that tricky platform and fail, but want to try again, is really inspiring. No, it's not a masterpiece, but it's a powerful experience. It's also really fun.
Having tried it for two weeks, I can honestly say my favourite game of 2013 (so far) is making my own.