Page 1 of 1
Introducing hierarchical menues (for objects/stations)
Posted: 29 Mar 2012 09:46
by michael blunck
newgrf specs wrote:
Class labels are unique identifiers composed of the letters A-Z and/or the numbers 0-9, analoguous to station class labels. Their main use is to combine objects into classes and make them available by the top dropdown list in the object construction window.
When coding a lot of objects recently, I got the idea of "hierarchical menues". I.e., a method to allow to classify objects more specifically as it is possible with today´s "flat" menu scheme.
This could be implemented by a new object property "parent class" which would be void for the top layer of object classes, and the feature would only affect the menu display, w/o any other impact on the game.
In addition, another idea would be to introduce a concept of "links" which would make available objects from one class (or sub-class) in other classes (or sub-classes) inside the menu.
regards
Michael
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 10:06
by FooBar
I may have some use for this hierarchy myself, but I'm a bit reserved as it will involve even more clicks to reach a certain object I fear. But an additional sub-level is useful in some cases.
Question: should this be limited to only one additional layer (easier implementation-wise), or should we go the whole nine yards and allow an infinite so to say "folder structure"? If a folder structure, then this probably also requires a different method of browsing these folders (much like the advanced settings tree), rather than the current selection list. For two layers only one could get away with the current GUI, showing the sub-classes of a root element when a root level is clicked, with an added "level up" button to go back to the list of root classes.
What would help on top of this is the GUI remembering the last object used, and showing that when reopening the object window.
As for "links": yes, I have some uses for those too

Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 10:40
by Hyronymus
FooBar wrote:I may have some use for this hierarchy myself, but I'm a bit reserved as it will involve even more clicks to reach a certain object I fear. But an additional sub-level is useful in some cases.
Can clicking become obsolete by making menus fold out when hovering over a menu?
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 10:58
by wallyweb
michael blunck wrote:When coding a lot of objects recently, I got the idea of "hierarchical menues". I.e., a method to allow to classify objects more specifically as it is possible with today´s "flat" menu scheme.
I like this suggestion. With two large newobject projects in the works, I can see a definite use for this.
This could be implemented by a new object property "parent class" which would be void for the top layer of object classes, and the feature would only affect the menu display, w/o any other impact on the game.
In addition, another idea would be to introduce a concept of "links" which would make available objects from one class (or sub-class) in other classes (or sub-classes) inside the menu.
I have just one question. I am currently able to code one newobject grf that works seamlessly in both OTTD and TTDP. Without the ability to update TTDP, would this be an "OTTD only" feature that would result in a grf not working under TTDP?
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 11:56
by Eddi
Hyronymus wrote:FooBar wrote:I may have some use for this hierarchy myself, but I'm a bit reserved as it will involve even more clicks to reach a certain object I fear. But an additional sub-level is useful in some cases.
Can clicking become obsolete by making menus fold out when hovering over a menu?
that would certainly annoy the hell out of me...
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 12:05
by planetmaker
wallyweb wrote:
I have just one question. I am currently able to code one newobject grf that works seamlessly in both OTTD and TTDP. Without the ability to update TTDP, would this be an "OTTD only" feature that would result in a grf not working under TTDP?
Likely you could still use that NewGRF with TTDPatch as it looks like a feature which means introducing a new property - but of course this feature would be unavailable on TTDP and you'd have to conditionally skip this there.
But personally I'm with Eddi about the annoyance factor of self-unfolding menus via hover. tbh, I'm also skeptical about hirachical object menu with many sub-menus while I like the idea of linking objects also into other categories and remembering the last opened category.
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 12:31
by michael blunck
planetmaker wrote:
tbh, I'm also skeptical about hirachical object menu with many sub-menus while I like the idea of linking objects also into other categories and remembering the last opened category.
Well, the number of sub-menues would depend on the intelligence of the newGRF coder, it´s not that it´d be enforced on them. Ease of use could be much better with two or three sub-menues, than having all the classes in one long list.
regards
Michael
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 13:04
by planetmaker
michael blunck wrote:planetmaker wrote:
tbh, I'm also skeptical about hirachical object menu with many sub-menus while I like the idea of linking objects also into other categories and remembering the last opened category.
Well, the number of sub-menues would depend on the intelligence of the newGRF coder, it´s not that it´d be enforced on them. Ease of use could be much better with two or three sub-menues, than having all the classes in one long list.
regards
Michael
Maybe. Care to sketch a concept how it should look like in the GUI so that things can still be easily accessed and found?
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 13:18
by FooBar
I have one in my head, just no sketching materials available at the moment.
Basic idea (maybe it inspires someone else to do some sketching):
- three vertical columns
- left column: a collapsible/expandable folder structure, like in your average operating system file explorer, similar to the advanced settings hierarchy.
- middle column: shows all objects in this (sub)class. Identical to the right side of the current window.
- right column: object view selection and object information. Identical to the left side of the current window (except the class list).
- with this, object selection works from left to right: class, object, view. And then placing the object on the map of course!
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 13:25
by Eddi
just to make sure we're talking about the same thing (using stations here as example, because i have no experience with objects)
a hierarchy could look like this:
Code: Select all
Stations
|- Default Station
| * Default Station
| * Buffer Stop (north)
| * Buffer Stop (south)
|- Passenger Stations
| |- Platforms
| | * Platform
| | * Roof
| | * Large Hall
| | * Modern Glass Roof
| |- Old Station Buildings
| | * [link] Platform
| | * [link] Roof
| | * Building 1
| | * Building 2
| | * Building n
| |- Modern Station Buildings
| * [link] Platform
| * [link] Modern Glass Roof
| * Building 1
| * Building 2
| * Building n
|- Cargo Stations
|- Platforms
| * Empty
| * High
|- Mineral Station
| * Mineral Station (drag&drop)
| * [link] Empty
| * Pile with track
| * Pile without track
|- Farm Station
| * Farm Station (drag&drop)
| * [link] High
| * Livestock holding areas
|- (...)
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 13:47
by michael blunck
Eddi wrote:just to make sure we're talking about the same thing [...]
a hierarchy could look like this: [...]
Exact.
regards
Michael
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 17:02
by andythenorth
Hierarchical menus often have poor usability characteristics.
(This is an assertion, but I could dig up some evidence

)
This might be a non-issue, or the least-worst option. Just mentioning it.
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 17:28
by frosch
Collapsing and expanding a tree is not exactly nice when you want to switch between stuff from different subtrees.
So, just to state an alternative approach which many applications use:
Put everything in one list, but add a filter to quickly create a list of stuff with some common keyword (e.g. like the Content Download window). Then you could filter for stuff like
- station (show station related stuff)
- freight (show freight related stuff)
- brick (show bricky looking stuff)
- plants (show vegatable stuff)
- ...
Obviously this allows selecting the same object using completely different criterions.
While such a filter feels weird for a game GUI, imo the same holds for a tree
(The source of the keywords could be just searching in some "additional purchase list text" provided by some CB)
Re: Introducing hierarchical menues (for objects)
Posted: 29 Mar 2012 18:15
by FooBar
This is the basic idea I had in mind:

- Untitled-1.png (12.55 KiB) Viewed 3272 times
Preferably, the tree state should also be remembered on closing and reopening of the window. When opening the window for the first time, the tree can be fully expanded to show the player what's in store.
I don't think it needs further explanation, but just to be sure: when selecting a class in the tree, the bit in the middle will show the objects in that class. Clicking an object will then show the available views at the right, together with name and description.
For station, the left and middle can remain the same. The right part will then be stations-specific, with number of platforms, accepts/supplies, etc.
Re: Introducing hierarchical menues (for objects)
Posted: 30 Mar 2012 06:30
by andythenorth
I could post a mockup based on other contexts, for example, finding a song in an MP3 player with 5,000 songs available. You could have equivalent tree with categories etc, and some MP3 players probably do. A filter does this better.
http://www.interaction-patterns.org/wiki/Live_Filter
I could argue further, but it's already done in the newgrf download and selection guis, which could equivalently have been big trees, but use a text filter.
The 'problem' with doing it for stations and objects is knowing what to type for the text filter....
Re: Introducing hierarchical menues (for objects)
Posted: 30 Mar 2012 07:15
by michael blunck
andythenorth wrote:
[...] The 'problem' with doing it for stations and objects is knowing what to type for the text filter....
Exactly that´s why I have reservations w/r to "filters" in this particular context were we won´t have large trees to search, given the limited number of object/station IDs available in-game.
regards
Michael
Re: Introducing hierarchical menues (for objects)
Posted: 04 Jan 2013 16:25
by michael blunck
While continuing work on NewStations, I´d like to re-iterate
my proposal of "symbolic links" to station/object types from foreign classes. Especially for stations, their classes might have many features in common, like empty track, buffers, fences, crossings, ..., and with the current "flat" building menu, there´s really too much messing around with switching classes.
This "class label link list" could be defined in the same way as the rail type label lists are, i.e.:
stations:
objects:
regards
Michael