]> cvs.zerfleddert.de Git - micropolis/blob - src/notes/MultiPlayerIdeas.txt
src/tclx/ucbsrc/makefile: Micropolis build fixes for recent macOS
[micropolis] / src / notes / MultiPlayerIdeas.txt
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.
Impressum, Datenschutz