MEETING NOTES Followup, September 20, 2001: Geoff's Email
Date: Thu, 20 Sep 2001 14:20:48 -0400
From: Geoffrey Rockwell
To: Andrea Laue
Cc: gmr3f@virginia.edu
Subject: Moves Again
Resent-Date: Fri, 21 Sep 2001 11:18:34 -0400 (EDT)
Resent-From: "Andrea K. Laue"
Resent-To: akl3s@neon.mail.Virginia.EDU
Dear Andrea,
I've changed my mind and would like to propose a simpler model for moves.
1. Move - a move is the submission, evaluation, and implementation of a change in state.
2. A move has three phases:
2.1 The submission of an atomic change to the game state. By this I mean a change to a single variable. (Most of what we might call moves would be multiple moves in that we might ask on one form to set a number of variables.) Each submitted change includes the following information:
2.1.1 Who proposes it.
2.1.2 When it was proposed.
2.1.3 What property (variable or whatever we call the changeable
things) is to be changed.
2.1.4 What it should be set to if implemented.
2.2 The computer evaluates the proposed change and, if the evaluation calls for input from someone else, farms out the work of evaluation. By the end of the evaluation we know what property of the game state is proposed to be changed to what new property.
2.3 The computer implements the change. In the implementation it goes through four phases.
2.3.1 First is checks to see if the proposed change can be made. The change may not be possible for a number of reasons, including the possibility that there are multiple moves being evaluated at the same time that propose to change the same property.
2.3.2 Then it reconciles the proposed change with other proposed changes that may conflict.
2.3.3 A change is made or not depending on the reconciliation.
2.3.4 The change is reported and logged in the appropriate way. (The mover may get a message, others may get a message, and the move may be logged as having been responded to in a certain way.)
3. How does this deal with the different types of play we discussed?
3.1 What I was calling the starting of a move is now a particular type of move that proposes to change the property of who can do other moves. In effect, if we allow people to block out a time for moving by "starting" a move, I am proposing this is just a type of move that does a certain type of change to the game state.
3.2 We don't need the idea of sessions now, because moves are atomic and we can specify how many (or when) moves can be submitted (by one or more people) before the computer starts evaluating and implementing the moves. A user could submitt a number of moves, but the computer may just queue them for evaluation until a certain condition is met. Alternatively the computer could be set to always evaluate and attempt to implement a move once submitted.
4. The reason I moved to this model is that it seems cleaner. We don't need the idea of session and keep to a simple idea of what a move is.
Yours,
Geoffrey R.