Posted by Rampant Coyote on April 11, 2011
Make it single-player, with AI controlling the other paddle. Finish it, making it ready for release to strangers. This means a complete installer for a downloadable game, or an attractive page for a web-based game, or something ready to upload to an app store. It doesn’t matter what language or engine you are using. Just make Pong. Go a little beyond the original version of the 1970s – jazz it up a bit, but don’t go too far overboard.
WHY? Why start with something that was primitive and retro thirty years ago? What possible value would it be? Especially for someone who is not a programmer? If you want to make the next great MMO or Halo-killer, what could you possibly learn from making Pong?
#1 – It’s simple, well-known, and completable. You can expand on the design later if you want, but you’ve got a very fixed scope with very few unknowns. Some of the most difficult skills in game programming involve understanding how to finish a project, and being able to estimate the time it will take to finish it. I still suck at both, particularly the latter. You will probably be surprised with the amount of time and effort it still takes, even for such a trivial game.
#2 – You will learn the basics of game programming. Main loops. Getting player input. Sound. Graphics. Collision detection. Even AI, with an AI player handling the other paddle. Loop timing. Some of these things are mostly handled for you by your chosen platform, but every one is a little different. Whether you are new to programming and just tried your first “Hello, World” program a month ago, or you have been coding up Java business apps your whole career, game programming will have some new things to teach you.
#3 – You will be introduced to every discipline involved in game development. You will have to make your own graphics. If you try to go beyond monocolor blocks for the graphics – especially if you opt to give it an actual menu of some kind (highly recommended), you will learn even more. You may learn about size limitations for graphics with your engine – maybe it requires all images to be sized in the power of two. You’ll have to learn about what formats work for your chosen platform. As a coder, you’ll get an inkling of what the artists have to do to get pictures to look good on the screen. As an artist, you’ll learn some of the challenges the programmers run into to put your visuals there. You’ll learn about sound tools, sound formats, and how to get audio through the pipeline. You’ll learn about testing and debugging. You’ll learn how to package your game for end users. Hopefully, when the time comes when you are working with other people taking those roles, you’ll know a little better how to work with them and communicate with them.
#4 – You’ll learn about designing AI. Pong AI is about as easy as they come. Making a Pong player that is frustratingly impossible to beat is pretty easy to do. Making a fun AI opponent that mimics (to some degree) a living opponent can be a bit more challenging.
#5 – You’ll learn about every stage of game development quickly. Even something as small as Pong will have something resembling a complete product development cycle. You may not recognize it at first, but after you have a couple of them under your belt, you’ll begin feeling pretty familiar with the process. And all the pains it entails.
#6 – You’ll get a quick success under your belt. No, it’s not going to sell a million copies (unless you do something really surprising and cool with it, I’d really not expect it to sell any copies). It’s just a learning exercise. But inertia works both ways. Getting a little forward momentum started quickly and early can help, and it’s a satisfying feeling that can build confidence and proficiency.
Pong is perhaps the least exciting game for the modern gamer to try their hand at. But just as you can’t expect to play Beethoven your first time sitting at the keys of a piano, you will need to start with some fundamentals when making games. Make Pong. Then try your hand at one or two more “Game Jam” style projects, but keep them simple.
Filed Under: Game Development - Comments: 20 Comments to Read