Thursday, September 15, 2011

HCI Design: Continuity and Logarithms

Two things that are still very, very newish in UIs are continuous transitions (images actually growing and shrinking instead of appearing and disappearing) and logarithmic progressions. I mention them together because they combine. Or rather, they MUST BE combined.

Linear progressions suck. When you're not given the option of fast-forwarding videos, that sucks worst of all. But when you're only given a linear progression of speeds (2x, 3x, 4x) then it sucks almost as badly. The human senses are ALL based around logarithms so linear progressions make no sense at all.

In the game Myth, the speed controls were 2x, 4x, 8x, 16x. But then, Myth had *outstanding* camera controls as proved by the 'orbit camera around a central point just in front of the camera' commands which felt very different and were just as useful as panning left and right, and usually more so. Both were available because each was used in different contexts (3rd person rather than 1st person). Another example of its great design was that the game cached landscape separately so it never loaded it off the CD again just to restart a scenario.

Speaking of restarting missions, in the game Sacrifice, which sucked as a game by the way because there was no point to any of the sophisticated tactics, strategies or formations it provided. Well, that game was presented in the format of a storytelling narrator. And every time you died and chose to restart, the narrator would say "but that's not what REALLY happened".

Getting back to logarithms, another place where you should be able to find them but don't is so-called "scroll bars" except there shouldn't be any scroll bars, there should be sequence bars with excerpts at each point so you know where you're going. Scroll bars as they are are just a stupid interface artifact. They are completely meaningless and don't relate AT ALL to the objects or contents under scrutiny. The problem with navigating through a sequence of excerpts is of course that programmers are moronic linear thinkers and would never think of making them logarithmic. And linear excerpt bars are totally unusable.

Logarithms are ridiculously important. Their importance can't be overstated. And they are a GREAT way to solve all timing issues. Just stick a logarithm and differently sized objects will not only be presented quickly but *consistently*. If you used a linear scale, presenting the biggest objects would try the users' patience. And if you used constant presentations then there would be no sense of scale at all. The little miniatures you get in Opera browser when you hover a mouse over the tabs are all constant, providing no sense of the size of the pages. And hovering between them, there is not just the issue of the size of the miniatures, but also the speed of the transition between the current tab (which is just a URL text) and other tabs (full images). The shrinking/growing between them has obviously been manually adjusted.

Logarithms are a great way to universalize and automate all sorts of presentation and timing issues. So you create general, flexible and resilient systems rather than ad hoc brittle specialized, un-reusable hand-tuned crap. My advice is to fall in love with them. :)