<?php include 'HEADER.php' ?>

<h1>Game Programming (with Java)</h1>

<p>First, remember that computer games are a form of play.</p>

<p>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.</p>

<h2>Play</h2>

<p>The categories of play proposed in Roger Caillois' sociological text <a href="http://en.wikipedia.org/wiki/Man,_Play_and_Games">Man, Play and Games</a> are interesting and useful:</p>

<ul>
<li><b>Agon (competition)</b> play is seen in chess.</li>
<li><b>Alea (chance)</b> play is seen in slot machines.</li>
<li><b>Mimesis (mimicry)</b> is seen in roleplaying.</li>
<li><b>Ilinx (vertigo)</b> play is seen in roller coasters, dancing, or spinning around till you fall down.</li>
</ul>

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

<p>Caillois also describes play activities on a spectrum between <b>ludus</b> (structures) and <b>paidia</b> (spontaneous) play.</p>

<h3>Exercises</h3>

<ol>
<li>Think about existing games, and categorized them according to Caillois' system.</li>
<li>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.</li>
</ol>

<h3>Affordances</h3>

<p>The above reminds me of <a href="http://en.wikipedia.org/wiki/Affordances">affordances</a>&mdash;the concept that a thing/object has in itself a number of possible actions that it enables. In some contexts, the definition of <i>affordances</i> is restricted to those possible actions <i>of which the user is aware</i>. This ties closely with <i>discoverability</i>.</p>

<p>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.</p>

<h3>Links</h3>

<ul>
<li><a href="http://en.wikipedia.org/wiki/Category:Play">Play (Wikipedia category)</a></li>
<li><a href=""></a></li>
</ul>

<?php include '../FOOTER.php' ?>
