Saturday, April 19, 2014

Help Me To Solve Some KBounce's Design Issues

Hello everybody.

Me and last year's Season of KDE student Anuj Pahuja implemented a save and load feature as well as keyboard support for KBounce. However, before finally merging the changes into the master branch I'd like to hear your opinion regarding some design questions. Here they go:

1. The player is allowed to load a saved game only once. i.e. as soon as the game is loaded the save file is deleted. I made this to avoid cheating from the player's side. Without deleting the file, a player could replay the same saved game countless times, managing to always go to the highscores list.

I'm unsure about this. Is it desirable for a player to have this ability? What's your general experience on the subject?

2. By default, the keys used to move the cursor are W, A, S, D; L for rotation and Space to simulate a mouse click. What do you think about this setup? Are the arrow keys preferred over W, A, S and D? Independent on the default settings the shortcuts may be changed by the player.

3. The following screenshots show the new dialogs I've had to include. #1 looks terrible though I can't think on good alternatives to improve it for now. Your opinions are very welcome.

Save Game Dialog
Load Game Dialog
Trying to Load a Game When Tere's None Saved

4. Is Ctrl+O a good shortcut for "Load Last Saved Game"? What would be a better alternative?

The code is available at the keyboard-integration branch on kbounce's repository. Give it a try and feel free to share your thoughts on the comments bellow.

7 comments:

  1. 1. My first thought is to abandon the idea of Save. Most games of this type do not have such a feature. On the other hand, doing something because others do it is rarely a good reason for doing it. I could see a save ability useful if there is a sudden interruption while playing. I agree with the ability to only save once.

    2. I would suggest both WASD *and* the arrow keys for movement, as this is the configuration most gamers are accustomed to. In order to provide maximum accessibility, I would, if possible, use the SHIFT key as default for rotate since it is accessible by either hand.

    3. I would suggest a Yes/No dialog:
    Would you like to save your current score and level progress?
    Important: You are allowed to continue a saved game only once!

    4. Ctrl-O is a common shortcut for loading or opening; it seems appropriate here.

    ReplyDelete
  2. 1) is a common practice among some kinds of games, although it only makes sense when you quit the game as soon as you save it.

    ReplyDelete
  3. You could also contact with the Visual Design Group,

    http://forum.kde.org/viewforum.php?f=285&sid=eac4ae70ae49a8c5bcffb03c52ab98d4

    as their name says they have an expertise in designing UIs :)

    ReplyDelete
  4. 1. Ok
    2. As others have said: both arrows and wasd would be better. At least I always expect arrows to work.
    3. Don't know. Suggestion: when showing "There are no saved games" maybe also mention that the saved game could have been deleted?

    ReplyDelete
  5. This is rather a usability than a design question. Have a look for the mailing list or the review board.

    #1: A savegame is different from storing the last situation. Users want to save it for sharing, reloading, post-hoc analysis etc. And they want to provide a unique name and want to use a potentially unlimited number of files. If you mind about local highscore: Who cares about self-cheaters? Otherwise you could add a flag to the game state which suppresses the scoring after its done.
    #2: WASD and Space are standard, but L for rotate? Why not R? (Probably because its nearby W and at the left side of the keyboard.) Regardless of the actual keys, KDE style would be a) cursor keys are available as well and b) users may overwrite assignment (there is a control module).
    #3a: The dialog itself is okay, IMHO, but the checkbox should be place in line with the caption. Take a look at the HIG alignment page (http://techbase.kde.org/Projects/Usability/HIG/Alignment).
    #3b: What happens, if I accidentally close the program? This is taken into account in standard dialogs with "Save, Dismiss (?), and Abort" (I don't run English localization; have a look yourself at Kate, for instance).
    #3c: Consider to allow users to select a file.
    #4: Yes, keyboard short-cut for open is always ctrl+O (http://techbase.kde.org/Projects/Usability/HIG/Keyboard_Shortcuts)

    ReplyDelete
  6. 1. I would suggest that there is no explicit save option. Instead, the current game will be saved at exit and can be resumed when restarting the game.
    2. Both arrows and wasd should work.
    3. Not necessary if point 1 would be implemented.

    ReplyDelete
  7. 1. I would recommend two different saves. First is a conventional save, which is not deleted automatically (as others have said, if someone want to self-cheat let them). The second would be to automatically save the game when the program is closed (or after every click, to protect from crashes or power loss), and when it starts ask if the user wants to continue the last game. This save is automatically deleted either way.

    2. As others have said, both. KDE supports two local shortcuts for every action.

    Is there a reason this saving system is kbounce-specific? Couldn't this be integrated with KDE games in general.

    ReplyDelete