What is a Game Mechanic?
With the explosion of gamification, there seems to be a lot of confusion around what a Game Mechanic is. While using the word as a blanket term to cover all aspects of game design isn't exactly a crime against humanity, it's worth clarifying what it actually means.
From the top down, a game can be peeled apart into successively more technical and specific pieces.
The top two levels are pretty simple; the Concept relates the game to real life (or at least an imagined version of real life) and Paradigm (often called genre) broadly describes how the game is played. Anyone familiar with games will be familiar with the concepts of First-person shooters, RPGs, Platformers, and Match-3 puzzles; these are all Paradigms. Many modern games combine multiple paradigms, such as the Grand Theft Auto series, which combines "3rd Person Shooter" with "3rd person Driving."
But at the Dynamics level, things get a little more complicated. A single game may have many dynamics and hundreds or even thousands of mechanics.
For example, even in this very simple Missile Defense game, there are a number of dynamics, such as:
-Purchase and manage different missile types
-Survive attack waves of increasing difficulty
-Fire missiles to intercept incoming bombs
If we take the example dynamic given in the table above (fire missiles to intercept incoming bombs), there are many more Mechanics contained beneath it than just the mechanic given, including the following:
-Missile fires along a vector defined by turret location and mouse click location
-Missile velocity and acceleration are set by rocket type
-Longest-active Missile is detonated by pressing the return key
-Missile explodes in radius determined by payload type
-Any bomb caught in radius is removed from play
-Bombs drop at a velocity and acceleration set by bomb type
Also in the example dynamic, there are a few interface points:
-Left mouse-click initiates missile launches
-Mouse-location sets fire direction
-Return key detonates missiles
It should be noted that it is entirely possible to have a dynamic with no interface whatsoever. In these cases, the dynamic receives its input from changes in other dynamics.