Apocalypse Defense Android game

Human-Computer Interaction, Game and Mobile App Development - Spring 2012

What was the project assignment? 

This Android game was a semester-long collaboration between Blair Gemmer, Nada Ibrahim (Alhothli), and me. We worked on the project in two courses - Game and Mobile App Development and Human-Computer Interaction (HCI). Groups were assigned, and I was able to convince my group to pursue development of a tower-defense game. We then worked through a handful of assignments and milestones in both classes to design, refine, and build the application.

For HCI, we had a series of assignments involving iterative design, including critiques by our classmates. The project evolved through several stages:

  • Functional and usability requirements, the output of which was an individual report (my report).

  • Preliminary design, which involved low-fidelity (lo-fi) prototyping, identifying users and the sytem qualities most important to them, determining the context of the system, and experience with design critiques (crits). The deliverable was a set of crude paper sketches of the application’s screens as well as a report on the feedback it received during the critique. This was an individual assignment; my sketches covered mockups for the title, new game, in-game map, tower upgrades, options, and achievements screens.

  • Iterative design, in which we incorporated/addressed feedback from first crit, combined individual designs into a cohesive team design, and presented medium-fidelity (powerpoint) sketches of our game. As a team, we delivered a walkthrough of the system via powerpoint slides during the second crit session (our report).

  • Evaluation without users - this involved performing a cognitive walkthrough (primer on cognitive walkthrough) and heuristic evaluation (thorough explanation) individually (my report), then incorporating the results with previous feedback and presenting the next iteration of the game.

  • User testing, which finally placed our system in front of users. It involved creating a test script and questionnaires, recruiting users, recording the sessions, and analysis (team report). This was quite a revealing step - for example, all of our users who did not own Android devices were oblivious to the uses of the standard Android buttons, so we had to re-design to account for this type of user. (Perhaps this effect is why Android 4+ removed one of the standard buttons and has encouraged developers to prefer on-screen menus.)

In our final presentation, we provided a good overview of the entire process.

What did you learn from the project?

Before the HCI class, I had no formal understanding of user-centered design. In my previous job, I was able to interact quite regularly with users of the software I was creating, which strengthened those products. But I had no idea how to scale that interaction from a small consulting company to a product trying to reach a wide audience. HCI taught me the process of doing user-centered design, but also made it clear how codifying that process allows it to be used on more than just a single-user basis. I look forward to applying the practices I learned in order to create solutions which truly satisfy users' needs, as opposed to what I think are their needs.

What are you most proud of?

Group projects are challenging, and I am most proud of the ability of our team to work together productively and in harmony. Whether it was collaborating on slides for a presentation, pair-programming, brainstorming, or unifying our individual works, we were able to reach consensus and ensure that everyone contributed equitably.

If groupwork, what was your role in completing the project?

I worked on a number of individual components (as mentioned above) myself, as did the others. In the subsequent deliverables, I pair-programmed with Blair, coordinated document creation and presentation delivery, created content for presentations, and hosted meetings.

What would you do differently next time?

The difficult thing about creating a game is that nearly everyone is a potential user, but almost no one knows what they would want if they were designing it. It was fairly easy to recruit users for testing (who doesn’t want to try out a new game?), but doing user-centered design was difficult. The number one requirement of a game is that it is fun, and that is a huge challenge. So next time, I think I would focus on a more targeted application, especially something without the performance demands of a graphical app. With a clear set of users, it is much easier to create a well-done software project, and it is quite rewarding to see it alleviating the pains of those users.