Saturday, August 25, 2007

Open Source Software Experience: Shoddy Battle

This is a writeup for the assignment described at http://groups.google.com/group/ics-software-engineering-fall-2007/web/a-02-oss-experience

For this assignment I looked at Shoddy Battle. It can be found at http://sourceforge.net/projects/shoddybattle/ with the main site at http://shoddybattle.com and contains two parts:

- a client, and
- a server.

Introduction

Pokemon is a popular game amongst millions of people around the world. One of the problems with this game, though, is that the process of raising Pokemon to battle with is often a long and tedious task. It usually takes a couple of hours to raise and level them in a desired manner, and in many cases a person realizes 'improvements' that can be done which causes them to raise another one of the same type. Couple this with a team consisting of six of these 'Pokemon', and you can see how raising a team would take a while.

Pokemon's battle system is basically a larger version of rock-paper-scissors - much like CodeRuler, one strategy can defeat another but lose to a third one. One of the aims of Shoddy Battle is to allow people to battle Pokemon (which they define) online with other people, allowing them to test their 'team' before actually investing the time in-game.


Installation

Installation is easy. You download the .jnlp file which runs it as a Java web app.

Ummm, wait. There's nothing to install? Thats right. Actually, if you want to run a server, there is a separate download for that too (which I did try and download, but did not want to set up). But there are advantages and disadvantages of running it as a web app:

Advantages:
  • Shoddy Battle is a network application. Network applications tend to have synchronization problems when they are updated and people use older versions. By running it as a web app, the version is updated automatically every time the program is executed. Also, one disadvantage of Java Web Start is you kinda need an internet connection (I think), but you need one anyways for this game ^^
  • Assuming Java Web Start is a good interface (which is a religion question), its easy for users to run it.
Disadvantage:
  • Ummm, where's my app? And what am I going to show for it in this writeup?

Prime Directive 1. The system successfully accomplishes a useful task.

Yes, its a fun way to play online and test teams out. But moreso, theres a few teams I have tried which have gotten horrendously slaughtered online (don't ask), and then I learned that those teams aren't really feasible. So it did help me save a few hours of training, at the very least.

I'd say its useful.

Prime Directive 2. An external user can successfully install and use the system.

I think an external user can install the system also. Unfortunately, it comes with a hitch. This assumes the system is configured to handle Java web applications, which on a previous computer I used it didn't work completely. Maybe it was a configuration error on my part. Anyways, assuming that works fine (which I'd say is true for most systems), I'd say an external user should have no trouble installing it, especially if they go to the homepage (http://shoddybattle.com) and follow the directions from there.

Prime Directive 3. An external developer can successfully understand and enhance the system.

Luckily, there is a source package on Sourceforge. Unfortunately, I haven't tried enhancing the system. There are two main reasons I see for enhancing the system, however:
  • Security issues. If the server ever gets hacked into, there may be issues that need patching. (Then again, its only a game.)
  • Game updates. Whenever a new version of Pokemon comes out (currently it is on 4th generation - RBY, GSC, RSE, and now DP), new pokemon species and moves are added. These moves look like they're implemented in a Java file that can easily be updated when the time comes. However, it looks like they're also implemented in a database file, so it might be a little confusing where exactly the update would be. (I haven't looked into species)
Thus, I think there might be a few difficulties if an external developer were to develop the program. Then again, it would affect the overall client-server infrastructure.


Conclusions

In conclusion I'd say its a pretty fun and straightforward package for an average user to download and run, but working on it could be a challenge since it doesn't seem straightforward as to what exactly is to be modified.

No comments: