| Posted: | Thu, Feb. 21, 2008 |
| Due: | Tue, Mar. 18, 2008, 11:59:59pm |
| Tournament: | Fri, Mar. 21, 2008, 4-7pm, CSIL Lab ! |
Objective:
Refactor and improve an existing GUI. Apply good HCI Principles and Guidelines. Follow the Usability Engineering life cycle.
Optimize your UI to stay competitive in a tournament.
Instructions:
You are to re-design the GUI to a simple multi-avatar tagging game played against a computer opponent. The game uses the portable Java and CORBA frameworks but does not have a particularly efficient or pleasing user interface (yet).
The task you have to solve is to take a game that premiered at the ACM Symposium on User Interface Software and Technology (UIST) and modify its user interface according to good HCI principles and guidelines. You can make any changes you see fit to improve the user's experience and make it easier for them to play the game.
A thorough understanding of the game's rules and gameplay is essential in order to design a superior interface. A detailed explanation of the game can be found here. In order for you to fully concentrate on the user interface design, your task is not to re-implement the game itself! You are tasked only with re-designing / improving the user interface!
You can find the needed files for this project here. You should be able to run the code by the directions given in the PDF file, and if not, you are expected to alert the TAs immediately.
The purpose of this project is to give you experience refactoring existing code bases with the intent of creating a superior interface, making the game easier to play for users of all skill levels.
A tournament will be held to compare the effectiveness of your user interfaces. The student who wins the tournament will receive bonus points towards their project grade (as well as a spot in the CS185 tournament annals). The grade for your UI will depend on the following factors (in that order of importance): 1) How well your UI reflects good UI Design practice, as learned in class and through handout materials. 2) How well different players (the Prof. and the TAs) can operate (learn and use) your UI. 3) How well you yourself can play the game with your UI (as demonstrated in the tournament).
With that being said, you will need to keep the following in mind while developing your project:
- You can either modify the simple UI we provide (Display.java) or create a new one from scratch.
- You don't have to use Java. You can use any language provided you can work out the CORBA bindings to the gameplay server.
- You are only to provide the program in charge of instantiating the game and running it. You are not to modify the external libraries needed by this project. If your program can connect to the example server in the above code zip file, it will be able to connect to the tournament server.
- While a multi-player (team) interface might possibly have an advantage over single player use, you are to design a single-player interface. Optimize the UI for one-player gameplay.
- Your grade will predominantly depend on the quality of your UI as judged by the UI design procedures, principles, and guidelines taught in class. A win of the tournament through a lot of practicing with your UI would give you the bonus points for the win, but it won't replace the need for good UI design. Anyway, we strongly expect that UIs that follow good design principles will have a performance advantage that outweighs practice.
- We are not decided yet on the exact modality for the tournament. We may introduce an element of surprise by having students compete with each others' interfaces....
As always, you should obviously start with a user and a task analysis and optimize "performance" of your UI according to your scenarios and usability evaluations. You are expected to play/analyze the game by the directions given in the PDF file linked to above, in order to get ideas on how to improve the user interface.
There is no artificial restriction on display resolution in this project. Pick whichever window size you think constitutes the best interface for the problem.
The current interface only implements keyboard interaction, and you are free to add any additional interaction methods. An empty mouse handler is provided.You need to submit documentation (basically a "user's manual") for your application. See section on grading.
Development Environments:
Your submission needs to include an executable program, installed and tested on Fedora Core-6 Linux (GSL/CSIL computers).
Credit & Grading Overview:
This is the final class project. It is worth 30% of your total grade, equal to the combined value of your 4 homeworks. It is a joint prototyping/implementation assignment.
As before, to satisfy the prototyping requirement, you need to sketch two mock-up interfaces for the system. These don't need to be fancy, but show that you have thought about two different ways of laying out the GUI that could solve the problem. You can draw them by hand or in your favorite painting / diagram / illustration program - just turn in some sort of image for each of them. In general, the interface design should happen as an iterative process with consideration of alternatives at each step.
To satisfy the implementation requirement, you have to produce a working program that is different from the program you are given. We will grade the usability of the final solution you submit and note how effectively you are able to use it in the tournament. The UI should run as a standalone program, with enough functionality to test several test scenarios.
Submitting Your Homework
Submit your homework using the turnin command from your CSIL account:
% turnin project@cs185