| 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. |