Game Programming (with Java)

First, remember that computer games are a form of play.

In this document, I write a game programming tutorial as a way for me to learn about the subject. I'm not an expert. These are notes for myself.


The categories of play proposed in Roger Caillois' sociological text Man, Play and Games are interesting and useful:

Most games use a mix of two of the above elements. Dance competitions, for example, combine agon and ilinx.

Caillois also describes play activities on a spectrum between ludus (structures) and paidia (spontaneous) play.


  1. Think about existing games, and categorized them according to Caillois' system.
  2. Think about an existing game. Redesign the game by swapping-out one of its play types, and/or changing where it falls on the ludus/paidia spectrum.


The above reminds me of affordances—the concept that a thing/object has in itself a number of possible actions that it enables. In some contexts, the definition of affordances is restricted to those possible actions of which the user is aware. This ties closely with discoverability.

I suspect that the affordances of various objects/things in a game is probably related to the game's potential for spontaneous play. I'm not exactly sure yet.