Beginner's Guide To Making Your First Video Game

Game development has exploded over the last few years, and now it seems like everyone is making a video game. You've got big studios full of hundreds of people. You've got small teams making incredible games. There are more people in independent game development than ever. This is an amazing thing, because everyone brings their unique experience and sensibilities to game design.

The more people who we can get making games and sharing their individual voices, the more we will see games evolve in new and exciting directions.

Believe it or not, this can involve you.

Do you have an idea for a game you wish you could play rolling around in your head? And no one is making it? I've got good news for you: there are more tools and support than ever to help people who have no experience with coding or development start to learn how to create the games of their dreams. If no one is making what you want to play, why not learn how to make it yourself?

Start small and be ready to fail

Before you get too excited, please realise that, as with any other skill, learning how to design and develop games takes time and practice. Your first game won't look like the polished games you're used to playing, much like your first drawing won't come out looking like Monet. This is absolutely fine. My first game has a huge bug in it that causes it to break for about half of its users. I was unable to figure out how to fix it.

You should shoot for what developers call a prototype: a smaller version of your idea with a few working mechanics, a prototype that lets you see how your game plays, allows you to improve the design and forms the foundation that you can later build upon to make a full game.

As you make your first game, you will also experience the same thing every other developer has: "feature creep" or issues with scope. You will likely want to put too much into your first game — too many mechanics, too much content. Your ambition will push your toward any number of traps. This is OK, as long as you fix it or "scope down".

For your first game, distil what you would like to see into a single mechanic and try to create that one thing. Go with a simple mechanic like "navigate a story by selecting your actions from a menu" or "keep an object from dropping". Think Pong, not Call of Duty. It likely won't be the next big thing, but it will be a prototype, and it will be something you can build on in the future, if you desire. Some specific things you may want to avoid putting in to your first game include multiplayer functions, online scoreboards or working in 3D.

Choose your tools

So you have your idea, distilled down into a manageable, simple game. Now what? This is where those tools I mentioned come into play. There are an enormous variety of them, and more are being created all the time. This guide is primarily for those who have absolutely no computer science skills, have never programmed anything in their life and think that it's beyond their ability to do so.

The following tools will help you go from no coding or development experience to having finished your first prototype. Most of them come prepackaged with sample games, and one of the best ways to learn a new game development tool is to muck around with them, take them apart and see how they work.

I've chosen to focus on these three tools because they've got the least-steep learning curve, they can produce a wide variety of games, and they can produce a prototype fairly quickly (so you can have the satisfaction of having something playable sooner). They're all either free or have free versions, meaning you won't have to drop a couple hundred dollars to figure out if this is something you want to pursue.

1. Twine

Twine is a fairly new and free program that allows you to make choose-your-own-adventure style games and spit them out into an html file that you can easily share with the world. It uses a visual editor with easy-to-grasp codes and syntax. You enter your story text and commands into a series of linked nodes.

If you have absolutely no experience with coding or any sort of programming, Twine might be an excellent place to start. Not only is it very easy to pick up and use, but it will also teach you the basic principles of programming: if-then statements, variable manipulation, and other concepts that form the core of understanding how to do things with code.

If you have experience with coding or web development, you can easily scale Twine games into more complex programs. The fact that Twine outputs html files means you can embed anything you would into any web page, including photos, music, and even other flash games.

Twine has already been used for a variety of purposes — games, poetry, and even interviews with game developers. The main weakness of it is that, if you're looking to do anything more complex than if-then statements — say, random or timed events — you'll have to write your own code. That kind of thing isn't natively supported by Twine. Also, if you're looking to make anything action-based (such as a platformer or shooter), you will want to choose a different engine.

Games made in Twine: Howling Dogs, Afterward

This tutorial by Anna Anthropy will have you up and running with Twine in as little as half an hour. I definitely suggest starting here. If you want to go further, Porpentine has a list of amazing resources including code snippets, documentation and other useful links here.

2. Stencyl

