WPF Guitar Hero using MVVM & MVP

Last semester, at the University, along with other students (Alejandra Stamato, Gonzalo Zamudio and Manuel Soldini), we had to create a game similar to Guitar Hero for the Algorithms & Programming III subject. Being a University subject, it had some specific requirements (mostly related to model specification and the entities that needed to be included). Additionally, we were given the choice to use either C# or Java to develop the game.

Some of the requirements:

  • Use TDD to develop the game. This lead to approximately 100 unit tests.
  • Use a presentation pattern (similar to MVC). We decided to use WPF and the MVVM pattern. Additionally, we took some elements from MVP to simplify the interaction between the view and the view model.
  • Have a code base that is easy to read.
  • Use known design patterns when necessary. That is way during the development process we determined to use the Iterator and Strategy patterns among others.
Disclaimer: The solution we developed was required to be coded in Spanish. I have spent time translating almost all the code, but there are some small parts that have not been translated (mostly related to strings and XML).

Below you can see an image of the game running and this is the link to download the code. I have the idea of “Prisming it up” a bit, but in the meantime I think publishing the code should be positive.  Of course, any feedback you might have is welcome.

The prerequisites are:

  • Visual Studio 2010
  • .Net Framework 4.0
  • (Optional) NUnit version 2.5.7 to run the Unit Tests

image