March 15, 2010
The Good, the Bad, The Ugly and the Odd
Linden Lab released the first wide beta of the 2.0 viewer a few weeks ago. I’ve been using the beta as my primary viewer since then. I don’t think you can fairly make sense of a new user interface through a hit and run experience. What is my impression? Well, it’s a work in progress. There is much to like. There is some to dislike, one or two things which are really bad, and a range of things which make you scratch your head and go “How on earth did that end up in a user interface?”
As I stressed in my previous note about the client, this is BETA code. The reason one does a beta is to find problems when you think you’re getting close to what you want. With user interface code, this means actually getting it in the hands of real users and then seeing how they manage. So, one assumes this isn’t the fully baked version that will be 2.0. At the same time, it’s close enough to what Linden is likely to ship that its worth some serious critique about the parts which are broken.
This post represents my personal experience and my personal reaction. User interface is a mater of taste. Tastes vary, so you may not agree with some or possibly all of my specific issues. I welcome feedback and other people’s insights.
After a quick overall impression, I’m going to proceed to highlight a series of themed issues. I’m then going to list off a collection of specific smaller issues, and finally close with some suggestions on how to improve the user’s experiences with the client.
This entire post is intended to be constructive. User interface building is hard. Changing a large body of code is hard. There is a lot of potential in the 2.0 client. There are also a lot of rough edges. I hope this posts highlights some of the rough edges, and more importantly, offers some suggestions to smooth them off.
I like the basic approach. While Second Life isn’t the web and has some very different user interface challenges, starting new users with an environment which looks like one they know fairly well is clever. In many ways, this is both a strength and a weakness of the approach. Its strong when the metaphor works and in particular, when the client acts in ways which make sense to people who are familiar with web browsers. Looking like a web browsers works quite badly when the client looks like a web browser but doesn’t do what you expect of a web browser. It works even less well, when you say to yourself “Well, heck, it could do it in the obvious way.”
The “web like” framing metaphor is a starting point. Unlike a web browser, the Second Life Client actually is a set of tools for a number of very different tasks. The core task of the client is to immerse the user in the virtual world. This doesn’t simply mean showing the world. It also means making it easy to interact with the world. This has several parts. First, making it easy to do tasks you need to do, second doing so in a minimally obtrusive fashion. Third, not hiding information which aids immersion from the user.
A good user interface needs to present information in an attractive and consistent fashion. It should also do so in a fashion which accommodates people on a variety of screen sizes and users with a variety of visual challenges. The current user interface as presented in the 2.0 beta fails this test in significant ways. Good interfaces don’t waste space. The beta client often has acres of space which is unused while cramming elements into tiny spaces.
Good user interfaces try to avoid “modal” behavior, where things behave differently based on where you are in the interface. The 2.0 interface is modal in a number of frustrating ways. The Camera widget is painfully modal, requiring clicks to change the effect of clicking on the arrows within the widget. The Audio controls are obscure in similar ways.
The right hand dock
One of the major new elements in the 2.0 beta is the right hand dock. One stop shopping for a lot of information? Perhaps. But at the moment its also a highly modal tangle of user interface elements. The tab slides away to clean up the screen while holding context, which is nice. But, the tab can’t be resized, nor can it be torn off. This means that all the uses of the tab are forced to share a vertical format. It also means that you get to see one, and only one type of information in the client at a time. You can’t see your friends list while browsing a profile. You can’t see nearby people while looking at notices. You can’t use the inventory at the same time as seeing any of the above information. (You can, oddly, pop up the old 1.23 style inventory floater, if you know the obscure keystrokes, but all the other elements are pinned into the modal dock.)
Making the dock unsizable makes it painfully hard to use nested inventory folders, as you’re never able to see all of the names of nested folders without constant mouse motion. Making the dock modal means you end up constantly clicking between things in the dock and losing any context you had in a task. Making the dock handle so many type of information leads to odd little left and right arrows which hide and expose other information.
Notifications are a promising element, but they don’t quite work. For one, the things being shoved into the notification box are of several types. Some are group notices. These are rarely items you need to address in a hurry. Mixed in are events from scripts, teleport offers, texture offers and online/offline status updates. online/offline updates are especially bizarre. They go away without a trace. If you are not at your screen, you will miss them. They do not go to the chat history, they do not go to the IM history they are gone.
Mixing real time and notice style IMs in one play is awkward. Its easy to mistake the one for the other. Having that space combined with the sometimes redundant, sometimes needed IM popups is also remarkably busy.
The notifications are small by default . On top of this, every single one begins “topic:” Using up 7 characters in an already too small field is simply adding insult to injury. You can resize (and even tear off) the notification cluster, but it chews up space, and you soon get into scrolling even so. Even if you expand notifications to the point there is extra space, you still need to click through them to the popup to actually get the full content.
The “This group has traffic” chiclets rapidly end up with a hard to notice scroll bar and useful element out of sight. Yes, you can resize and float these, but again, it tends to end up with scrolling and active window management.
Chat, IM context switching and all that jazz
The 2.0 beta separates chat from IM (both group and private) This leads to two totally disjoint text steams and two separate input areas. In my personal use, this is very frustrating. I am often (almost always when I’m in a public space) using both IMs and chat. Often to people in the same space. Public chat for the social conversation in the space, IM for a quiet word with a friend to share a thought or insight. Group IM, because a relevant topic has come up. Having the two streams fully disjointed means I need to hop between two input areas. The ability to merge the streams in the 1.23 client is sorely missed.
For added frustration, there is a quick keyboard shortcut to the local chat area (enter will do if you’re not in an input area, escape, followed by enter if you are) I haven’t found one to take you back to the conversation box. Flipping the mouse back and forth is tedious. For added difficulty, the very hard to notice update of IM tabs while you’re looking at text chat makes it very easy to totally miss someone speaking to you in IM.
To Link, or Not to Link
The beta is very inconsistent about what’s a “link.” This breaks the metaphor of a web client approach in a number of frustrating ways. In a lot of places where you could just have a link there is a TINY little (i) which you can click. Most of these lead to an odd intermediate visual element and clicks there take you to the information you want. If this is a web like client, the model for links is well understood. You make the element that comprises a link visually distinguished, and clicking on it takes you to the information. Web browsers rarely have little tiny icons you have to locate and then click.
The intermediate element approach shows up in a lot of places. See someone’s name in chat? You get this odd “not a profile” not a link thing. Touch one of the notification chiclets,and you get a new thing, where most likely you can finally click what you want. Hover an item, and you get a very lightweight info box, which is far less informative than the 1.23 style hovertip. Again, you get to click that if you want the real information about the item. If the Lab is concerned that the current hovertips are too complex for beginning users, make level of detail a choice.
Windows/Floaters land all over the place
When you close a floater/window in the current 2.0 beta, its destination ranges from stacking up in very transparent boxes on the upper left, to docking with the bottom chat bar to just vanishing. How you restore a window you had up is equally variable. You can tear off both the notify stack and the conversation update stack, and they dock back to the bottom. This is a lot of places for windows to be going. If you do tear off the two notify/conversation update windows, they no longer re-arrange when you open and close the right side dock.
A ton of digital ink has been splashed on search. The current 2.0 beta search tool fails in almost every way imaginable. On head to head tests, the previous interface requires fewer clicks, finds far more material in a direct and accurate fashion and doesn’t require trying to speak directly to the underlying search code for simple searches. Event searches spanning multiple days don’t work. Avatar and group searches where the names include common terms require horrible contortions to avoid getting off topic results. The top search field is almost entirely useless. Almost every search entered there leads to slogging through the full search interface.
Just plain unattractive
Profiles, Profile Pictures and the whole use of the right hand dock to present these elements in the current beta is just a mess. The profile has historically been an important element in connecting users. Looking at people’s profiles in social settings is a routine behavior of many residents. In the 1.23 client, profile information is presented in a floater, with significantly more text in each element displayed. The way picks and classifieds are presented is especially well worked out. Each pick stands on its own with a picture, text and location. In the beta, The profile is mashed into a smaller space. The primary profile picture competes with the First life picture for screen real estate, shrinking both to postage stamp size. The text for both is truncated, requiring clicking more to see it and then hiding other parts of the profile. Putting both first life and second life profile components side by side makes each seem less important. The phrase “real life” muddies the water significantly, especially as there is no actual validation of any of the real life information.
Groups are shoved into a list of links flowed into a very hard to read hodge podge. If you click on a group to see what it’s about, you don’t get a floater, instead the profile is overlayed by the group information. At this point, clicking back takes you to… Umm. The friend’s list. Exploring a persons profile groups is remarkably painful.
Picks are similarly mangled. Tiny postage stamp photos, “more” buttons hiding most of people’s text, and painfully small fonts. Classifeds get the same treatment, with a small entry at the bottom of the screen to clue you into their existence. Picks and classifieds retain a link to a location. You might expect this to be a clickable field. It is not. You cannot click it. You cannot drag it to your landmarks or the favorites bar. This is a direct violation of the web metaphor. In most web browsers, you can click on a link, and drag it directly to anyplace which takes a link and saves it.
The admittedly quirky interests tab is gone. This sort of puzzles, as Second Life is actually actively promoting Europe and other places where English isn’t the customary language, and yet the place in the profile letting people know which languages you speak has been removed.
Shoving profiles into the sidebar also eliminates the possibility of having more than one profile visible at a time. This is a real annoyance when talking to multiple people. It also eliminates looking at your friends list while looking at a profile. I routinely stack up several profiles of people I’ve talked to, or content creators who’s content I’ve noticed to one side in the client. Removing this ability requires me to pause and copy/past or otherwise manage content, rather than letting the client for me. Again, being able to drag “links” would help here.
Ugly and Odd, point by point
This section enumerates bits of poor fit and finish. Some of these issues look like bugs/poor implementation of good ideas. Some of them look like more serious design choice issues. For each I’ll try to explain my concern and tie it to one of the themes from above.
Close, Minimize, Dock or whatever
When you have several windows up in the beta, you will be faced with a lovely selection of icons to dismiss a window. Some things have tiny little circular (x) tags. Some have more traditional boxed [x] elements. Some have little “_” elements which minimize them. Two almost identical items, the Conversation float and the chat history share the same element, but use totally different hiding mechanisms, and require a different way to restore them. Ctrl-p brings UP the preferences tab. Ctrl-h beings up (and minimizes) the local chat history. NOTHING on the keyboard seems to bring up the conversation floater. Some things are dismissed within the right hand dock by little top arrow clicks. The History chat adds to the mix by having a special little down arrow icon which redocks it onto the bottom text input area.
This hodge podge is inconsistent. Users can’t learn what to look for, because the answer is different in most of the dialogs. User’s can’t develop a consistent expectation for keystrokes which bring windows up and down, because the answer is different for each type of dialog.
Cog or Plus or “advanced” or “right click” or…”More>>>” or “>>>”
The beta viewer has at least four ways and places to tweak things. A bunch of elements have little tiny “*” cogs on them. They show up at the bottom of the volume slider, the bottom of various bits of the right hand dock, and in the edit floaters at various times. They also can be found on the Inventory Floater. A number of elements have “+” icons which expose more functon. Some elements respond to right (context) clicks. In the graphic’s bit of the preferences profile we come across the “Advanced” button which exposes all the graphics tweakery which used to be revealed by clicking “custom” . This is dead next to the “hardware” button which pops up a seperate little floater.
Colors, Contrast and Size
Those with even slightly long memories will recall much unhappy howling when the labs reskinned the client a while ago. One of the loudest complaints was that the lab imposed a color scheme which was very low contrast, thus making it hard on older eyes, or those with visual challenges. The lab seems to have fully forgotten this outcry. The beta client is full of low contrast elements. My personal dislikes include the dark green on gray, and the extremely tiny links to groups in profiles. In general, the client feels as it it was primarily developed and tested on people with 30 inch displays, and 30 year old eyes. Running it on my 16 inch laptop with nearly 50 year old eyes, it becomes unreadable on a regular basis.
In the 1.23 client, an unfocused floater becomes transparent. Transparent floaters allow you to see more of the actual world. The 2.0 beta doesn’t include this feature. Because floaters are more obtrusive when unfocused, they can be lest around longer. The blocking effect of unfocused floaters leads to more clicking to minimize them, and then more clicking to return them when they are wanted again.
The Conversation box details
Tabs on the conversation box are just odd. No matter how much screen real estate is available they don’t show full group names. Nor do those tabs act as link elements. They also blink in an incredibly soft and easy to miss fashion and highlight new content very poorly (Having new content highlighted in an area far away which I need to click to see the details of is no help here at all. The fact that if you’re *in* a tab you get one behavior and not *in* a tab another is just bewildering. For the record if you left focus on a conversation box tab, you will not get any notice of the new content except for the actual text showing. The talk count on the bottom doesn’t go up and the window tab doesn’t highlight. If you focus away from SL and come back, you aren’t given any cue you should look other than the actual new content (if you can remember what was last said)
The “People” tab
The 1.23 “Contacts” list is sucked into the right hand dock. As mentioned above this means it keeps getting lost as you use the dock for other features. The list has lost its direct access to tick boxes for “see me”, “map me” and “modify my objects.” This makes managing these properties much harder, as you can no longer sort by them, nor quickly see them. These status bits are hidden, two clicks away, inside people’s profile, on the “status and notes” tab.
The people list displays twice, first as “Online” then again as “All” which you can sort multiple ways, through the odd cog control at the bottom of the tab. This is redundant, and only serves as a tease, showing how nice it might be to to put people in folders of the user’s choosing. Pretty much every IM client I use has folders I can manage. The lack of same in Second Life has been glaring for years. The added visual teaser here only highlights the absence.
The camera controls are wildly modal and deeply confusing. I almost never used them in the 1.23 client. I simply cannot use them in the 2.0 beta. Having to constantly click between pan, tilt and zoom is just baffling. Its modal in the very worst sense of modal.
First, the audio controls are hidden. The tiny little play and speaker icon are subtle beyond redemption. Second, I think they include the densest mix of overlapping elements in the entire new user interface. If you hover over the little speaker icon you get a little drop down master slider. If you click it, it mutes/un mutes the master volume. If you hover in the area you get a dark gray tiny bar with a button, a cog/tiny down triangle button and a “More>>” button which hovertips “Advanced controls” and gives you another complex little box. Viewer 2.0 adds a lot of added media context. Well and good, but this set of controls is massively more complicated than the 1.23 audio controls, dumps you to the middle of the preferences floater for some tasks and is diagonally across the screen from the voice controls. It is significantly harder to fine tune the mix of multiple speakers, background stream and sounds. The full up preferences screen us huge and much less useful than the previous small adjustment panel.
Making it better
Sort out the right hand dock
Fix the right hand dock. Make it sizable. Make it tear off. Don’t try to cram stuff into the straight jacket of a single fixed sized bar. Allow multiple torn off floaters of any item which is docked. Create a simple, consistent scheme by which they can be dismissed or minimized back to the dock. Make the dock a place where things start, but recognize that it has limits. You don’t see every sub-window in a browser inside a single sidebar — don’t do that in the client. Think about providing a simple pattern for people to pull content back to the dock and then off the screen. One possibility would be a button which would redock floaters, another to pull the dock in. Think about making the metaphor as consistent as possible. Don’t minimize windows into multiple separate places without a very good reason.
Sort out notifications
Fix notifications. Stop letting some information vanish without a trace. Lower the click count needed to do routine tasks with notifications. Figure out how to highlight realtime interactive notifications. Scripts wanting user input are very different from a notice of an event four hours or days in the future.
Fix the chat/IM separation. People use chat and IM at the same time. Forcing people to mouse between them breaks immersion and complicates everyone’s life.
Pick a single visual element for each major task, and make sure you use them consistently. Pick consistent keystroke behavior to match and make sure you can raise and dismiss stuff in a consistent and easy fashion.
Make hovertips match your metaphor and if you want very simple ones for beginning users, make the level of details and click through needed user controllable. Make context clicking available universally rather than in select places. Make the meaning of left click and right click consistent across all the client’s elements, and make that match common web client practice. The new context menus allow more information to be displayed. Take advantage of this to minimize the number of clicks needed to access information. If this feels like it may overwhelm new users, include an option to either consolidate or cascade advanced information.
Make the client visually friendly and accessible
Allow serious, easy skinning of color. Allow easy font adjustments. Package at least one high contrast scheme. Avoid tiny window controls. They are hard to see, they are hard to mouse over and they are a nightmare to describe to people. Follow the web metaphor and make “link” and “click” areas large and easy to spot. Allow hovertips on them to help cue people. Avoid effects which blink. Avoid things you cannot turn off which are likely to trigger migraines and worse. Run the client on laptops. Run it on small screens. Find some testers with older eyes. Find some testers with less than 20 20 vision. Make sure that its easy to spot key windows when new information is available. This may require customization so people can have as strong or light a cue as needed.
Avoid modal elements unless you have no choice
Modal elements are widely viewed as problematic in user interface design. The current viewer and the 2.0 beta are filled with them. As much as possible, ask whether they are making the user’s life better or worse. This is especially cogent in widgets like the camera controls. It is equally relevant in couplings between which tab is selected and what things do and don’t blink on other parts of the screen.
Revist widgets and block elements
Look hard at the various controls such as camera and moving. Simple is good. Modal is bad. Getting down to as few elements as possible is good, but not if it requires constant mouse motion to switch between modes. Really look at the bulkier dialog elements and floaters. Look at how many different metaphors and modes are in use and ask if that is useful.
Listen to the community and your users about search
It doesn’t work. Look at search in 1.23 and make sure that what replaces it works as well or better. Search is an important part of the process of connecting users to users, and users to events. Broken search is really bad. Its been said before. I’m saying it again. Find out how people are actually using search and figure out how to get them the same results or better. This is the base expectation. Taking away function is bad.
Make the web metaphor meaningful
Web browsers have a consistent pattern for links, hover tips and context menus. They have a consistent pattern for what you can drop/drag and where and why. The client ought to look at best practices in the major clients and follow them. Let people drag folders of bookmarks to the favorites bar. Make names and other elements real links, and make them behave that way. Two small examples. Dragging someone’s name out of chat to the people bar should generate a “friendship offer” and put it up for you to click send on. Dragging someone’s name out of chat or IM to a group ought to do the same in generating a group offer.
Worry about pretty
Make sure profiles, groups and the various things users see on a regular basis look pretty and polished. Pictures need to be big enough to see nicely. Text should be easy to read. Stuff which logically belongs together ought to stay together.Icons need to be big, pretty and consistent. Look at how other applications are doing these elements and emulate the pretty ones.
Second life is a very visual place. When the client frames rich 3d content in idiosyncratic, clunky visually obscuring ways, it breaks immersion and it creates a poor setting for users expecting a highly visual experience. Fit and finish matters a lot. Pretty matters a lot. Think about how to make elements unobtrusive when they are not in use. Transparency should be settable for all elements, including whether they fade at all, fade on loss of focus, and how far they fade.
There are things which seem to be simply impossible to do in the 2.0 client. You can’t search for who’s permitted to modify your objects or map you. With large friend’s lists, these become serious annoyances. The very rudimentary skinning available in 1.23 is missing. Hovertips don’t show up for a lot of items and the ones which do take you through another link to the full information, which still seems less than was in 1.23. Anything which simply can’t be done at all in 2.0 but can in 1.23 ought to be sorted out before the code is considered done.
The people tab hints at nested folders for your contacts, but doesn’t deliver, instead showing an odd redundant pair of lists. Fix thisand make it easy for people to manage contacts in ways which make sense to them.
There are a number of good ideas in the third party viewers which have not made it into 2.0 beta. quick access to Windlight presets is one of the biggest. There are a bunch of small but useful ideas to make it easier to tweak preferences without needing to visit the full preferences panel. The list goes on. The 2.0 team ought to be asking “Which of these belong in the mainline client?”
The 2.0 beta introduces a lot of new ideas. Some work, some don’t. The client is clearly among other tasks, aimed at improving first hour and new user experiences. The web client look helps with that, but the current fit and finish does not. I’ve offered one set of thoughts about what’s not working. I’ve tried to make this constructive and thoughtful. I look forward to seeing future versions of the 2.0 code. I don’t expect it all to get better at once. But.. At the moment, the sharp edges are all over the place. The ugly is pretty directly in front of people. Take the time to get the fit and finish right. Take the time to think through where you’ve over used new elements and where you don’t use them enough.