Another recently created tool, Stencyl has a very user-friendly graphical interface that will help you make a wide variety of games. Stencyl uses a Lego-like approach to coding, where you arrange code "blocks" and snap them into logic statements. If you're starting to get the hang of coding, you can switch to a mode that will let you view and edit the code in these "blocks", allowing you to tweak or even create code from scratch that will work with everything else in the program.

The tool also comes pre-packaged with several sample games, which you can modify to your heart's content. Viewing and editing the code in these blocks is also a way to begin to understand Actionscript3, which you can then apply to making flash games and apps without the aid of Stencyl.

Since Stencyl games are output to a .swf (flash) file, this makes it easy to share your games with others. If you don't have web hosting of your own, you can upload your game to Stencyl's site and share the link from there.

Another advantage of Stencyl is its in-program asset server, which allows you to download and share art assets, code blocks and even entire games right in Stencyl.

Stencyl does have a few drawbacks. Since the program is relatively new, it's still got a few bugs. A bug I've encountered has erased most of my work, so if you're going to use this tool I highly recommend saving multiple copies of what you're making. Save often. The base program comes free, but the pro version (which offers more customisations and access to private forums) is $US79 dollars a year. If you want to port your games to iOS it's another $US149 a year.

Games made in Stencyl: Handheld Video Game, The Brim

You can see a handy video tutorial on making Stencyl games here, though the program has a very good crash course built into it. Additional info is available on their fairly-comprehensive site, Stencylpedia.

3. Gamemaker

GameMaker is very similar to Stencyl, but has some key differences. GameMaker's free version only exports to executable files (.exes or .dmgs) with watermarks on them. It offers more formats and features if you purchase one of the paid versions (Standard for $US49.99, Professional for $US99.99 and Master for $US499.99). GameMaker uses a similar drag-and-drop interface approach to code, but uses its own language that only works in GameMaker. However, GameMaker has been used to produce high-profile indie games such as the original versions of Spelunky and Stealth Bastard.

GameMaker, like Stencyl, has a very useful tutorial that comes packaged with the program. I highly suggest running through it on your first time to get a feel for how things work and how to navigate the interface. Once you've done that, YoYo Games has a lot of tutorials that might help you make the specific kind of game you're hoping for. GMLscripts is a wonderful site full of free scripts you can use in your game, and TIGsource has a thread for tutorials and open-source GameMaker games.

Those are the three tools that I would suggest to total beginners who have little to no coding experience. They are far from the only ones available. There are more advanced and powerful development environments such as Unity, code frameworks such as Flixel and Flashpunk, and highly specialised tools for making a specific kind of game. Two of those are Adventure Game Studio and Inform7. This is just the tip of the iceberg — if you can think of a specific sort of game you would like to make, you can likely find a code library or program that will help you make it.

Get some graphics and sounds

If you're worried about coming up with art assets, music, sound and other things that make your game more polished, don't worry. Freesound.org has lots of open-source sounds, OpenGameArt.org can cover your art, and you can search music sites like SoundCloud for open-source music.

If you use anything that was created by someone else, be sure you're using something under Creative Commons and do credit them in your game. Supporting other artists is what keeps things like this happening.

Find an honest person to play your game

So you've prototyped your first game — now what? Share it! You can learn so much about the design of your game by sitting down someone who hasn't played it — and ideally isn't a relative or significant other — and having them play your game. See what they instinctively do, what they understand and what they don't. Get as many people to play your game as you can and try to find out what worked and what didn't. Then, iterate on your design as much as possible.

So much of making a game is iteration. Don't be afraid to try things and be wrong. No game is ever perfect, and nothing ever feels completely finished. But don't let this stop you from ever declaring your game is done and moving on to the next one.

You need to iterate on yourself as a game designer as much as you need to iterate your individual games. Don't fussing with a single prototype forever. Don't try to force a design that just isn't working. Don't be afraid to move on.

Do all of this again

Finish your game, then make another.

