Most of my summer was spent doing C development for a local business. Although I really enjoyed this and I think it was awesome experience, I really didn't get as much done on my project as I wanted to. What I did get done was good stuff though. My Project Initiation document is complete and it underwent some vast improvement after a couple of meetings with my tutor. I also benifitted from a serious requirements analysis session on the spec that I laid out in my previous post.
So here is my first major foot-in-mouth. Turns out what I thought was a modified version of "Snake" was actually one of the most popular arcade games of the 1980s. I had never heard of the game Centipede before taking on this project and I made a lot of assumptions about it without actually researching it beforehand. Pretty big mistake in my opinion. A few minutes of YouTube†searching would have given me a clearer idea of what was expected of me. From that video, it seems like a more dynamic form of Space Invaders. I'm not really a fan of retro arcade games, but it looks pretty fun.
That was my first glaring error. The second was focusing on the "game" part of my spec rather than the "demonstration" part. My supervisor warned me that the main purpose of this project was to demonstrate sound networking principals. While a playable game would be great, it wasn't at all nesessary and should be my main focus. What I should concentrate on instead is identifying and incorporating as many networking technologies as possible into the finished product, then include ways to demonstrate them effectively infront of a group of non-technical individuals. In some ways this is more challenging that what I had in mind originally (something along the lines of: "Hey kids! check out this neat toy I made!").
Still, I'm glad I identified these mistakes early and moved to correct them before they seriously impacted my project. I'm still intending to produce my project in Java and have begun to produce a prototype that will run on a single computer. It's been a while sinse I have done any real work in Java so I'm having to spend a decent amount of time reminding myself of how things work. It's a shame that most of the skills I gained when coding solidly in C will not translate here, but I'm looking forward to working with a higher level language again.†