On Wed, Jan 29, 2020 at 11:46 AM Tanner Swett via agora-discussion <agora-discussion@agoranomic.org> wrote: > > I've been thinking about what makes Agora difficult to play as compared to > other games. > > Something I've noticed about the current rules is that lots of game actions > and effects are all woven together in such a way that if a mistake is made > with any piece of it, the mistake can quickly propagate and "infect" a > large portion of the state of the game, leading to large-scale confusion. > Sometimes a sort of "fork" occurs and we find ourselves playing two games > in parallel (and thereby taking double the effort) until some ambiguity is > resolved. > > "Real life," however, by and large does not behave this way. Consider the > following scenario: > > Alice has a bank account with a balance of $0. She deposits a check for > $100, then goes to a store and buys a Bluetooth speaker for $100 using a > debit card. Soon after this, she decides she doesn't like it, so she sells > the speaker to her neighbor Bob for $50 in cash. A few days later, the > check Alice deposited bounces. > > If something similar to the above were to occur under rules similar to > today's rules, then we would find that Alice actually never had the money > to buy the speaker with, so the speaker still belongs to the store. Then, > when she sells the speaker to Bob, the sale is illegitimate, and so the > speaker *still* belongs to the store, but now it's in Bob's possession; > meanwhile, Alice now possesses $50 of cash that actually belong to Bob. > > In real life, however, none of the above happens. The initial sale of the > speaker still stands; the speaker is successfully sold to Alice and the > store receives $100. The subsequent sale also succeeds, meaning Bob now > owns the speaker and Alice now owns the cash. When the check bounces, the > credit to Alice's account is simply reversed, leaving her with a debit > balance of $100. > > The difference here is that Alice's bank account is decoupled from her > interactions with the store. Her ability to buy things does not depend on > the legitimacy of the funds in her account; instead, her ability to buy > things depends on what the bank tells the store, and what the bank tells > the store depends on the bank's *beliefs* about the legitimacy of the funds > in her account. > > How could we make Agora that way? > > Currently, the rules state that each player has some number of coins, as > part of the gamestate, and the Treasuror is responsible for keeping track > of this part of the gamestate. When a player attempts to spend coins, the > attempt succeeds if e has the coins and fails if e does not. > > Instead, I suggest amending the rules to state that the Treasuror is > responsible for maintaining accounts of coins; each account represents the > number of coins that each player is considered to have, but having or not > having coins is not actually part of the gamestate. When a player attempts > to spend coins, the Treasuror either approves or declines the attempt. For > particularly important transactions (such as winning the game), the Referee > and Arbitor must approve the attempt as well.
Oh, light, no. Last time we tried to store money as accounts it was an infernal mess. It lead to a never ending series of bugs and counterintuitive results. For the implementation, please in the name of all that's holy implement it on top of assets. This is simple; you just have to set a rule that the Treasuror's ruling on who has which transactions succeeded is dispositive, and the coins platonically update themselves so they are distributed in the manner e says they are. I think I prefer the current system personally; the platonic nature of reality and need for convergences keeps things interesting. However, my concerns about the implementation are much greater than my objection the content. -Aris