Monday, January 12, 2009

Introduction to Game Design

Introduction For the ICS 414 Spring 2009 development team, we have been given the task of developing a game. The game is called Devcathlon, which turns the programming process into a game of sorts where programmers score points for good deeds. But the major point of Devcathlon is to use gaming concepts to foster better development practices. The Devcathlon The purpose of the Devcathlon is to turn software development into a score-based game. Points are awarded to developers and their respective teams when they perform a positive event on a given project. Likewise, points are taken away should a developer cause a problem with the build i.e., break the build. There are various events that fall into the field of play here is a sampling of the events that will earn or lose points in Devcathlon, here is the full list.
  • Commits to the system are done often.
  • Verify the build locally before commiting.
  • Work as group, do pair programming whenever possible.
An excellent example of turning the programming process into a game was done by this development team who awarded fake money to the proper execution of tasks making a commit without build failure. At the completion of the project, using the fake money developers could bid on mp3 players, trips to vegas, dvds, etc. For senior management the end result was clean builds, a cohesive unit of programmers, and a decent product. Game Design Game development is about as complex as any business system development as there many issues to tackle. Before the team can begin coding there are numerous details that must be considered.
  • What kind of game is going to be played?
  • What does the field of play look like?
  • Who are the participants?
  • What are the objectives?
  • How complicated should the game be?
  • What are the rewards?
  • How does a player score points?
  • What happens to the loser?
The team must understand the games rules and objectives so they can write the proper code. As the team transitions to the coding phase several key points must always be questioned.
  • Is this game entertaining?
  • Is the game challenging the player?
  • Is the game overly complex?
There are probably more elements of the design that must questioned but the above are the things that stand out in my opinion. http://gamasutra.com/features/20000707a/huntsman_01.htm This site is geared towards video game design however, I thought it posed important issues when considering the front end of Devcathlon. Such as how difficult is the game? Will the participant be able to the understand the overall concept out of the box? Obviously, Devcathlon will require some explanation before the developers can start playing. http://www.sloperama.com/advice/lesson13.htm Another video game design site that talks about laying the foundation for the game. Devcathlon needs to start somewhere and the team cannot start coding without some kind of direction. A decent game has a plot and/or objective. In order for Devcathlon to be interesting for its participants the development team should brainstorm to come up with a list of ideas. Also, checkout the flow diagram and thought it would be handy for when it comes time for development. http://ravendsg.com/video-games/game-design-theory-video-games-development-2/breaking-down-a-game-interaction/Ray/2008/06/19/#more-62 This site points out what is needed for Devcathlon to be playable. In order to understand what the game is about and how it should be played the player needs a certain amount of information. Without the necessary info how will the participant know the rules game or how to score points? A good game must be interactive, the player should have a certain amount of control during play. Devcathlon is not a video game where the player gets to shoot bad guys. But the developer's actions through the coding process will be their interactivity. For Devcathlon to be satisfying for its participants it needs to have some sort of feedback system i.e., a way to earn some kind of reward. http://www.vancouver.wsu.edu/fac/peabody/game-book/Coverpage.html The site is primer for game design which will come in handy when laying the foundation for Devcathlon. http://www.randomterrain.com/game-design-gameplay.html Keep the game fun and simple! The point of playing a game is to have fun. A person is going to lose interest if a game is not fun or overly complex. In my estimation Devcathlon is way to make application development lively and interesting. So there should be some kind of mechanism that makes Devcathlon exciting for the developer. What that exciting piece is, has not come up yet, the team still needs to brainstorm. Devcathlon does not need to be a convoluted system where players need to have a wacky button combination to score points. The overall design should be simple yet challenging enough for everyone involved. Open Issues Pair Programming To verify that more than one person participated in a programming session all members have to verify in order to get their points. Two or more developers would not cheat right? Rewards There has to be more to Devcathlon than just the high score and bragging rights. Perhaps a tiered extra credit system? Fun factor One of the more troublesome aspects, from my perspective, of Devcathlon is the fun factor. I guess once we start developing the fun part will be clearer. Conclusion I am not sure whats in store for the team. It will be interesting to see what we come up with and I am hoping we can develop something that will be fun for everyone.