The most important thing you can do after making your first game, playtesting it, refining it and releasing it is to make another one. Getting involved with other game developers is a great way to do this. Our numbers are growing every day. You can get help on specific issues or just gain inspiration from working with your peers. Game Jams are an especially-wonderful aspect of this. Jams are frenzied game development events where you have to make a prototype in a limited amount of time, sometimes with the constraints of a common theme or specific toolset. These Jams are a great way to hone your skills, forge new ones and work with interesting people who you might not have the chance to otherwise.

Once you've made your first game, the next goal should be to make a good game.

Do some research

Studying game design is something I'd suggest for anyone who loves games, not just those who want to make them. It's a complex skill with many aspects, and thankfully there is a lot of material you can check out on the matter. The GDC Vault has a lot of free talks on myriad subjects. T,here are tutorials on how to make physical prototypes of games using paper, and even lists of things you should NOT do as a game designer.

Plenty of individual developers offer talks on aspects of game design on their sites. Check out the contributions from Anna Anthropy, Chris Hecker and Steve Swink, to name a few.

If you prefer to study things in dead-tree format, check out books like How To Do Things With Videogames and Extra Lives.

***

With these tools and resources — plus thousands more available with a bit of Googling — anyone can start making and sharing games. Hopefully this guide will get you to turn an idea into a prototype.

Game development doesn't have to be an insurmountable task only accomplished by experienced programmers or teams of hundreds.

Everyone brings something uniquely "them" to game development — what kinds of things will you make?


Zoe Quinn is an independent game developer, co-founder of Dames Making Games, fire performer and future skeleton. She has 99 problems and being a decaying organism aware of it's own mortality in a society run by money that she can't escape from is one.


