Tuesday, May 01, 2007

Workbench and other stuff, take 2

This is still a draft, not a proposal.

WORKBENCH.  A grid of 6 rows labeled “A” through “F” (with A at the bottom) and 8 columns labeled “1” through “8” (with 1 on the left).  Individual grid-squares are thus identified “1A” (at the lower left” and so on through “6F” at the upper right.

In order for a Part to become part of the Machine, it must be placed in the Workbench.  This is accomplished by indicating which column (or adjacent columns, if the Part is more than 1 column wide) the Part is dropped into.  The Part then drops down to the lowest vacant grid squares in that column.  For example, if the grid is empty and a 1x1 sized Part is dropped in column 3 then the Part falls down to location 3A.  If another 1x1 sized Part is then dropped in column 3 it falls down to location 3B.  If a 2-wide by 1-high Part is then dropped in columns 3 and 4 then it falls down to locations 3C-4C.

Changes to the concepts of Parts and Variables:
Parts are physical, tangible objects such as a lever, a bell, a shotgun, an aircraft carrier, or a shark.  Variables are factual states such as: Position of Lever (permitted states: up, down).  Time of day (permitted states: Morning, Afternoon, Night).  Status of Mouse (permitted states: Awake, Asleep, Dead). 

Some Variables refer to conditions applicable to a particular Part- these can be referred to as “Part Variables”.  (examples: Position of Lever, Status of Mouse).  Other Variables do not refer directly to conditions applicable to a particular Part, but simply refer to a condition of the universe (example: Time of Day).  The definitions of “Part” and “Variable” in the rules are amended to conform with this.

A Part may become part of the Machine by being placed at a location in the Workbench.  Variables, being concepts rather than tangible things, do not have locations.

When a Part is activated, the Part may (but is not required to) check the status of any number of Variables, and the status of those Variables may affect the result of activating that Part.  For example, if a Part is a Lever, and there exists a variable entitled “Status of Lever (permitted states: Up, Down)”, and the description of the Lever is “If Lever is activated, check the status of Lever.  If Status of Lever is Down then do nothing.  If Status of Lever is up, then change the Status of Lever to Down activate the Part that is located immediately above the Lever, and increase the value of the Variable entitled “Number of Lever Clicks” by one.  Valid results of activating a Part may include, for example: changing the state of one or more Variables in specified ways, activating or deactivating one or more specifically named Parts or one or more Parts having a specified spatial relationship to the Part in question, or changing the location of one or more Parts.  Only Parts that are part of the Machine (i.e., that have locations) can be affected.

Comments

spikebrennan:

01-05-2007 20:35:35 UTC

When a Variable is created, it is designated as either “Part-specific” or “Global”.  If it is “Part-specific” then the Part that it relates to must be specified, and if the Part that it relates to does not pass or is deleted from the gamestate then that Variable automatically also gets deleted from the gamestate.

Amnistar: he/him

01-05-2007 20:37:13 UTC

Would require you to edit the parts and variable description in “The Machine” and I also request that the workbench be a sub-rule of machine :)

spikebrennan:

01-05-2007 20:39:34 UTC

Yes.  Before this gets proposed, I think that we need to come up with a feasible way of tracking the status of the workbench.  (I think that a GNDT chart would work, others have expressed doubts.  I am not convinced that the limited wiki coding that is available on our wiki would be sufficient, but I am happy to be proven wrong.)

spikebrennan:

01-05-2007 20:50:38 UTC

A description of a part will also set forth the size of the Part (e.g., 1 unit wide x 1 unit high, or 3 units wide x 2 units high), and may also set forth attributes about the part.

Examples:
Shotgun
Size: 1 unit wide x 1 unit high
Attributes: Metallic [this could be siginficant if, for example, it is placed next to a Part that is magnetic and only affects adjacent Parts that are Metallic]

Wheel of Cheese:
Size: 2 units wide x 1 unit high
Attributes: Edible

Enderbean:

02-05-2007 00:36:11 UTC

I don’t really see a need or use for global variables.