Home
  • Home
  • About
  • FAQ
  • News
  • Articles
  • Forums
  • Contribute

Article Categories

Cities Unlimited
Core Ideas
Design Principles
Drawing Board
Funding
Miscellaneous
Structure

Member Login

Login/Register
What is OpenID?
  • Log in using OpenID
  • Cancel OpenID login
  • Create new account
  • Request new password

Newsletter

Have the latest news and updates about the Metropolis Project delivered to your email address!

Previous issues
Syndicate content
Home » Forums » Game Design

Option Trees for Roads, Zones, and Objects

Submitted by John on Fri, 12/03/2010 - 13:12

In today's addition to the Drawing Board series (which incidentally, I decided to stop numbering; I have a ton of ideas for these articles, and I think it will get a bit unwieldy to be writing "Drawing Board XXXVII" before every title) I want to look in more detail at a feature which I touched on briefly back in my article about accessibility: a system for creating and editing presets for roads. But rather than just being limited to roads, I think this same system can also be applied to other network types, and even to zones, parks, and any other kind of object in the game. I call this system "option trees", as it mainly consists of a nested series of options (either number values, on/off toggles, or selectable line items.) As I mentioned in the Accessibility article, there is nothing particularly revolutionary about option trees, but they have the potential to add depth and power to the UI while retaining a high ease of use. But before I get started, the Disclaimer:


IMPORTANT DISCLAIMER

This series of posts are not to be read as "official" ideas for the Metropolis Project, they are simply my personal thoughts about what some cool game features might be.  The final feature set for the game will be decided by the community and the development team contracted to build the game, and may not include any of these things. More details about the purpose of the Drawing Board articles can be found here.


To begin, here's a brief reminder of what an option tree is (taking roads as an example.) Selecting a road tool would open a dialog somewhere on the screen, showing options for that particular road: width, number of lanes, surface material, elevation, sidewalk width, lighting, etc. I call it an option "tree" because it would present these options hierarchically. For example, a user could toggle an option for streetlights; if left unchecked, this would show no further information, but if selected it would reveal a further set of options for different types of streetlight. Those types, in turn could have different settings like height, color, etc. By nesting options this way, it's possible to add as much granularity to the appearance and function of the road as desired.

Roads Menu
Player-created presets could be added to the menu along with standard options.

If this sounds fairly complicated, or likely to appeal only to the most detail-oriented of players, well, it is. That's why, to keep it manageable for the average player, it must be combined with two other features: a user-editable system of presets, and a clear and intuitive UI. Presets would simply be a selection of commonly-used options, roughly corresponding to the Sim City 4 paradigm (street, road, avenue, highway, etc.) These would be presented in the UI as the default road options; a user could select and use one of them without ever seeing the option tree.

By digging deeper into the presets system though, players would have a range of powerful options. First, all the default presets would be editable; If a player simply wanted to change the color of the line markings on the default road, they could easily do so by opening the option tree for the "road" preset and changing the appropriate setting. But beyond this, players should be able to create and save their own presets: next to the default road options would be a "custom" road tool, which would not only allow the player to build a road type from scratch by going through the options tree, but to name that road type, save it for future use, and add it to the default road menu alongside the other presets.

To make presets even more flexible, the presets could follow a global hierarchy within the game itself. That is, a set of global tool presets for any new game you start could exist, and be editable, outside of the actual game, whether in the menu options or in a completely separate configuration utility. Changes to those presets in-game could either be saved to the global settting, or as a local setting for that particular game. Newly created custom types would work the same way: you could save them for use only in that particular city or game, or globally for reuse in other scenarios.

Example Option Tree
An example of how an option tree for a custom road type might look.

One last feature about option trees is that they should (at least for some options) be editable post facto. In other words, it should be possible to change some properties of a road after laying it down. This would prevent the crude and unrealistic paradigm that exists in many city sims now, where "upgrading" a road means bulldozing the entire thing and building a new one; If a player wanted to, for example, add streetlights, they should be able to open the option tree for a selection of roads and toggle the "streetlights" option (at some cost, of course!)

Some of the potential options might be:

  • Width: Either total width, or per lane.
  • Number of lanes: With a function to specify how many for each direction.
  • Surface: Dirt, gravel, or different types of pavement.
  • Elevation: A sub-tree of options for height, structure type, etc. would become available if the road was elevated.
  • Drainage: Adding ditches or storm drains would cost more (or make the road more unsafe, perhaps, in the case of ditches) but raise throughput for cities with high rainfall.
  • Streetlights: Various designs with varying luminosity would cost more but add to the safety rating.
  • Sidewalks: Would be more expensive and take up more space, but would encourage pedestrian traffic and add to safety.
  • Bike Lanes: A similar tradeoff to sidewalks, but with the effect of encouraging bike traffic.
  • On-street parking: Would increase congestion but bring in revenue from permits, meters, and tickets.
  • Benches: Increase aesthetic rating and encourage foot traffic.
  • Intersections: Intersections would have their own substantial sub-tree, with options for stoplights, crosswalks, turn lanes, etc. editable on a global or individual basis.

