Annotation of micropolis/src/notes/MultiPlayerIdeas.txt, revision 1.1.1.1

1.1       root        1: Notice window
                      2:   welcome
                      3:   scenario descriptions
                      4:   warnings
                      5: 
                      6: zone status window
                      7:   display live map picture
                      8:   reconfigure to support various tasks
                      9:   editors for chaging zone
                     10:   invest $ => develop zone => increase land value
                     11:   population density
                     12:   crime prevention
                     13:   environmental cleanup
                     14:   enance growth
                     15: 
                     16: editor
                     17:   pie menus
                     18:   demand gauge
                     19: 
                     20: budget
                     21:   multi user dialog
                     22:   hour glass timeout
                     23:   auto budget toggle
                     24:   pause/resume toggle (to allow changing budget while simulation is running)
                     25: 
                     26: map
                     27:   drag rectangles to pan map views
                     28:   menus on palette
                     29:   generate terrain mode
                     30:   lengend
                     31:   rearrange
                     32:   switch overlays
                     33:   dynamic zone finder
                     34: 
                     35: graph
                     36:   2x3 palelet, 10/120 years
                     37:   double buffering
                     38:   communicate data. ard wire in c? 
                     39: 
                     40: evaluation
                     41:   historical graphis?
                     42: 
                     43: surveyor
                     44:   other editors
                     45: 
                     46: dynamic zone finder
                     47:   washboard filter sliders
                     48: 
                     49: get key dialog
                     50: 
                     51: new city -- or "use map"?
                     52:   name, level
                     53:   scenario selection
                     54:   random terrain generator
                     55:   player can propose a city by selecting a scenario, loading a city, or generating a random terrain. 
                     56:   all players must vote unanimously on a city to play
                     57:   selecting a new city clears all votes
                     58:   players can press next/previous to page through proposed city history
                     59:     you can go back to randomly generated terrains, because it saves the random number generator seed
                     60:     clears votes, proposes new or old city
                     61:   terrain editor todo:
                     62:     Integrate terrain editor code into map editor, 
                     63:     and have a button on the new city map to run in terrain editor mode.
                     64:     Terrain editor will include only terrain editing tools,
                     65:     plus random terrain generation interface,
                     66:     and simulator will be paused.
                     67: 
                     68: print dialog
                     69:   Newspaper printing and publishing metaphore. 
                     70: 
                     71:   Optionally save a snapshot of the city state, to link to from the newspaper article. 
                     72: 
                     73:   Publish in newspaper, print on paper, save to disk, copy to clipboard, 
                     74:   add to journal, blog, etc.
                     75: 
                     76:   Allow user to enter text to be printed along with an image, like blogging. 
                     77:   Can print any map or editor view with data overlay and chalk drawings, 
                     78:   entire map (fit on one page, or split across multiple pages), 
                     79:   or other windows like graph, evaluation, notices, messages, chat log, etc. 
                     80: 
                     81:   Export text content as html with embedded images. 
                     82: 
                     83:   Make an html/image city overview and journal, like The Sims family view and scrapbook. 
                     84: 
                     85:   Printable windows and views should have a "print" button or function that pops up a 
                     86:   pie menu of possible destinations, for quickly making snapshots in your journal, etc.
                     87: 
                     88:   Publish illustrated newspapers in the game, like The Sims storybook, with newspaper 
                     89:   articles composed of pictures of the city, text excerpts from chat logs, etc. 
                     90: 
                     91:   A player could be a "reporter" interviewing other player politicians via chat,
                     92:   before and after the vote on building a stadium, asking them to make their case for
                     93:   or against the stadium, and publish the interviews in the game's newspaper, the
                     94:   "Micropolis Journal".
                     95: 
                     96:   Players can browse each others newspapers over the net, and download the city snapshots 
                     97:   the articles write about. 
                     98: 
                     99:   Flash: Monster invades Micropolis, near nuclear reactor! 
                    100:   (story and link to saved city so you can read the story, then bring up the city and 
                    101:   play it live from the point the story was written)
                    102: 
                    103: quit
                    104:   confirm
                    105:   multi player logout
                    106: 
                    107: save dialog
                    108: 
                    109: load dialog
                    110: 
                    111: network city browsing and sharing
                    112:   "What-If?" history tree.
                    113:   Publish your cities on the net.
                    114:   Download other peoples cities.
                    115:   Use a URL to point to a saved city. 
                    116:   Grab a live snapshot of somebody's running city.
                    117:   Checkpoint and branch timelines.
                    118:   Save a city back to the point where it branched, 
                    119:   to create an alternate history that other players can load.
                    120:   Multiple players build a tree of saved cities with branching alternate histories.
                    121:     Like the parallel universes in Niven's All the Myriad Ways.
                    122:   Rewind any city up the tree and select available alternate histories at each branch point. 
                    123:   Play back alternate histories edit by edit, stop them at any point and take over, 
                    124:   making a new branch point at that location.
                    125:   When you play together in the same city, you have to discuss and agree with other players 
                    126:   about what to do, and convince other people of your ideas.
                    127:   You can try an idea out yourself, by branching your own private history, 
                    128:   giving your idea a try, and reporting back to the other players in the main shared timeline
                    129:   what happened (with links to the save file and history so other players can see for themselves). 
                    130:   GUI: Branching history tree outline viewer of saved files. 
                    131:   Drag and drop a history point into the chat log which other players can click on to open a 
                    132:   live view playing that history. 
                    133: 
                    134: status control
                    135:   views
                    136:   players
                    137:   new player
                    138:   new view
                    139: 
                    140: Keep and export logs of simulation values
                    141:   r, c, i demand
                    142:   evaluation
                    143:   tax rate, collected
                    144:   funds
                    145:   funding levels
                    146:   event logs
                    147:     simulation events
                    148:       extend simulator to log all interesting simulation events, 
                    149:       so newspaper reporters can write stories about them
                    150:     editing commands
                    151:       Log enough information to replay all edits against a save file to recreate same city.
                    152:       This is the key to high level multi player protocol between
                    153:       multiple parallel lock-step simulations, like The Sims Online,
                    154:       better than using low level x11 to implement the multi player
                    155:       interface)
                    156:       Treat any editing command as a "what-if" branch point where it could go another way.
                    157:       Give players an easy interface to replay a simulation up to a branch point, and 
                    158:       and re-make the decision, to see how it would turn out differently. 
                    159:   chat logs
                    160:   everything else of course
                    161:   web service to access logs
                    162:   export logs as xml for programs or csv for spreadsheets
                    163:   import and export chalk overlay as vector drawing
                    164:   support image overlays with transparency (begs for photoshop-like drawing interface)?
                    165:     Careful how far down that road you go, because you could use it to paint the image of
                    166:     a happy emerald green city over a dreary industrial wasteland. 
                    167:     The simple white chalk overlay has the advantage that you always know what's chalk and what's not. 
                    168:   opml outline with geo-codes
                    169:     store city overlay information in opml
                    170:     register the corners of the map with real-world lat/long values
                    171:       allow rotation and scaling but not arbitrary shearing or distortion
                    172:     register nodes of the opml outline at lat/long points and areas on the map
                    173:       what's a good way to associate an opml node with an arbitrary area on the map? 
                    174:       an attribute with a polygon in lat/long coordinates?
                    175:       a list of rectangles in lat/long coordinates?
                    176:       a list of tiles in row/col coordinates?
                    177:     associate geo-coded opml nodes with features on the map like 
                    178:     zones, buildings, streets, neighborhoods
                    179:       use opml nodes to give names to features, 
                    180:        take notes about them, 
                    181:        attach pictures to them,
                    182:        write stories about them,
                    183:       support overlapping features, so roads can cross, 
                    184:       and each tile can belong to any number of features.
                    185:     allow users to plant signs on the map, like micropolis 2000. 
                    186:       represent signs with an opml node. 
                    187:         signs can contains arbitrary opml outlines
                    188:           with links to other opml nodes
                    189:            like a sign at a crossroad, linked to the nodes representing each road, 
                    190:            and the regions of the city that the roads bring you to.
                    191:       use opml to write a city guide
                    192:       attach chalk overlays and signs to opml nodes so you can show and hide them hierarchically
                    193: 
                    194: head window
                    195:   Represents root window of Micropolis application to TCL, and ties all the other windows together. 
                    196:   Contains the application's main menus and scrolling message and chat log.
                    197: 
                    198:   An artifact of the way TCL/Tk/X11 works. 
                    199: 
                    200:   With another gui, might be the main base window that contains all other subwindows. 
                    201: 
                    202:   In X11, we depend on the user's chosen X11 window manager to manage all the separate windows. 
                    203: 
                    204:   In a better world (Sugar) Micropolis should let users save and restore windows
                    205:   configurations and multiple views, tailored for various roles and tasks. 
                    206: 
                    207:   When a new player joins, the select a role to play, which will grant them 
                    208:   permissions and customize the interface, opening and positioning the appropriate
                    209:   windows and tools for their role. 
                    210: 
                    211:   Each role supports various tasks that might themselves reconfigure the user interface. 
                    212: 
                    213:   User interface configurations should be selected based on the role and the task. 
                    214: 
                    215:   Users first select a role that stays the same (forever or most of the time) 
                    216:   and which grants them a set of permissions. 
                    217: 
                    218:   Each role supports a set of tasks (like Eclipse's "aspects"), which users may
                    219:   switch between, to reconfigure the user interface. 
                    220: 
                    221:   Players can hold elections to grant each other roles 
                    222:   (like mayor, treasurer, planner, builder, reporter, god, etc).
                    223: 
                    224: Ownershop
                    225: 
                    226:   This vastly complicates the game, so I didn't try it, but I wrote down some ideas.
                    227: 
                    228:   Consider the screen area of the user interface it would require to 
                    229:   enable the user to micro-manage all the ownership issues, in terms of 
                    230:   the number of acres of city map it would cover. 
                    231: 
                    232:   It seemed like it would be too complicated to be fun. 
                    233: 
                    234:   Even if it could be magically implemented with a simple gui, would it be any fun? 
                    235: 
                    236:   That said, here are some ideas. 
                    237: 
                    238:   Ownership plane: 0 => nobody, 1-256 => user id 
                    239:     (note: Can't save ownership user ids into save files if we want multiple  
                    240:     players to enter and exit independently from the city itself, or if we
                    241:     want to support an open-ended, possibly large number of players over time. 
                    242:     As I said, this gets complicated pretty fast, without a lot of beneficial fun.)
                    243: 
                    244:   Players have separate funds. 
                    245:     This raises issues about: who gets paid how much of the city's overall income,
                    246:     and who pays for city services?
                    247: 
                    248:     Could have a main shared city budget, then certain players can be appropriated 
                    249:     funds from that budget earmarked to perform various tasks.
                    250:     But again, that gets pretty complicated, and how is it fun? 
                    251: 
                    252:   Competition or cooperation?
                    253:     Should we attempt to make the game support competition between players,
                    254:     or is it better to keep it cooperation-oriented, by requiring unanimous votes,
                    255:     sharing the budget, etc. 
                    256: 
                    257:     I think it's simpler and more educational to give players the freedom to misbehave, 
                    258:     while building in social networking and accountability, to let players discuss, 
                    259:     negotiate, make and break deals, establish reputations, reward good behavior, 
                    260:     and punish bad behavior, by developing real-world social interaction skills. 
                    261: 
                    262:     What fun would politics be if you couldn't have scandals? 
                    263: 
                    264:   Land value
                    265:     higher resolution land value grid
                    266:     effected by sales
                    267: 
                    268:   asking price
                    269:     Tiles are owned by someone, and may be for sale, and given an asking price by the owner.
                    270:       Requires complex user interface for selecting tiles, assigning price, etc. 
                    271:       How is that fun? 
                    272:     Groups of tiles: parcels of land, for sale all at once, to highest bidder. 
                    273:       M.U.L.E.-like multi player auctions for land.
                    274:     Developers can build on empty tiles that are for sale, and they're bought automatically. 
                    275:       What's so fun about being a developer? Nothing to do after setting the price of the land. 
                    276:     Buyers can offer to buy something that doesn't have a price, which initiates an 
                    277:     M.U.L.E. dialog with the owner, and allows other players to join in the auction, 
                    278:     submitting their own bids. 
                    279: 
                    280:   Transaction tool - $ (or local currency symbol)
                    281:     select group of cells
                    282:   negitiate deals with the owners
                    283:   automatically calculates default land value suggested price (upon which the tax rate based) 
                    284:     based on modified land value through worth
                    285: 
                    286:   communication window
                    287:     so people can negotiate and talk
                    288:     irc-like chat rooms where people can have a side discussion
                    289:     private person-to-person messages
                    290: 
                    291:   calculate evaluation for each player
                    292:     Independent and combined scores and statistics.
                    293:     Hard to define what this means in terms of the current simulation.
                    294:     Would have to deeply change the way the simulation works,
                    295:     but then would it still be fun?
                    296: 
                    297:   Zone ownership.
                    298:     Develop Micropolis into a more Monopoly-like game: SimCitopoly.
                    299:     A player can own power plants and other utilities, and makes money
                    300:     by selling electricity and other services to other players. 
                    301:     Zones don't develop until someone buys them.
                    302:     Own residential => collect rent, pay maintainence. 
                    303:     Own industrial, commercial => collect income, pay expenses.
                    304:     All zone owners pay taxes.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.