Thursday, June 22, 2006

Save: commit, bookmark or suspend?

The semantic of a "Save" operation in UI is not as simple as one might think. While thinking about the problem with the "save" operation in computer games, I came to the conclusion that there are actually three different operations which are usually represented in the UI with a single "Save" command. These operations are: commit, bookmark and suspend. For the sake of simplicity I will call whatever the user is working on "the project" - be that document, image, configuration data or even a state of a game.

  • Commit. The user finished his work, and the project is ready to be used (released to public, reviewed by peers, put into production etc.) Several examples: saving user profile after editing it, saving changes to configuration of some program, saving a shared document.

  • Bookmark. The better name for this one would be "create a snapshot". The user wants to preserve the current state of the project to be able to return to this state later. Examples: saving the game, backing up the project before doing some risky changes.

  • Suspend. The user wants to stop working now, and to be able to resume work later from the same point. There are not many examples of explicitly doing this operation, but many programs are doing this implicitly when being closed. The difference with "bookmark" is that the user intends to restore the project from the suspended state only once, when returning to work, whereas the "bookmark" is intended to be used indefinite number of times.

The operations seem very similar - but in fact the differences between them are important enough to be considered when designing UI and software in general. It may sound strange, but quite a few applications address those differences correctly. In most cases the users are emulating different operations using just the standard "Save" command.

To illustrate this, let's consider an example well known to everyone - Microsoft Word. This program, actually, does quite a poor job of recognizing the different cases of "Save" operation. You want to create a snapshot of a complex document you're working on, before performing some global changes in formatting? The only way (unless you are using some version control software) is to save a copy with a different name, which is not elegant and just add clutter to your hard drive. You are editing a shared document, and want to suspend your work? Save it with different name in a non-shared location; otherwise you will provide others with an incorrect version of the document. It may seem that the only "Save" operation supported by Word is committing - but even that is not supported as it should, because Word tends to store some leftovers from the previous edits in the file, so, to commit in a clean way you have to save the file under a different name with the "Save as..." command.

Returning to the original question about problem with saving the games - I think that, when game designers realize the difference between different save operations, they will add "Suspend" operation to the game, and make happy many players - including myself.

Technorati tags: ,, ,

Wednesday, June 21, 2006

Why "saving the game" is a problem?

There is one thing in computer games that puzzles me a lot - both as a player and as a game designer/developer. I am talking about "saving the progress". For some reason in many games this supposedly straightforward operation is not straightforward at all. Especially prone to this are console games. No, seriously, I really don't understand why the game designers cannot give the player a possibility to save his progress whenever he wants it? Why do the console games use complex systems of "saving locations", checkpoints, savepoints and who know what else instead of simple "save" command in a menu?

I grew up on PC games - and when I started playing console games this peculiarity was a complete surprise for me - and an unpleasant one. Alas, being an adult I cannot play for as long as I want. I have to stop sometimes - and what a disappointment it is when I have to forfeit all the achievements I've made in the last hour just because I cannot save game in the middle of a level.

I tried to come up with any plausible explanation of this phenomenon:

  • Technical difficulties. Well, I don't buy it. I can't imagine what kind of technical difficulty can prevent a game on a modern console (like PS2 - or PSP, for example) from saving data at any given moment. There is plenty of horsepower to do this, and storage shouldn't be a problem either. Of course, maybe I don't know something...

  • Game design decision. I know that some game designers tend to think that giving the player opportunity to cheat (save - try to hit monster - miss it - load - repeat) might break level design. This could be true - but, for some reason, similar games on PC allow players to do it, and are still fun. For example, look at "Half Life 2" or "F.E.A.R". And, at the same time, "Call of duty" on PS2, being also a First Person Shooter, doesn't allow saves in the middle of a level.

    And, even if there is a problem with level design being broken in such a way, there is a brilliant solution to this problem - separate "temporary save", which ends the game, and which is destroyed after restoring. I've seen this design in "Wario Land 4" on Game Boy Advance - it works like a charm, and I really enjoyed the possibility to suspend the game at any time.

  • Legacy of arcade games. Yes, in a video arcade players cannot save their progress - that's the whole idea! That's what makes them play - and pay - more and more. And yes, old consoles didn't have the capability to save game at all - hence the "level passwords" and other solutions of the same kind. But this was a long time ago - the mode of playing had changes since then. Portable gaming devices are used in many circumstances, and people often simply must stop playing at certain time. The preservation of arcade spirit shouldn't compromise the usability of the game.

