Ive always loved video games, ever since I first played them on a friends computer in the afternoon after elementary school. Theres something almost magical about the fact that we can move images around and interact with virtual worlds, a living fantasy presented for us to interact with however we please. Ive also always wanted to make games myself but, until recently, didnt have the technical knowledge to do so. Now, Im a second year software engineering student, so if I werent able to code a game without too many dramas thered be something drastically wrong. But what about the common person: the person for whom the term memory leak conjures up images of their grandfather, pipeline is where the water flows, and blitting is unheard of? Well, everyone can get in on the game creation process, and you dont even need to learn real programming to do so.
So where do games start? With an idea. Games, like all fiction, require an idea to be successful. Sure, in the same way you can just sit down and write a story without foresight, you can jump on in and slap a game together. However, unless you get ridiculously lucky, the best works are usually the ones that have been well thought out beforehand.
There are two methods of planning a project. You can start from a known technological standpoint and build your project on top of that or you can just go for the design, add as many features and ideas as you like, and then remove the ones that you cant use when youve decided on the technology youre going to implement the game with. In general, the second type is probably the best one to go with when designing games. When youre first starting out however, the first option will save you many headaches.
So, for a first game youre going to want a pretty simple idea. Dont get me wrong, crazy-go-nuts game ideas are fantastic, and there should be more of them out there, but youre not going to be able to create a real world simulator with fifty billion virtual people all interacting real time with your actions having a butterfly effect on the future of the virtual universe when its just your first game. Really. Many people try it; none that I know of have succeeded. Imitation is the best way to start out. Simple games such as Space Invaders, Tetris, Pacman or even Pong are great places to start. All are largely simple to create but have some inherent challenges. Pacman for example, requires path finding for the ghosts. I recommend that you start even simpler than that for your very first attempt. Space Invaders is a nice point to jump in. You can make a simple, complete game without much effort and its almost infinitely extensible.
If youre stuck for an idea, pick a genre that you enjoy. Do you love adventure games such as Monkey Island, Grim Fandango, Space Quest, Kings Quest etc.? Design one of those. Are you into fighting games like Street Fighter, Tekken, Soul Calibur, Mortal Kombat and so on? Come up with an idea for that. Do you like first person shooters such as Quake, Half Life or Doom? I dont recommend it as a first project, but you can always give it a go. Feel free to be as generic as you like, this is a learning experience after all.
Now that you have your idea its time to flesh it out. Dont worry about the technology or the fact that you may not know how to actually implement a game just yet, just grab yourself some paper and a pencil and go crazy with ideas. Describe the main characters, game play, goals, interactions, story, and key mappings, anything you can think of. Make sure you have enough detail so that someone can read through the notes and play through the game in their head with relative accuracy. Changing game design during the coding process is almost always a bad idea. Once its set, it should remain set until the tweaking phase (Ill go into this more later) or youre likely to enter development hell, where the project goes on and on; more and more work is done with less and less outcome.
At the end of this period of your game creation, you should have the following:
- A written outline of the games characters and possibly a sketch or two (be they space ships, yellow circles, cars or the prince of the dark kingdom of Falgour, you need to know who or what the player will be and who they will compete against)
- A written outline of the story (if there is one, this isnt too vital for Space Invaders or Tetris, but for Uber Quest: An Adventure of Awesomeness its a really good idea)
- A description of game play, written or storyboarded. Storyboards are visual representations of ideas. Draw your characters in actions, with arrows showing the flow of action and short written descriptions detailing the events occurring in your image (because some of us arent fantastic artists and our images can be a little open to interpretation )
Now that you have a fleshed out idea, its time to work out how this will all get put together. If youve gotten to this point and are worried that youre going to have to spend years learning complex programming languages in order to implement your idea, fear not! Others have already done the hard yards for you. There are many RAD (Rapid Application Development) Tools available for game creation, a number of which are available for free online. Some of them still require you to learn a scripting language (a simplified programming language made for a specific task) but in general this isnt too complicated or involved. Ive compiled a brief list of some of these I have found at the end of the article. The free ones are listed first, organized by game genre.
Well, that should be enough to get you started in the creation of your game. The most important thing to remember once youve gotten this far is that you need to complete your game. Many people start a project and then lose interest and it fails, or they keep moving on to one new project after another without finishing anything. Start small, build a working (if simple) game that is, above all else, complete. When you get to this stage you will always have a huge number of things that you wish to change, fix etc. but youll get a great feeling from knowing that it is, in its way, finished.
From this point, you can start the tweaking phase. Play your game a few times and ask others to do the same. Take note of what isnt fun or could be better and change things here. At this stage, it is more important than ever to keep backups of previous versions so that if a change doesnt work you can go back and try something different without losing any of your work. It is at this point that you can add all new features, improve graphics and sounds, whatever you please, safe in the knowledge that youre working on a solid foundation.
When youre happy with your game, why not share it with the world? There are many cheap or free places out there for you to host your files on and then you can jump on link lists and forums and let everyone know about your creation. Well, I hope that this has been a helpful introduction into the art of creating games. Its a great deal of fun, and can open whole new avenues of creative expression for you to explore. Jump in and have fun!
Links:
General Game Creation:
(Tools that allow easy creation of many different game types)
Game Maker: http://www.gamemaker.nl
MegaZeux: http://megazeux.sourceforge.net/
Adventure Games:
(Games such as Monkey Island, Kings Quest, Space Quest etc.)
Adventure Game Studio: [http://www.bigbluecup.com]
AGAST: http://www.allitis.com/agast/
3D Adventure Studio: http://3das.noeska.com/
ADRIFT (for text adventures): http://www.adrift.org.uk/
Role Playing Games (RPGs):
(Games such as Final Fantasy, Breath of Fire, Diablo)
OHRPG: http://www.hamsterrepublic.com/ohrrpgce/
RPG Toolit: http://www.toolkitzone.com/
Fighting Games:
(Games such as Street Fighter, Mortal Kombat, Tekken, Soul Calibur etc.)
KOF91: http://sourceforge.net/projects/kof91/
MUGEN (unfortunately the site is largely in French): http://www.streetmugen.com/mugen-us.html
Side-Scrolling Games:
(Games such as the 2D Mario Games, Sonic the Hedgehog, Double Dragon etc.)
The Scrolling Game Development Kit: http://gamedev.sourceforge.net/
There are many others available as well. One particularly useful site for finding game creation tools is: http://www.ambrosine.com/resource.html
Also of note, although not freeware, are the excellent game creation tools available by Clickteam at: [http://www.clickteam.com/English/]
Klik and Play and The Games Factory in particular are the programs to have a look at and download the free demos of.
If you really want to do things right and program the game yourself, there are some excellent programming resources available at the following locations:
Java Game Programming:
http://fivedots.coe.psu.ac.th/~ad/jg/
http://www.gamedev.net/reference/articles/article1262.asp
http://javaboutique.internet.com/tutorials/Java_Game_Programming/
Visual Basic Game Programming:
[http://markbutler.8m.com/vb-tutorial.htm]
C++ Game Programming:
http://www3.telus.net/alexander_russell/course_dx/introduction_dx.htm
http://www.rit.edu/~jpw9607/tutorial.htm
General Information:
http://www.gamedev.net/
http://www.gamasutra.com/
"Now YOU Can Create Professional 3D Animations, Games And Graphic Models Like Pixar and Dreamworks In 2 Hours or Less..."