Roger Hicks wrote: > On Thu, May 28, 2009 at 16:18, Benjamin Caplan > <celestialcognit...@gmail.com> wrote: >> Am I imagining things, or was there a contract recently that defined >> a coordinate grid of locations? >> > > I sent one out but it seemed nobody was interested. "Wacky World" was > the title.
I just took another look at it, and it seems kind of TLDR. I think new contracts should generally try to be relatively simple (or only moderately complex) at first, and add complexity over time. Other, interacting contracts can do this well; see the interaction of the AAA with various banks, and thereby with the Note subgame. On the other hand, maybe Wacky World was the right level of gameplay complexity, but the rules somehow seemed scarier than they had to be. Stripping down the rules (as I've done in my proto below) makes things easier to grok, but also makes it much harder to create an interesting, balanced game (which I've probably not accomplished). Taking out the theoretical overhead infrastructure about Worldbuilding Proposals and Properties and whatnot in favor of hard-coding game mechanics (as I've also done below) also significantly reduces scariness, but at the cost of reduced flexibility. Perhaps Wacky World would work well as an independent nomic, rather than trying to be someone else's subgame. Your original isn't quite at that level of complexity, I think, but it would likely be a comparable amount of work to get a working independent version as to get a palatable subgame version. The other important change I made was to allow out-of-contract items to be placed on the grid, which provides a certain degree of interactivity with other subgames. Proto: { 1. BOILERPLATE This is a public contract and is intended to be a contest. Any person can join or leave this contract by announcement. Any party may amend this contract without three objections. Actions permitted by this contract are performed by announcement unless otherwise specified. This contract can incur obligations under the Rules of Agora. Its parties SHALL ensure it fulfills its obligations. If this contract became a contract within the past two weeks, Atlas CAN modify it by announcement, except for changes that would affect the operation of this paragraph. Any party to this contract CAN oppose any such modification by announcement within 24 hours. If a modification is opposed the contract is treated as if that modification had never been made. If this contract has been a contract continuously for the past two weeks, this paragraph repeals itself. Initially Atlas is [person]. 2. CONTESTHOOD If this is a contest, then Atlas CAN flip its contestmaster to emself. The axes of this contest are {X, Y}. When a medal is created in possession of this contest, the contestmaster SHALL set its location to a random tile. 3. THE WORLD The World is a grid of squares (Tiles), initially 16 by 16. A tile is adjacent to each tile directly bordering it in a cardinal direction (no diagonals). A tile may be referenced by specifying its (X,Y) coordinate pair (where X is its horizontal position and Y its vertical position), with the square (0,0) being in the upper left corner, and the square (A-1,B-1) being in the lower right corner (where A and B are the width and height of the grid respectively). Location is an entity switch, tracked by Atlas, with values of all tiles and Null (default). Atlas's report does not include, and Atlas generally SHALL NOT reveal except as required by this contract, the location of any non-party entity whose location is not already public knowledge. Terrain is a tile switch with values Fallow (default), Fertile, and Wall. 4. ATLAS'S REPORT AND POLLINATION Atlas's report is weekly and contains the size of the World. If e has not done so in the past 48 hours, Atlas CAN begin a new turn; doing so thereby ends the previous turn. E SHALL do so at least once in each Agoran week. In the same message after beginning a new turn, Atlas CAN and SHALL, for each Fertile tile, randomly select one tile (the target) adjacent to that tile, and if the target is Fallow, then make the target Fertile. 5. JOINING AND LEAVING When a person becomes a party to this contract, eir location is set to its most recent non-Null value if any, if possible, and if non-Wall; or to a random tile otherwise. Within the same turn after a first-class person becomes a party to this contract for the first time, Atlas SHALL set the Terrain of a random tile to Fertile. When a person ceases to be a party, eir location is set to Null. 6. BASIC GAME ACTIONS Each of the following is a Game Action. A party CANNOT perform a Game Action if e has already performed a Game Action during this turn, clauses to the contrary notwithstanding. a. Moving A party to this contract CAN change eir location ("move") to an adjacent non-Wall location if e has not already done so during the current turn and if eir location is not Wall. b. Dropping Things When a party to this contract successfully transfers an asset to this contract ("drops" the asset), that asset's location is set to that party's location. The attempted transfer of an asset that this contract CANNOT own is unsuccessful for purposes of this paragraph. c. Picking Things Up A party to this contract (the magpie) CAN pick up an asset whose location is the same as eir location. Upon doing so, this contract transfers the asset to em. Within the same turn afterward, the contestmaster SHALL if possible award two y-points to the person who most recently dropped that asset (the donor), unless the donor is the magpie. d. Agriculture A party CAN reap a Fertile tile adjacent to eir location; the tile becomes Fallow. Within the same turn after e does so, the contestmaster SHALL if possible award em one x-point. e. Building A party CAN raise a wall on an adjacent tile, provided no party's location is that tile. Within the same turn after e does so, the contestmaster SHALL if possible revoke one x-point from em, and (if e did so revoke) switch the Terrain of that party's location to Wall. f. Pushing A party at location (x1,y1) CAN push an adjacent Wall tile (the near tile) at location (x2,y2), provided that (2*x2-x1,2*y2-y1) (the far tile) is a non-Wall tile. Upon doing so, the far tile becomes Wall, the near tile becomes Fallow, and each party whose location is the far tile ceases to be a party. g. Searching A party CAN search eir location. Within the same turn afterward, Atlas SHALL privately disclose to em the list of all entities whose location is the same as or adjacent to the searcher's. }