So, I can find no decent answer. But, while thinking about this problem, I've suddenly understood that "Save" operation might have different meaning in different applications. The semantic difference is subtle, but important for a good design of application UI - and application in general. But that's a topic for another post...

Technorati tag:

Monday, June 19, 2006

Progress or activity?

I missed the point in time when this change happened. Probably it started ten years ago - or, maybe more... I am talking about using "activity indicators" in place of good old progress bars.

Of course, activity indicator is much easier to implement than progress bar. With progress bar, you have to update it meaningfully - and to have some general idea of the ratio of performed work to the total amount of it. Activity indicator is just a breeze - you slap an animation widget on your UI - and wham! You have it!

But from the usability point of view, it's a disaster (at least, I prefer to view it as such). Not only you have no clue about the speed of the operation, the approximate time left and all such nuances. You also have no idea whether the application is running as it should. The cool progress animation can play by itself, making you think that the application is working hard - when, in fact, it doesn't.

I understand that under some circumstances making full-fledged progress bar may be tough. One situation is when you don't know beforehand how many operations the program will have to perform. For example, the last time I've encountered activity indicator where a progress bar should be was in the utility called CCleaner (a really good freeware program, which removes temporary files and other garbage from the disk). The program didn't know how many files it will have to remove. The author decided to use a fake progress bar - the one which starts from the beginning once it reaches 100%. A better solution would be to add display of the name of the file currently being deleted, or a counter of deleted files. This simple change would make the UI better - by looking at the growing number of deleted files I would always know that the application is running, and not just waiting for some locked file to become released.

The same principle is applicable to web applications as well. Don't just use "AJAX activity indicators" - in case of potentially long operations show some real progress information to the user.

And I have to admit that replacement of progress indicators with activity indicators is a problem not only in the world of computers, but also in the society as well. But this goes far beyond the scope of this post.

Technorati tags: ,

Friday, June 09, 2006

Again on piracy and copyrights

Yesterday I've had a curious conversation with one young gentleman. In two days he made two postings in one forum. In the first post, he was talking about some anti-piracy lawsuit, totally supporting it. The very next day he posted a review of some movie and offered to share a copy of the movie he downloaded from one of these services where you pay thirty bucks a year and have access to tons of "not-so-legal" music and video files. I was curious and asked him to clarify his position on copyrights and piracy. His answer totally shocked me:

" Well - said he - since I am giving the movie for free - that's not a piracy. It's like giving a book to a friend; you wouldn't call it a piracy, would you? If it's a piracy, then the whole eDonkey network is a great piracy act with millions of pirates. And, speaking of the place from where I've downloaded the movie, they charge for access, not for content, so that's not a piracy either. "

As I said, I was flabbergasted. I never thought that in our time so naive people would still exist. Of course, I did my best to explain the real situation to this gentleman, and then I had several thoughts.

First - it seems like the idea of copyright education ("Captain Copyright" etc.) is not as useless as I thought. This guy badly needed some kind of copyright education.

And second - the position of this gentleman has its own logic. And, alas, it seems to me much more reasonable and natural than the current copyright laws. And the copyright laws themselves become more and more absurd: it seems that merely having a shared folder on your computer might become a reason for a lawsuit against you (here is a very interesting Lifehacker article about it). The copyright laws are long overdue to be replaced with something realistic and reasonable.

Technorati tags: ,