Sunday, September 7, 2008

Lessons learned from Code Ruler

Overview: CodeRuler is a Java programming game based on the Eclipse IDE. It is intended for testing skills in Java programming as well as strategic reasoning. The basic idea of the game is to capture other opponents' castles and claim the most land resources. In doing so, the player with the highest score wins the game!

MyRuler Group Members:

Strategy Outline:
Break knights and peasants into smaller groups with specific objectives.

InsideCastleGuards
  • they will stay and move around inside the castle.
  • they will capture any opponent knight inside the castle.
OutsideCastleGuards
  • they will attempt to capture any knight that moves too close to the castle.
  • they will roam around the castle area capturing opponents peasants.
  • they are the first line of defense against opponent knights.
KnightCastleInvaders
  • they will attempt to capture opponents' castle.
  • they will attempt capture of opponents' peasants that they encounter, but they will not chase them.
  • they will avoid contact with opponents' knights.
LandCapturePeasants
  • they will attempt to capture unoccupied land and opponents' land.
  • they will attempt to avoid capture from opponents' knight.
KnightDistractionPeasants
  • they will attempt to get opponents' knight to chase them, leading the opponents' knight away from the castle.
Sample Game Results:

MyRuler vs MigrateMyRuler vs Gang-upMyRuler vs Split-up
1503-36455-117412-182
2540-32455-140513-119
3462-40370-156466-234


Lessons learned:
  • Eclipse became a good companion for this project. I consider it an all-purpose IDE and has well lived up to its expectations for all backgrounds of developers. The built-in JavaDocs generator has proven to give ease and painless professional documentation.
  • Java still surprises me with its wealth of runtime exceptions. Here's one that I found annoying and difficult to fix: "ConcurrentModificationException" - impermissible for one thread to modify a Collection while another thread is iterating over it.
  • I learned that large projects such as this requires a large amount of effort from each person. It was difficult to have long continuous meetings due to our conflicting schedules, but we found other ways (email or online-chat) to communicate efficiently. 
Improvements:
My first recommendation for future projects that require the service of more than just one person would be to use some kind of source code version control like SVN or GIT. It seems cleaner to do it under version control rather than passing back and forth document copies through email, which requires you or your team member to patch-up manually. I also would recommend a task tracker such as Edgewall's Trac for project management software. A handy project or task management software (preferably open source) would be helpful for keeping track of project goals, tasks and progress.

Reflection:
I enjoyed taking the time to experience programming this Java based strategy game. It proved to be well worth my time and a great learning experience for myself and my group members.

CodeRuler source: du-okada-ancheta.zip

1 comment:

Unknown said...
This comment has been removed by the author.