We have "finished" - at least for this term. There is obviously plenty of work that still needs to be done, but for the most part, our job concluded on Wednesday when we gave our final presentation to the people at Sun Microsystems. Everyone who spoke with us following the presentation said that they were impressed and thought we did a great job, which is awesome. Now we just need to tell Heineman to give us an A. :)
So, for those of you who actually read this blog but missed the presentation, I'll fill you in a little bit. Our out-of-the-box experience is delivered in "stages." First, we wrap up the entire install process into a single double-click jar file. After everything is installed, we wanted to "wow" new users so we show them the Project Snowman game (which uses Project Darkstar) that has been developed in-house by Keith, Owen, Yi, and Jeff. The run process required that you have Ant installed, so we wrote a platform-independant launcher to run it in a single-click process. Once the user has gotten a chance to play around with an actual game, we teach them the API and let them start writing Project Darkstar code through the use of a set of basic tutorials. These tutorials cover every aspect of the API and when completed produce a very basic but functional server and client application that users can run and play around with. Finally, after they get a chance to learn the API, we have an optional "challenge" tutorial. This tutorial starts with a stipped-down version of the Project Snowman game and has users implement the different aspects of its server and client code. The idea behind this tutorial being to teach users what it takes to make a fully functional game using Project Darkstar.
I mentioned that there was more work to be done. Some of this will be accomplished in the beginning of B term. We want to give the tutorials to several of the Sun employees who work on Project Darkstar to get their feedback. Also, we would like to test our tutorials on several other students at WPI to see how the out-of-the-box experience pans out with them. We also need to write the paper for our MQP. The rest is out of our hands. Once we have these final pieces completed, everything will be released to the public and open-sourced to the community. There are also plans to use our tutorials at schools and universities across the country for Sun-sponsored game jams and events, which is exciting. So, yeah. The future is bright.
So, what did I learn from all this? One of the suprising things about my MQP is that even though I'm a CS major I wrote a very small amount of the actual code that was produced. This was NOT because I was incapable or didn't want to, I can assure you. Rather, I just got unlucky. Whenever code was necessary I was already working on some other task. So I didn't write that much code. I reprise: what did I learn, then?
Even though I didn't write that much code, I definately did a lot of reading. Early on, I looked at jMonkeyEngine. Even then, I didn't like it; however, comparing something like jME to Project Darkstar you can really see the difference between a massive pile of classes and an actual API. Seeing all the Darkstar code and hearing everyone at Sun comment on it has really given me a better understanding of what it takes to create a good API, and not just an API, but the underlying framework as well. I've gotten a chance to hear from some of the smartest people in the industry and see how they work in a lab setting, which I probably would not have done without this MQP. I've also learned a lot more about Java and JVM in general. Oh, and a few things about different operating systems just because everything we did had to be platform independant.
In the end, I think I've had a really good time working at Sun, and the experience has only improved the more time I spent working there. I hope that the work that my group and I have done will be beneficial to the future of Project Darkstar.
To top off my final post, I give you one last movie. It is .... how should I say it .... thrilling.
Adieu.