Annotation of micropolis/src/notes/MultiPlayerIdeas.txt, revision 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.