Tuesday, February 3, 2009

ICS 499: Devcathlon, Mockingup the Interface

Introduction
For ICS 414 Spring 2009, the class will spend the semester building a software development game titled Devcathlon. The game will be integrated with Hackystat, a system used to track different aspects of application building. Some of the areas Hackystat keeps tabs on using sensors embedded into a developer's system.
  • Development Time - Time spent writing code.
  • Coverage - Using unit tests to invoke methods for application assurance.
  • Commits - The number of times a developer uploads a change to the repository.
  • Build Status - What shape the system is in at the time of the commit.
The data from the Hackystat sensors will be applied for scoring purposes. It is the class or team's job to integrate Hackystat with Devcathlon to build a working system.

Devcathlon
Game development is not an easy task it requires time and thought in order to come up something that is interesting and entertaining. The first stage of development for Devcathlon was to design a user interface. As part of team mockup1 we came up with a rough draft of the interface which included.
  • Signin/Signup - A developer needs to be registered and sign into the system.
  • Scoreboard - Keep the scores of ongoing matches between teams.
  • Player profile - A developer's/player's page that holds the badges, levels, current score, etc.
  • Game Adminstration - The Game Master can set up matches, teams, award badges and levels.


I chose the Game Adminstration which I called the Game Master. Initially the Game Master had controlled over everything registration and scoring. However, it was discovered Devcathlon must be tightly bounded to Hackystat. Therefore, if a developer is registered with Hackystat then he or she will have access to Devcathlon. For the second mockup it was decided the Game Master take on a new role as the person who hands out badges and levels should the deeds made by the player warrant such an award. The second mockup also required the groups to develop a badge or achievement system and a level hierarchy.



Our mockup included a level hierarchy that employs a military system. When a player earns so many badges he or she will move up in rank and receive their "stripes". Alternatively, I would like to see a point system where so many points gets the developer their promotion. I think this is a good system because it keeps a player striving to earn more points to move up in rank. In order to score points a player needs write code, make commits, not wreck the build, etc. Having good developement habits will lead to high scores and fast level promotion.

Our badge design is made up of a series ofdifferent icons a wrestling belt and ice cream. The badges are earned through scoring points. It will be difficult to differentiate between levels and badges if both rewards are earned on points. I think badges should be earned based on actions done by the player such as making so many consecutive commits without breaking the build which Hackystat will be able to read and the badge awarded to the player automatically.

Development Time(in hours)

Design Time Code Time Blog Time
mockup1.0 3.0 5.0 2.0
mockup2.0 4.0 5.0 5.0

Conclusion
The groups wrapped up their versions of the mockup and the team will move forward with the implementation of Devcathlon. There is a lot work ahead of and I foresee numerous challenges such as interfacing Hackystat sensors so Devcathlon can track scores. I am hopeful that everyone in the class will carry their load and meet their benchmarks. Because we can ill afford to have someone slack off Devcathlon will be a challenging project.