Comments

    i make video games as a hobby and sometime as a charity thing. IT can be so frustrating when something that seems so simple is just not working out. It is also so satisfying once your got everything working and someone is enjoying your work.

    Though when you make games it can be hard to play them because a part of your brain will always be saying "I know how they programed this" and "I would have done things a bit different"

      Though when you make games it can be hard to play them because a part of your brain will always be saying "I know how they programed this" and "I would have done things a bit different"haha, so true! As a 3D artist playing games, I always see things in wireframes and polygons and notice dodgy UV mapping on outsourced objects. Instead of playing the games properly, I sometimes stop somewhere to dissect a model to see how the artist went about doing it.

        As a person who has worked in video production & live events, I have trouble watching TV or going to concerts or events without dissecting them. Consequently, I play videogames instead!

    Good article - any chance of a similar one explaining how to create maps or character models?

    What should I use if I'm familiar with programming in different languages, but want to make a simple game learning the skills to make a huge AAA type one? I mean, I don't want to use RPG Maker if it doesn't help me build a 3D Hack and Slash game later, because then later I'll be in the same position I am now, wondering where to start

      Unity has my vote. You can script everything in C#, Javascript or Boo. There's heaps of documentation and a huge community. Most questions you might have will have already been answered, and in many cases you can copy and paste code and with a bit of tweaking get any result you want.

      Plus it scales very well. You can make a small 2d game with the help of something like 2dtoolkit and then later also make a 3d hack and slash with pretty decent graphics. Having said that, it's not ideal for 2d as it's really just running everything in 3d with an orthographic camera, but it works well enough.

      Also, it's free for the basic version, which is likely all you've ever need for a long time. Free as in "you're allowed to sell the games you make and earn money with it without paying a dime" free.

      Also, there's a huge free video tutorial series on youtube on how to code a 3d hack and slash in unity, might be a good starting point if you have a spare hundreds of hours.

      Last edited 29/01/13 2:39 pm

        But doesn't unity make slow games? I mean, I've played a couple unity games in my browser and on my phone, and they've never seemed all there, they've always felt unprofessional simply because you can tell something is stopping it from being smooth

          I never got the impression that Unity was slow in any way. My guess is that it's not quite as fast as other engines as it has to be flexible enough to cater for a wide variety of games and all the programming is done through scripting, but I think the difference should be pretty negligible. I'd probably put any slowdown you experienced down to the developers rather than the engine.

          In my very limited experience, even when it's used to make 2d games it's still heaps faster than flash or html5, though if you have the programming knowledge and you need to squeeze as much out of a processor as possible, it's probably much better to do a 2d game using your own engine. Even though it's very scalable, I don't imagine it would easy making something like an MMO with it, it's definitely more suited for indie developers to small studios (Though I think EA is making a lot of upcoming multiplatform games with it).

          Some games that are made with Unity that I haven't noticed any slowdown in:

          Bad Piggies, Temple Run 2, Dead Trigger 1/2, Pid, Rochard and Ski Safari.

          Also, Wasteland 2 (the one that was kickstarted) is being made in Unity. Playdead, the developers of Limbo, said that their next game would be done in Unity too. I wouldn't be surprised if some of the games you play on your phone are actually made with Unity and you just didn't know.

          TL:DR: I'm not aware of any significant slowdown - Unity is pretty awesome.

            Thanks for the info :) I'll definitely use Unity for my first game, and I'll look at it for my next

    Great article, thanks!

    I think it's worth having a play with Construct 2 as well - http://www.scirra.com/construct2

    It's drag and drop and very simple and fun to play with, plus you just upload the html file and you can play the game in your browser. So far I've found it's not very fast (being based on wysiwyg html5) but more than enough for simple games and very user friendly. It also has built in behaviours for some basic game controls, like platfomer and top-down zelda movement etc.

    I'm currently making my first game in Unity, and it's the most enjoyable experience I've ever had. Programming is heaps more fun than I ever realised ( I'm guessing that scripting in C# is close to the feeling of "real" programming"?). Unity is a brilliant piece of software for people not able to create their own engines - I'd definitely recommend people get a handle on basic game making ideas with programs like Construct 2 first, but the sooner you can get your head around Unity the better, it's just wonderful. Playing my prototypes on my ipad and android phone is bliss.

    That Derek Yu link on finishing games is golden concentrated truth as well - http://makegames.tumblr.com/post/1136623767/finishing-a-game

    As you make your first game, you will also experience the same thing every other developer has: “feature creep” or issues with scope. You will likely want to put too much into your first game — too many mechanics, too much content.

    I'm currently in the planning stage of my first game and I'm having the exact opposite problem to this. I have no idea what mechanics to put into my game. All I have is that it's a turn based RPG similar to Final Fantasy. I can't think of anything else. I'm also having trouble with level design. The first 4 or 5 levels are reasonably varied in terms of the layout but after that I've begun running out of ideas.

      Do a Google image search for game concept art and have look, use what you see as inspiration to create more levels.

      Always when you get stuck look around and see what other people have done (eg, playing games, watching movies etc.) and use the inspiration you get to further your work.

      Hope this helps. :)

    I'm currently learning C# and XNA. Download Visual Studio Express 2010 and the XNA 4 framework free from microsoft and there are plenty of free guides for 2d and 3d games.

    It's easier than say C++ and SDL/OpenGl (But C++ is really the way to go but obviously more difficult)

    XNA is great

      C++'s advantages have shrunk as computing power and memory has increased, and as virtual machines like .NET have improved. Aside from a lack of quality graphics engine APIs for C#, performance-wise there's little difference between it and C++ if you're writing a Windows game, these days. And if you use a particular subset of open libraries, your game might even run through Mono on Linux too.

    I'm one of those people that never gets past the prototype stage. I have hundreds of projects that exemplify one or two mechanics as an experiment but ultimately some new inspiration takes me over and I chase that until the next idea comes along. It's also not really helpful that I'm programming all day at work and trying to think about more programming at home. Still, I think I've finally found a simple game that I'm getting somewhere with and I have friends looking to get into game development at some point so I may leverage them too.

    Something people may find useful is a similar thing to what writers do. Keep a notebook (or Evernote page for you trendy kids) on hand to write down all the ideas you have about game mechanics, story ideas, concept designs and other thoughts. You may not include them in this game, but it will certainly give you plenty to work with for the next one or inspire new directions if the current one does not work.

    Stencil sounds cool for a non programmer to start out with. It sounds like a more powerful version of Alice.

Join the discussion!

Trending Stories Right Now