I want to break down game development from a specifically programming perspective. So, let’s talk about this thing we’ve been kicking around the office, which we’re calling “The Game Triforce.” The Game Triforce consists of three distinct parts:
Control, Display and Timekeeping.
Control is probably the easiest component to understand. It represents all of the inputs to your system. Controls require an interface (called a human-computer interface) which is how you, the player, communicate with the box that holds the game program.
Here’s a non-exhaustive list of inputs:
- button presses
- key presses and holds
- mouse clicks
- analogue stick hold
- input text
- touch and multitouch
- motion control
- dance pad
Display, which is the output of a system, is everything in the game that can be perceived by the player. Another way to look at it is as feedback to the player.
Display can (and should) involve many senses, not just sight.
For example, in a fighting game, if you press the button for a punch, what kind of feedback could you expect?
- Punching animation on player character
- Punching sound effect
- Player character power level dropping
- Enemy character reaction (block, hit, dodge, etc)
- Enemy character reaction sound effect
- Enemy character HP bar dropping
Timekeeping is the last corner on the Triforce. You might not have considered this before, but many aspects of a game require some kind of timekeeping. Timekeeping is necessary whenever an action needs to happen through time. This includes every character, background, or GUI animation, some physics calculations like velocity, and any time-based events like countdowns and cooldowns.
In most games, this could happen in one of two ways:
- Using frame-rate – this is good for anything in the display or model that needs to update every frame, like an animation
- Using a timer – this is better for arbitrary or longer periods of time, like a countdown timer
Now that you know how it works, try breaking down a component, even a single action, of a game that you like into the control, display, and timekeeping that goes into that action.
If you are a game designer, try breaking all the actions in one of your current projects down. This activity can make a great start to writing your GDD.