While I've been mainly talking about roads thus far, almost any game object could use exactly the same system to define presets and allow for granular control: Railroads could be set for certain types of train (passenger, freight, light rail); Bridges could be selected by structure, material, number of lanes, allowed traffic, and toll/free; Parks could be set for tree density, footpath coverage, and facilities. Even the base zoning tool could follow the same paradigm: a zone could be set to a base type like residential or commercial (or more than one, to allow mixed-use) and within those categories have a wide range of options like allowed building height, resident density, etc.

A system like this would need to find a balance between a healthy number of base types and a reasonably lean option tree (For example, by adding an option for "allowed vehicle types" to the road option tree, you could combine bike paths and foot paths into the same base type as roads and highways; but you risk an overwhelmingly large option tree for that one type.) Not only would a system like this give the developers a solid framework for adding a large number of features, modders would have an easy way to improve and expand on the default menu choices. All in all, I think that this would add enormous power and flexibility to the game interface.

  • Email this page
  • Drawing Board
  • Game Design

5 reponses to "Option Trees for Roads, Zones, and Objects"

1. About bridges: Since most

Submitted by Guest on Fri, 12/03/2010 - 19:28.

About bridges: Since most bridges (irl) are usually specially designed for the situation in which they are in, how do you do them? Could it be that the bridge is designed much like a road, but the architecture is completely different on every bridge. But how? Either some sort of option-tree for architecture or maybe a placeholder for a 3d model style thing which gets loaded whenever the user either chooses a community made one, or models their own. I dont know? Just an idea

  • reply

2. Well, I would recommend for

Submitted by AzemOcram on Sat, 12/04/2010 - 15:45.

Well, I would recommend for roads to have Country Road (could be dirt or gravel), street, road, divided avenue, and expressway (would be like an avenue without a median). Then for highways there could be rural highway (fences in the middle, different texture), major highway (Jersey walls), and one way highway (so each direction is separated). I, as a player, would use the custom tool to make alleys.

For bridges, I would recommend a couple of different types depending on how the road is built. Straight highways could use a suspension bridge as the primary type with others possible while curved highways would need to use cable stayed. To add variety there could be a couple different styles of each type of bridge and the texture or color could be changed.

"Words are words; explanations are explanations, promises are promises, but only performance is reality."
Always do your best and you will always be better than the best in my eyes.

  • reply

3. Yeah, bridges are pretty

Submitted by John on Mon, 12/06/2010 - 12:22.

Yeah, bridges are pretty tricky; if you wanted to do option trees similar to what I envision for roads, it would be hard to have custom architecture that could adjust to match the specifications (if, say, you wanted to make an odd number of lanes, or a bike path, or an elevated rail line running alongside the road lanes). Still, I think its possible, at least to some degree. Certainly I think there'll need to be a specific bridge tool, as in CXL.

About the default road types, I would actually go with even fewer than what AzemOcram mentioned: just road, avenue and highway. I think players of this kind of game fall roughly into one of two groups, one of which will never use more than that, and one of which will have twenty custom types of their own before they lay a single meter.

Good point about the separated highway, too, that's something I hadn't thought of; I wonder if some kind of mechanic to "link" the two parts together conceptually would be necessary, or if you could get the same effect just by splitting off a single highway into two separate one-way roads.

  • reply

4. City roads are expensive.

Submitted by AzemOcram on Sun, 12/19/2010 - 13:06.

City roads are expensive. There needs to be a cheaper transportation option for zoning cheap zones (like low density or farms). I vote to either have the data for my road options or a way to generate icons for custom roads.

"Words are words; explanations are explanations, promises are promises, but only performance is reality."
Always do your best and you will always be better than the best in my eyes.

  • reply

5. Yeah, dirt roads would

Submitted by John on Mon, 12/20/2010 - 14:16.

Yeah, dirt roads would probably be next on the list of default options. It would be pretty trivial to set up more or fewer defaults if the custom tool works properly.

  • reply

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <img> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

Recent Forum Posts

  • Suspension
  • SEE THIS RIGHT NOW!!
  • Sim City 5: Finally Coming, In 2013
  • Sim City 5 Rumors Afoot (Again)
  • Drawing Board II: Building Speed
more

Who's online

There are currently 0 users and 1 guest online.
  • Background
  • Charter
  • Contact
  • Donate