(There is an etherpad version of this text at http://piratepad.net/game-designers-1 -- feel free to edit there if you want to make quick changes/suggestions.)
The intial outline (subject to change) is as follows. This is developing in a conversation with Stefan Kreitmayer and Daniel Chiquito. The idea is to take the basic concepts of "games" and explore them using mathematics. In this course we will focus on two mathematical ideas: discrete differential equations (difference equations, differential equations on graphs, whatever you want to call it), and strategy/proofs.
The course is emphasizes the needs and interests of game designers, but programmers or math fans are welcome to enroll. We will expect to meet for voice conversations twice a week.
Exercises are optional (but encouraged) and are structured in such a way that they can be done with or with out programming. Feel free to invent your own exercises or projects and share them with the group!
We will particularly aim to support development in Python with examples and tools being added during the course.
We will aim to document what we learn on PlanetMath, Wikipedia and/or a next-generation "clone" of PlanetMath. Details will be discussed during the course. If you need to contact the course organizer about anything, you can post in the discussion area here or email directly, email@example.com.
Week 1: Space (including graphs and other combinatorial models of space)
Here I was thinking that we would come up with a graph visualization framework - hence the importance of graphics libraries. But more importantly to make sure that everyone is on the same page with what a mathematical graph is G = (V,E) where V is vertices and E is edges, and so on.
Possible design/programming exercise: Choose a platform or medium in which to do simulations or to create art work that sketches your ideas, and use this medium to explore the idea of "space".
Week 2: Time (focusing on movement)
In this phase I wanted to look at simple differential equations on graphs. What I mean by this is, suppose we have a certain quantity of "stuff" at a vertex v and we want to know where the stuff goes. We can write a function (or whatever, a differential or difference equation) that will say where the stuff goes at time t.
Melting snowman example:
X --> XX --> XXX --> X X X -->
Possible design/programming exercise: Create an environment that has some interesting "physics" to it, e.g. snowmen melting, leafs blowing, cities growing, perhaps the space itself expanding or changing shape...
Week 3: strategy and proof, part 1: Introduction to game theory
Some online resources for self-study (feel free to add more here or add reviews):
The task this week is to analyze, to the extent possible, the game of your choice, using ideas from game theory.
Possible programming exercises: Make the environment interactive, and/or add bots (NPCs) that interact with the game world.
Week 4: strategy and proof, part 2: Iterative Games and learning as you go.
Possible design/programming exercises: Design or build bots with some ability to learn and change their behaviour. Neural Networks is one way to approach this.
Week 5: strategy and proof, part 3: Proof strategies
Possible design/programming exercise: Enhance your game by creating some objectives or scenarios and letting the bots or players interact in these scenarios (e.g. create the ability to "win").
Week 6: Cybernetics and ecology (building and interacting with systems)
Final project: Design/build a world simulator or a new game.
Some recent news that may entice people to take the class: