Category Archives: User Interface

Generally, when talking about the Fable series, I talk about the decisions you can make in any given game and how I find them horribly lacking, but today I'm going to avoid that whole can of worms and talk more about how disappointed I am in other aspects of Fable 3. Specifically, I'd like to talk about Fable 3's menu system.

Or, really, its lack of a menu system.

I haven't looked at reviews of the game yet, so I don't know what other people are saying about Fable 3's new immersive menuing, but regardless of whether or not game reviews or community at large likes it, I freaking hate it. In any game, I want a menu system to do three things for me:

Give me all the information I need to know

Present me that information in a clear manner

Allow me to get the most often referred to information quickly.

Fable 3 fails on all three counts.

Let's start with number 3, since here is where I feel Fable 3 is most egregious. Fable 3 is, first and for most, a quest driven RPG, and, as with any quest driven RPG, there are a few pieces of information I access repeatedly: my map, my quest list, and my advancement progress.

Advancement for your character is shown quickly and easily: any time I get experience, it shows me just how much experience I have and how much I can spend. It breaks immersion, but the information I need is there when I need it. Advancement for weapons, on the other hand, requires that I: press start, wait for a short load, walk to the weapons room (or, if I've been playing a while and know the shortcut, press left), wait for a short load, walk to my sword, press a to look at my sword, then press y to see my advancement on said sword. This is neither quick, not easy, and is actually fairly hidden from view. I didn't know you could even do this until playing the game for over 5 hours when I stumbled on it accidentally.

The quest list is even worse, specifically because changing quests is such a pain. Just to look at your active quests, you have to: press start, wait for a short load, walk to the map (there's no short cut key for this), press A to bring up the map, wait for a short transition, press Y to bring up your active quest list, select the quest you'd like to activate, press A to select it, press A to confirm it, then press X to fast travel to its closest location or B to not. This fast travel confirmation (and loading screen if you press X) occurs even if you are already in the same area as the quest. Again, this is neither quick, nor easy, AND I STILL couldn't find it until I stumbled on it accidentally. After 6 hours of play.

Then there's the map, which I've already described how to get to. However, what I didn't describe is how that map doesn't contain the single most important piece of information you can have in a semi-open world RPG: it doesn't show the player's current location in relation to everything else. Now, I can understand how that's more immersive, maybe, but it's a piece of information I want that doesn't actually spoil anything about the game.

I still can't find a way to gift things to friends without coming across their orb in the world. If there's a way, it's so well hidden as to be a useless feature.

The funny thing is, Fable 3's best UI comes through when it stops trying to be stupidly immersive for no reason and just gives you the information (like the player advancement). If they'd just thought for a minute about how often people access the map and quest lists in an RPG, they would have made start take you directly there, instead of requiring three clicks through.

Regardless of any advancements Fable 3 made mechanics wise, they're overshadowed for me by the terrible user interface design. I cringe any time I have to enter a menu in that game. About as much as I do when I hear anyone talk, but that's another post.

I really liked this presentation, and I think he's moving in the right direction for creating an identity system for service / website authentication and online identity management (which, if you've been paying attention, has been a huge concern of mine recently). The one thing I'm not hearing is the ability to manage multiple versions of my identity. Dick talks about how he's a Canadian and he lives here and has x, y, and z. But what he doesn't talk about is how to handle having 3 email addresses, 4 sets of contacts, a business calendar, a personal calendar, and 3 shared calendars.

So, Sxip is an excellent step forward. Now I can verify who I am to any site. Now the question is how do I verify portions of myself? How do I tell the site to work with only a subset of my information without having to manually select small parts of it? How do I log into the same site 3 times without using different browsers (looking at you Google)?

These are not simple questions, and they don't have simple answers. I think online identity management is going to be the number one issue of the next 10 years, and I'll be surprised if it's solved even then.

My friend (and Microsoft employee) Steve shared a video with me that is kind of a concept video for what Microsoft sees interfacing with computers will be like in 2019. The original post for the videos is located here and is really cool. Cool enough that I felt the need to comment on it, at least a little. In general, I think the concepts are pretty achievable, if not by Microsoft than at least by someone by 2019. The general concessions throughout the video are that the future of interaction is:

Very thin, multitouch screens and surfaces, that will be prevalent in every aspect of your life.

Lots of portable devices, with screens and without, that will automatically detect each other and react accordingly

Lots of systems that use digital paper or some form of digital paper.

I think most of this is achievable, but there are a few things that stand in their way, even for these assumptions. For the second point, you HAVE to have a better networking protocol than Windows Networking, and a better discovery system than Bluetooth. mDNS / DNS-SD may be a start, but I don't know of any good protocols that exist to automatically detect new devices in close proximity to each other, and what services they provide. That's the first problem that has to be solved, sooner rather than later. For the third part, you first have to make digital paper affordable. That's an issue, as it's out of reach for most consumers right now. Maybe by 2019 I'll eat my words, but I don't see it being economically feasible any time soon.

In addition, there are a few things I have to say look cool, but I don't see being in the future.

Right at the start of the film (at about 10 seconds in) the system recognizes that a girl has drawn a dog, and what's there acts like a dog. I'd be surprised if that's actually achievable for everyone's version of a dog, especially for a 10 year old's drawing. The ball part is realistic, but having the system recognize "dog" and "ball" and have them interact… that seems a little pie in the sky to me, and this is coming from a game developer. Let's face it, even Spore had to seriously limit their drawing capabilities to enable their procedural animation system.

At about 3:46, we see somewhere where identity management becomes an issue. Would it be awesome for me to just carry around a device that had all my meeting notes on it, and have it automatically detect a co-worker's computer, network to it, and show communication history on a set of projects? Certainly. And it's certainly possible. But what if I store personal things on that same keychain? Or conversations with other clients? I don't want the business table showing that. I don't want it reading it, or attempting to read it. I don't want to have to specify to the table right there "This is what you have access to." In some cases, I just want it to know. Identity management is a huge issue there, and no one's solved it, let alone Microsoft.

Starting at about 4:10, we have that digital paper problem. Not only is it inexpensive digital paper (I assume) but it's touch screen, foldable, networkable digital paper. This seems a little far fetched. I look forward to hardware companies proving me wrong.

Aside from these problems, much of what's there gets me excited about the future of interactivity. I certainly think the future will look similar to this, but I think the larger issues of identity and task management are far from solved, and more important than the flashy ability to point at a piece of information and drag it to your tablet. This type of interactivity is going to require a new way of looking at how we want to share information, with whom, and when. It's going to require a new look at how we group pieces of information (Mozilla Labs is actually more interesting in this respect) and how we use applications together in tasks, projects, etc. That's solvable now (in some cases) but even Windows 7 (as cool as it is) only begins to scratch the surface. In addition, this goes beyond the Office team, and should be looked at by Microsoft as a new initiative, to break free of the start menu, task bar, quick launch, etc. and start thinking about how all of their applications work together to form a meaningful whole in this fashion.

I'd love to be a part of this, but I work on games right now… and I don't see that changing soon.

So this post has nothing to do with games, and more to do with just real world usability of applications. It's a rant I've been talking to people about for a while, but I decided to get it up on my blog for people to discuss in the greater cloud of the web. Generally, the post is about the battle between Microsoft, Apple, Google and Open Source. Not from a doctrine perspective, but entirely from a usability perspective.

The Apple Approach

So, without a doubt, Apple has some of the best usability in the market. There are lots of reasons for this, but the one I want to focus on is their tight application integration. Apple products understand other apple products really well. Syncing an iPod or an iPhone through iTunes is ridiculously easy, because it's designed to be easy for 90% of the customer base. That's why people use it. And no other company can control the hardware and the software the way Apple can.

Then there's the other 10% of the customer base. People like me that would rather use other applications to sync their music collections to their iPod or iPhone. This is where Apple fails. In an attempt to make sure that you always use their software with their hardware, they've unnecessarily (and sometimes very purposefully) obfuscated the way an iPod sync works. Certainly, certain products can do it, but from my understanding these products have reverse engineered the iPod database, and this reverse engineering frequently breaks when Apple releases new versions of their firmware.

Now, Apple has a good reason for this. They want things to be as simple as possible for the 90% of people that own or want an iPod. But what they don't do is make it easy for the other 10% that want an iPod, but have use cases outside of the bounds of what they offer.

The iPod / iTunes integration is just one example, but Apple does this all the time. Very rarely does Apple offer a product that communicates in a standard way unless that standard is so ubiquitous that they have no other choice. So Apple is tightly integrated, with no loose coupling.

The Open Source Approach

Open Source has the opposite approach. Loosely couple everything and have the programmers sort it out. This means, a lot of the time, that the average user is completely screwed. Figuring out how to get two systems to talk to each other in the Open Source world generally requires some wicked voodoo magic. Everything understands everything else, but only if you're really careful and tell them where and how to contact each other.

Now, this is a blanket statement, and I know many applications have improved in the Open Source world concerning this, but the problem is that when you allow everything to communicate freely, you lose any possibility of creating a reasonable user interface that would have come about through two products having tight integration. It's great that every open source calendar product understands iCal, but if you can't get them to communicate easily, what's the point?

The Microsoft Approach

Now, Microsoft is interesting because it's schizophrenic when it comes to integration. Individual Microsoft products are tightly integrated with a strange variety of loose coupling (or at least have been in the past). Applications like Office, Windows Media Player, Visual Studio, and others, are very tightly integrated with themselves, and they offer the options for extension and integration with other applications, so long as you're working within a very tightly confined area that Microsoft has defined.

This is basically Microsoft's history: offer a lot of developer support and allow extensions for almost everything you do, but only so long as they're developing for your platform. Only in recent years has Microsoft opened their data exchange systems so that applications outside of the controlled Microsoft environment can potentially understand what's going on.

The problem is that outside of a single application, Microsoft doesn't integrate with itself at all, and depends on third parties to offer features that are prominently displayed in Apple software. Is this bad? Well, for the average user… absolutely. Say, for example, that I want to order a set a pictures from an album I've made in my favorite piece of photo software, or let's say I want to publish them online. This can easily be accomplished from both Microsoft's offering and Apple's offering. The problem is that Apple has an offering that it owns and prominently displays as an option. Microsoft, on the other hand, would allow you to sync to any number of picture website systems, but you'd have to do some searching. The average user can't be bothered with that, and even if they could, the number of options is way too overwhelming. The average user is more likely to get confused than actually published their pictures online.

In my opinion Microsoft's approach to letting 3rd parties integrate into (almost) any piece of software they make is the "better" option, as it encourages independent development. The problem is that it only really helps power users, and hurts their general interface design. So, with Microsoft, you don't get the benefits of either the tight integration or the loose coupling.

The Google Approach

Just when you though Microsoft was schizophrenic, along comes Google. Google boasts over 13 products that integrate with your Google account, and they… well sort of, kind of, not really integrate together. Mail allows me to look at my documents and calendar (through a Labs extension), as well as allows me to add information to my calendar by detecting information in emails. But the whole system feels very disjointed. More importantly, the communication protocol between the applications is proprietary and hidden (so far as I know).

Things become more interesting when you talk about the new G1. Here's a phone that's based on an open standard for communication between applications and wants them to behave like they're tightly integrated without using tight integration. But apparently the first thing the G1 does is force you to sign in with a Google account, something you can't change. What if I want that phone, but not a Google account? Really, what was the point there?

The problem with Google is that it offers a lot to users in weird chunks. There's no unifying vision like there is with Apple, and its developer support (at least for its applications) is spotty. So you don't get external extensions and you don't get tight integration. It's the interface of any given application that draws you in, but is anyone really happy with how it works beyond that?

The End All Problem

This all comes to a head in one way: the management of your multiple personalities. My name is Jeff, and I have 3 identities on the internet: Jeff as employee and co-founder of Orbus Gameworks, Jeff as an IGDA volunteer, Jeff as just me. In some places, I want to have access to all of these personalities at once (say on my phone). In some cases, I want to share just select information with other people. I want to share my business calendar with my business associates, for example, and I want to share my personal calendar with my friends. I want my phone to have access to all my business contacts and personal contacts, and sync them to the proper places, and I want my music to stream be able to sync to my home computer and maybe my work computer without issue.

The problem with tightly integrated software is that it either can't or doesn't understand this concept. You are you regardless of what you say. The problem with loosely integrated software is that you don't get the usability of power of integration. You have to play the game tight and loose. Tightly integrate across platforms and across communication lines while communicating via loose protocols that anyone can understand.

Will this ever happen? Who knows. The problem is that each company has to fight significant hurdles to make a tightly integrated, loosely communicative application suite. Apple has to open up communications and fight against their urge to make integrated suites. Microsoft has to integrate more, communicate more loosely, and become less schizophrenic when it comes to application design. Google has to decide what they're doing, and Open Source has to get some user interface designers (seriously guys, you're killing me). It's an uphill battle for everyone.

So, as promised, I have some NXE first impressions. I think it's pretty important to do these "First Impressions" posts, because I think that the success of failure of an interface can really be determined by its first impressions. Once people get used to an interface, they start to forgive some of its failings, and sometimes even get used to them so much that the failure itself is considered a feature, not a failure. But I digress.

First, the positive about the NXE.

It's way better than the old blade system. The blades were generally confusing and at some points just unusable. In addition, the blades weren't really extendible. They had limited real estate to offer advertisers. Now, while you may think that's a good thing, it really meant it was hard for you to get information about what had just been released on LIVE, especially if you're not as "plugged in" to the game industry as I'm sure many of my readers are. Despite other failings, the spotlight system actually allows Microsoft (and its advertisers) the opportunity to really get the word out.

Avatars are a nice addition. Make as many jokes about Miis and Microsoft appealing to the "Casual Market" as you want. The only people that I know that haven't made an awesome avatar already are casual gamers. Seriously. Avatars are a nice addition, and a great way for you to personalize your experience on the Xbox. The Xbox has always (at least partially) been about personalization, so having avatars is nice.

New Features. Netflix, Community Games, Party, Avatar integration into games, all excellent additions. Maybe more down the road? Who knows, but I'm happy for now.

Now, the negative.

Sign In is still 3 clicks away. Signing in is normally the first step for most people that have an Xbox that are online. Sure, whatever game you play will immediately ask you to sign in, but if the box has more than one profile, isn't set to sign in automatically, and goes to the dashboard instead of directly into the game (which is a setting), I think there's a 99.9% chance that the person wants to sign in before doing anything else. And honestly, one button to cancel sign in, rather than 3 to confirm (or 4, depending on if you disabled the welcome profile) makes more sense to me.

Spotlight is Occasionally Confusing. I'm a smart guy. I couldn't find the community games library on my first try. And I'm not the only one. Worse, even after I found it, I couldn't find it again. The problem is this: the spotlight for Community Games looks like it's the community games section, but it's not. This carries actually throughout the spotlight interface. The spotlight is an advertisement that explains that something is available, but doesn't take you there. In only a few cases, can you get what you want directly from the spotlight.

Game Marketplace Spotlight is Always Confusing. This is where I wish I had a screenshot or a video. See, when you go into the main "Game Marketplace" portion of the NXE, it brings up its own spotlight. You have to hit a separate button to go into the actual games marketplace. It's weird! Maybe I'll do a post on this in the future and expose this as confusing with a video or something. Not sure how I'll do that, but I want to.

Organization is still an issue. On the marketplace it's still very difficult to find what you want. I'm not sure why this is, as it's 100 times better than it was in the blades, but I can't tell you how many times I still get confused as to where I am, what I'm looking for, and what's available. I wish I could explain better, but really I can't.

Hidden Options, Hidden Friends. On the NXE, you can't see all the options available to you. One or two are dimmed out at the top of the screen. I know why Microsoft did this. First was to prevent too much clutter, which is fine. Second, though this is speculation, I'm sure that list is partially populated by the LIVE servers, so they could now add categories without breaking the current functionality. But, the new friends channel I don't understand. Why take up all of the screen real estate with one friend at a time? Most of which is taken up with a background that the friend can't change anyway? Why can't you show me 4 or 5 avatars at a time, that way I can see most of who's on line at once without scrolling through the channel? Sure, I can still use the blade interface but, let's face it, the channel is way cooler, just not as usable.

Breadcrumbs? For some reason, I always find myself wanting breadcrumbs in the NXE. I'd like to know where I came from to get to where I am, and where I'm going back to when I hit B. Personal preference.

Reports of NXE instability. This is really disconcerting. There have been reports that not only does the NXE crash in the interface itself, but that it causes once stable games to crash more frequently. I didn't believe this until I actually saw some stable games crash on a friend's Xbox. Hopefully this isn't too widespread?

Again, the NXE is 100 times better than the blades. There are just a few places where I feel confused by the interface itself, and that's never a good thing. Thankfully, once I get used to it, I'll probably forgive it of its flaws, and maybe even come to depend on them.

I'm not one to disagree with Joel, but I actually think I will disagree (sort-of) with this post.

Personally, I have no problem with disabling menu items (graying them out), and I have no problem with showing / hiding items in context sensitive areas of your UI (be they right click menus or elsewhere). I think disabled items give a quick indication of what you can and can't do given your location current context. How horrible would it be to think you're inside a table and click something to format it, only to get an error saying "You can't do that because you're not in a table," then you click OK, then you click in the table, then you go back to your menu. That extra error box plus OK click can get real annoying real fast, whereas grey text tells you quickly that you're in the wrong place. Hiding items is fine too, so long as you're hiding the items in areas the user understand are context sensitive. Right click is always assumed to be context sensitive, but properties windows, and certain toolbars could benefit significantly from some amount of context sensitivity.

I will say, though, that I absolutely agree that a disabled menu item should always be able to display a descriptive reason for why its disabled. In addition, hidden items should only be hidden from areas that are known to be context sensitive. If an item is hidden, a user should still be able to find it in the menu, find that it's disabled, and get a reason why. I think a tool-tip or similar is sufficient for when you see the grayed out item but have no idea why it's disabled, but of course in the desktop application world support for that can be fairly limited (last I checked) which is why almost no companies do it, which is what is irking Joel (I think).

So in conclusion, hide and disable all you want because I think even the general user can work faster seeing disabled menu items and hiding unnecessary commands. Just be sure that when you hide or disable, the user can find out quickly why you've hidden or disabled the item. That assertion's nothing new, though. Chris Crawford called for that in his self-published Understanding Interactivity some 8 years ago.

So, I'm sure many of you know, On The Rain Slick Precipice of Darkness, a Penny Arcade Adventure, is now out. I grabbed the demo and I have to say, I'm both impressed and not impressed at the same time. It's fun and has some very funny "dialoge" (I never got to actually talk to anyone, I'll talk about that in a second), but there are some things that really get in the way of my enjoyment of the game.

First, you can't skip cut scenes. What the hell? I would think Game and Tycho would know better. You can't save in the demo, and recently my computer has been acting up so I've had to go through the opening cut scenes several times. Just... why!? Thankfully, the cut scenes are short, so I'll give them a break. Having to sit through the cut scene multiple times isn't too bad.

The interface is also a little weird for me on PC (have yet to play the 360 version). You have to click on the skill you want to use when its ready, then an enemy you want to use it on. Honestly... for a general attack that's just too much clicking, especially when combat is in "real time". There are no short cut keys (at least not obvious ones) or shortcut movements. Being able to hit "A" to have the next read person attack, or if I could click directly on an enemy to have the next person who's ready attack, or if I could right click on an enemy and be given a set of options from people who are ready (radial context sensitive menus are the shit... really), that would speed up play and I wouldn't have to go back and forth between my character pictures and the enemies.

Less movement, fewer clicks, most common task available quickly. This, to me, is key to good UI design, and I kind of expected at least this game would have gotten it.

Last, I've experienced a few bugs that are, well, interesting to say the least. I lost my cursor once when I went out to a menu (checking to see if I could save) and came back. I think the game was trying to play a cut scene which I interrupted. that's why I've never had a chance to get into dialog. Stuff like that is just disapointing.

That said, the game looks good, and it looks fun. These are really REALLY minor quibles, but they do impact the game experience for me. I will still probably buy it once I get a little extra cash, but after playing the demo, I think it's something I can wait on.

Those of you that know me know that I really enjoy cooking. Well, really, I enjoy eating good food, but I’ve found that the easiest (and most inexpensive) way to get good food it to make it yourself. So, tangentially, I enjoy cooking.

As a result, I spend a lot of time online looking at various interesting recipes on the internet (and through cook books, but this post is mostly about the internet). One thing I’ve found is that most sites that offer a good deal of recipes, are lacking in their actual usability; not because they’re not designed like other sites, but because they’re designed exactly like other sites. Most of them are designed as simple lists of categorized articles or blogs, with ratings and comments. This may be fine for most blogs or new sites, but cooking is this inter-related web of techniques, derivations, substitutions, and adaptations that (in my mind) can’t be served properly by this common model, but does lend itself well to the web in general. The problem is that people get locked into this core method of usability, and don’t realize that it doesn’t work in all situations.

This, in my mind, actually violates a core tenant of usability in information systems: get the information that the person needs to them as quickly as possible, and allow them to access related information quickly and easily. For cooking, this is not just related reciepies. This may mean linking them to information about the techniques required for a particular recipie (creating a roux, blending a soup, searing a piece of meat, grilling, broiling, etc), the potential ingredient substitutions (can I substitute different types of mushrooms, stocks, water, etc) or additions (can I add garlic, Tabasco sauce, or rice to this dish, and where). Additionally, potential side dishes, wines, derivations (versions of the same recipe that use similar but different ingredients) and nutritional information are all common things I want to see with a recipe, but rarely see in any web recipe outlet.

And don’t get me started on comments. 90% of comments of recipe sites are worthless: “This tasted great! I will do it again!” is pretty common. But that last 10% is sometimes useful. “Lightly salt the zucchini to drain the moisture first,” “Added garlic to this dish and it really brought out some of the flavors,” are good comments, and are related specifically to an ingredient, addition, or substitution, so why are they at the bottom of the page instead of where it might be useful to me?

What does this have to do with games? Well, nothing really, but it does point out an alarming trend in general usability: this idea that once you’ve found one system that works, you tend to apply it to other systems where it’s not as useful, or (worse) where it doesn’t make sense. So, when you’re designing your user interface for your next game, just think to yourself for a second: “Am I designing this interface this way because this is the easiest and best way to access this information, or because it’s the way it’s always been done.” You’ll be surprised how often you answer yes for the later, and find another, better way to do it.

Who Is Jeff?

Hi, I'm Jeff, Programmer at WillowTree Apps, and hobbiest game programmer living in Charlottesville, VA. Previously, I worked for indie game company Fire Hose Games, game middleware start-up Orbus Gameworks and AAA game studio Bethesda Game Studios

This blog is where I ramble about most everything game related, including programming, tools, game design, and interactive narrative