Of those who have ever played dwarf fortress, that was probably the worst example of user experience with a game’s controls and info content. Many people, myself included, while loving the game concept cannot get into it because the user interface is terribly confusing. There are 2 hour long tutorials on YouTube, and a whole starter pack of external cheat engine-like programs dwarf fortress players switch to to play the game, like the psychologist which lets you see dwarf skills and assign tasks to them. This is the worst example I’ve encountered; while dwarf fortress is amazing, it would gain a lot more traction from being more user friendly.
Gnomoria and rimworld are other ‘kingdom’ games, as I like to call them. They have tried to put some semblance of order into the controls. I’ve played both of these so I’m pretty good at not thinking about the controls. However, considering how much you can do in a game like this the GUI is not perfect in these games either.
Often in rimworld I forget which categories items are in. I have to switch between assignments and individual character information by clicking icons in other sections of the screen, too.
Gnomoria is even a little worse. I love gnomoria foremost, but for some reason it has a right click menu as well as a hotkey bar, and deeply nested commands. I also have a tendency of forgetting or going into wrong categories to find things (A well is a workshop?).
While these problems could maybe be fixed with enough tweaking; what a damned headache this all is.
So what then?
Back when I was a kid I ran into this nifty little tool for windows for the lazy. It was called Launchy. The way Launchy worked is you press its hotkey and an input box would pop up, into which you type whatever you were looking for and it finds it super quickly even if you didn’t finish typing. This tool boasted that it beats having desktop icons. I used it for a bit, but the reality is I like organising my desktop icons.
For a kingdom game with many objects to interact with and many commands to possibly execute on various different types of specific objects, something like Launchy seems like a much better choice than even beginning to try to organize a nested hotkey bar.
Theorycrafting user experience for the lazy
- User needs to pick a selection (tiles, objects, entities)
- Launchy opens up with input box
- User types something
- Launchy sorts though actions that can be done on their selection
We still end up having nested categories in some areas, for example:
- Build > chair
- Zone > stockpile
- Assign profession > pick from custom professions
But other things get easier to find:
And some useless nested categories can be coalessed together, for example:
- Dig > floor slab, stairs up, stairs down, wall
- Build > well, carpentry workshop, woodworking workshop, bed, floor slab, door, flower pot
Because everything is searchable things can be logically ordered and the list could be unimagably long without effecting usability in a detrimental way.
But wait, this is a lot of typing!
Yes and no. Pinnable of Launchy was that it would search as you type, so partially complete words counted. As well we could easily display a list of previously/most recently and most used items and the top one wins unless the user proves it wrong.
- Global most used words counter, for every level of commands in launchy
- Keep track of the last used word and put 100% weight on it in case of user immediate re-use
The selection stage should also allow you to, say, preplan your room boundaries and select build > wall for all of those tiles. Selection:
- Click activates launchy for that tile
- Click then shift click will select the area and activates launchy for those tiles
- Ctrl click adds/removes selection to launchy selection and updates launchy options
Or on mobile, this seems to be the best option:
- Tap activates launchy for that tile
- Tap then long tap will select the area and activates launchy for those tiles
- Tapping when launchy is activated adds/removes selection to launchy selection and updates launchy options
- Double tapping removes all selection
Of course this is just theory and I haven’t play tested it yet. But looks good in theory… Right?