Monday, August 29, 2011

Assignment: Three Directives evaluation

The three directives for open source software engineering, as described here, outline the three rules essential in the creation of effective software. A quick outline of these directives:
1. The system successfully accomplishes a useful task
2. An external user can successfully install and use the system
3. An external developer can successfully understand and enhance the system


To gain a better understanding of how the three directives can be applied to software, today we will be evaluating an open-source project to see whether or not it comes up to standards with the three directives. The program we will be looking at is Flesh Snatcher, a first-person-shooter game where the objective is to kill all zombies and escape from a needlessly-complicated mansion of sorts.


From now we will evaluate how well the program complies with the three directives.


Directive 1: The system successfully accomplishes a useful task
In order to evaluate the program on this directive, the first thing that must be established is by what means will it be considered as accomplishing a "useful task". The first and foremost function of this program is to serve as a game, so if the program executes a game that is playable, then it will have complied with the first directive. Enjoyability and subject matter will not be put into evaluation, as there are such things as games that accomplish the tasks they were set out to do, even though they may not be fun to play.


Flesh Snatcher is a fast-paced shooter game, and from the get-go you are constantly bombarded with enemy zombies that you need to destroy. The frame-rate, while low in comparison to modern FPS games, was decent enough that the animations appeared smoothly and that there were no noticeable skips or pauses in the graphics. The controls, using keyboard and mouse input, were responsive and intuitive, using key layouts commonly used for PC shooter games, making the game easy to pick up for those who have played PC shooters before.
From the first level "The Factory"
As a first-person-shooter, in terms of playability, I'd say that this program does a pretty good job. Simple character and level design put aside, it seems to easily fulfill the first directive of fulfilling it's "useful task".


Directive 2: An external user can successfully install and use the system
Obviously, to play the game and evaluate the first directive, I had to have had successfully installed and ran the program. The fact that I am an external user that has already played the game on my own computer proves that this program fulfills the second directive. Upon downloading the zip file containing the game off of sourceforge, once you unzip the file and run the batch .exe file the game automatically launches. In actuality there is no "installation" required, it's as simple as unzipping and playing.


Directive 3: An external developer can successfully understand and enhance the system
Flesh Snatcher complies with GNU General Public License, which means that in addition to being free of charge, the source-code is readily available for analysis and modification. In the zip file that I downloaded, the source code was already included in a separate folder. Opening up the java files in eclipse I was able to see how the many different parts of the program worked, the AI, the maps, the controls, audio, etc. Although scarce, there was documentation within the code itself, labeling what parts of code did what, giving general overviews of what certain java files did, and so on. By the looks of it, an external developer could rather easily understand and alter the code, and thus this program fulfills the third directive.


This concludes my evaluation of Flesh Snatcher, which seems to comply with all three directives. For those of you wishing to pass some time with a good old-fashioned mindless shooting game or wanting to see how such games work underneath the hood, I would recommend downloading the game and looking through some of the source code.

No comments:

Post a Comment