Introduction
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 realize 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 okay, as long as you fix it or scope down
.
For your first game, distill what you'd 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 customizations and access to private forums) is $79 dollars a year. If you want to port your games to iOS it's another $149 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. Game Maker
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 $49.99, Professional for $99.99, and Master for $499.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 ton 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-specialized 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'd like to make, you can likely find a code library or program that will help you make it.
Get some graphics. Get some 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 tons 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. Observe this brave individual.
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 fuss 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, and you'll probably do it better.
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. That doesn't just mean Playing games.
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. There 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?