Showing posts with label user interface. Show all posts
Showing posts with label user interface. Show all posts

Tuesday, 27 December 2011

A small example of why programmers can't do UI design

The quiver is a user interface feature in later versions of Angband which allows you to carry multiple stacks of ammunition more easily, without having to dedicate one inventory slot to each different type of ammunition. As a part of this, it automatically assigns a number key to each stack, so you can select the first stack by pressing 0, the second stack by pressing 1 and so on...

Wait a sec.

The first stack by pressing 0?

Well, as it turns out, the quiver was designed by programmers, not UI designers. The problem here is that the character encoding used is ASCII, which assigns character codes for the numeric keys from 0 to 9, not from 1 to 0. So the elegant programming solution is to figure out the character code by subtracting the value for 0 from the actual number typed in to determine which number is used. This 'elegant' solution puts 0 first. Not only that, but for various reasons (e.g. array indexes) programmers are used to counting from 0.

This is despite the fact that every single person involved in the design of the quiver, the various reimplementations across multiple variants, and pretty much every single person who has played using the quiver has the number keys running across the top of their keyboard in the order 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.

Monday, 22 August 2011

Is user interface design holding roguelikes back?

I've been playing the excellent Cardinal Quest by Ido Yehieli and I can't recommend it strongly enough. You can download the demo from links at his site, read the IndieGames.com article about it and there's a great interview with Ido at True PC Gaming which outlines some of the challenges in designing an indie game.

While Cardinal Quest doesn't necessarily have the depth of some roguelikes - and isn't intended to, it has one outstanding feature, which I also praised Terraria for: amazing user interface design. Here's the first screen you see once you choose which class you'll play (click to see full size):
The user interface entirely describes what you can do in the game. There are keyboard shortcuts for every function you need to do but you don't need to look up help menus: everything is discoverable by mousing over it and a small pop-up reminds you of the key to use, as well as describing the item in the slot.

Not only that, but whenever you pick up an item, it automatically is placed in the correct slot if it is better than what you're already using, replacing any existing item which is converted to gold.

And perhaps best of all, the spell system has separate time outs on each spell, which are displayed by a clock ticking down effect which slowly highlights a slice of the spell icon as the spell recharges.

The user interface is so good, it has seriously forced me to reconsider my priorities in Unangband. I typically find other (non-Angband variant) roguelikes impenetrable because of the subtle but important differences in keyboard shortcuts which means I can't easily shift between games. But I had no problems at all with Cardinal Quest, I could start playing straight away and enjoy the progression of my little avatar (Down to level 8 first time).

With this and the success of Dungeons of Dredmor, I wonder how much the lack of attention to user interface typical of hobbyist and indie programmers has been holding roguelikes back. It's not just that of course: the verb-object model of using items - which has important properties for emergence - and the large number of items in a typical roguelike are also important, but most of those could be overcome by a smart redesign. I'm thinking about going through this process myself.