Hey kid, wanna make video-games? ‘Course you do. What could be cooler, maybe riding a pterodactyl through a swarm of exploding air-planes or something but still, you could make a game about that or something.
Anyway, this is the first part of a series of guides regarding to getting into making games, never made a game before? Kinda want to? Awesome.
I’d just like to point out that like any other medium, making games can be done in all kinds of ways and this is far from gospel, just suggestions, if you know/think you know a better way, awesome.
Getting ready to make video-games
So it’s not really “vital” but I think it’s important. Before you jump into making the next World of Warcraft or the next Call of Duty we should take a look at what we want to make, how we want to make and why we want to make.
When it comes to what we want to make, for now, keep it really really simple. Use each game/project as a stepping stone, make Pacman, awesome, now we have FOUR DIRECTIONAL MOVEMENT SYSTEMS and other cool things like playing audio, restarting the game on death, dealing with variables (e.g points) and basic AI enemies. That’s a big step for any beginner developer/game creator.
Secondly, how do we want to create our games? Are we visual creators who would rather use pre-existing logic blocks from or more traditional software developers, using programming language, integrated development environments or complex game engines. Both have advantages, and sometimes one option isn’t for everyone.
Finally, why are we making games? This one is more important to you than anything, but it’s something you should think about. Is it for the fun of figuring out the mechanics/systems of a game, creating a world that feels alive, or expressing an idea. Goals help things finish. So it may be worth keeping in mind.
Picking an engine/environment
Ok, so now we know what we wanna try making, how we wanna make it and why we want to go through all this work. (Or some of that anyway.) It’s time to pick what we’re going to do the work in. Wikipedia has a great list of engines, however for a lot of cases I would recommend avoiding genre specific engines and using general engines.
Some common engines great for starting out:
- Unity3D - Naturally a 3d game engine, however it is simple enough to work 2d game play art into. Uses multiple languages and has a great visual editor/plenty of plugins to suit a variety of development methods. They also have a great community, support and documentation
- GameMaker - Commonly used 2d game engine (with some users working 3d into it). I haven’t used it a great deal personally however it uses both drag and drop “visual scripting” and its own scripting language GML
- Construct2 - HTML5 2d game engine. Well supported and commonly updated with various platform exports with the standard licence. Great for multiplatform 2d as a result.
There are plenty more engines out there, and IDEs/Libraries to play with, if you’re already savvy with programming/software development I’m sure you probably know some/will have no trouble finding some. Play with a few, see what works for you or your individual project.
Start to Learn your engines!
Ok, now buckle down, learn your engine. Watch tutorials and most of all Do things. Start small with your engine, some engines will work like this in a matter of minutes, for the people running with code, it wont take too long either, unity has great documentation on the engines physics systems and character controller.
- How do I make my character move?
- Now how do I make them jump?
- Cool, can I make them shoot now?
- What else can I do now?
You now have a basic system in place for a simple game, well done. Build on it! Take it in the direction you want to take it and learn more and more.
Remake a classic
Classic games are fantastic to tear apart and learn from. For example, as I said earlier, make Pacman. You wont be making your Next-Gen FPS but you’ll have made some form of game and as a result, hopefully understand the whole general process of making a game. Art/Audio may be an issue for people starting out, and they’ll be adressed in future parts, however for now feel free to do some research, or visit sites such as http://www.freesound.org/ and http://opengameart.org/ an example sheet of sprites you may want to use for learning purposes can be found here
Let’s look at Pacman and what it has as a game.
- Four directional movement
- Scores on object collision
- Destroying objects on collision
- Playing audio
- Enemies patrol/Chase player
- Second mode for player allows Enemies to be “eaten”
- Random spawning of bonus items
- Lives system
- Win/Lose states
Nice list of things to learn how to do huh? How many of these things do you think can apply to any other project you do ;) most of them, or at least they’ll move on to more complex systems (such as movement). As you develop your pacman remake be sure to distribute it to honest people for play testing its not only vital to developing a good game/getting the feel and mechanics right, its also a great exercise in understanding how the player interprets your creation.
If you are stuck at this point don’t stress, the second part is going to be a tutorial on making Pacman/how to solve problems during the development process.
Now make something else, and again.
You just made a game. Be it a classic game designed by some one else. But you put that together, now you know how to use the tools you can use them to create a piece of your own! Research game design (and that doesn’t mean play games: make sure you read, listen to some lectures and think about things) and come up with some simple designs, make some simple app/flash portal games. Build on it more and more and there you go. You can make/design games. Keep going.
That’s probably all you need for this part 1, part 2 will cover in depth how to actually make a Pacman clone. Future parts of this “series” will hopefully address more specific parts of the process. Art pipelines/software, more detailed look at engines and methods within engines and other assets such as audio. Feel free to comment here and request, I’m happy to try write more and will bring people more specialised than myself to topics I don’t have the best understanding in.