CHAPTER 12 ■ VIDEO GAMES
- Game Design (Volume 1: Theory and Practice) by Nick Schuessler and Steve
Jackson (1981). You can get it from http://e23.sjgames.com. Steve Jackson is the
fellow who made Ogre (one of my favorite board games), GURPS (the role-playing
system I use), and Munchkin (a commercial hit that spoofs role-playing games).
He does not make computer games, but the wisdom in this small book applies to
all games, computer or otherwise. - A Theory of Fun for Game Design by Raph Koster (Foreword by Will Wright) (2004).
Raph Koster is a veteran of many large computer game efforts, including MMOGs
(Massively Multiplayer Online Games). His book combines thoughts on learning
theory with thoughts on game design, bringing good ideas to both fields. - “I Have No Words & I Must Design: Toward a Critical Vocabulary for Games” by
Greg Costikyan (online essay). You can find this excellent exploration of what a
game is and how a game works at http://www.costik.com/nowords2002.pdf
You can find his blog, which contains other content of interest to game
developers, at http://www.costik.com
Summary
In this chapter, I hope you learned the basics of making a computer game with Java. In particular, I hope
you learned:
- The three basic components of a computer game:
- The user interface
- The game logic
- The game loop
- The essential tasks of a game loop:
- Processing the user input and all other inputs
- Processing the game logic
- Redrawing the playing field
- How to animate multiple objects at once
- How to make multiple objects move at different speeds
- How to test for conditions to see if a game should end or something else should
happen - How to update a score display in response to game events
As I have mentioned several times, there's nearly always more than one way to do any given thing in
software (that's part of both the fun and the frustration of writing software). So, when I say that I've
shown you how to do something, I really mean that I've shown you one way to do something. I hope
you'll experiment with other ideas and find your own ways to meet your software goals. Writing a game
of your own would be a great way to do just that, so go write a game.