The XNA Sojourn Begins

2 minutes read

Hey folks. After a good amount of time away, I have decided to come back to game development land. This time, I will continue work on my game Spaceballs (a Geometry Wars clone), only using XNA this time around. I can't believe I'm going to admit this, but to give myself time to do this, I have even canceled my World of Warcraft account (again). I just have way too much stuff on my plate, and if I want to get back into game development, something has to go (thanks go to Chris and George for encouraging me to do so simply by reading their posts).

So, I've started "porting" Spaceballs to XNA. Maybe not so much porting, as re-writing (as I want the game architecture to reflect the new XNA environment and framework). My first impressions of XNA? Oh boy, does it kick butt. As a guy into design patterns and such, some of the first things I notice are the architecture of a framework I'm working with. And, truth be told, the XNA framework is one of the first frameworks (not including the .NET Framework) that I have just LOVED the architecture of. The separation of GameComponents from GameServices from the Game itself is fantastic. The way that the GameServices collection in the Game serves as a ServiceLocator of sorts is just fantastic. I'm so used to having the "why did they do this? This is crap! Oooo, that's ugly" kind of thoughts with other frameworks, I'm just so pleasantly surprised to not be having those thoughts with XNA (quite the opposite actually).

Now, if you're not too familiar with a Services (ServiceLocator) pattern, then I can see how the distinction between GameComponents and GameServices might be confusing. I hope to shed some light on that in the future as I will be planning to resurrect the tutorials from before (perhaps this time in Screencast form).

I have found that when working with the XNA framework, I have noticed a good amount of my old code from Spaceballs simply disappearing because the Framework is handling what I need it to handle. That's a feeling I like to have. Not only that, if used properly, you truly start to build re-usable components that you can use in various games since you're encouraged to think about GameComponents and GameServices.

One of the other things I'm looking forward to is that we, as game developers, can finally stop talking about "the perfect game loop" and those sorts of conversations, and start talking about the cool GameComponents we are building and such. I think the XNA framework could be a huge step forward in providing us a way to share patterns and practices with each other. Not only sharing patterns and practices in a "word of mouth" sort of way, but by actually sharing the GameComponents themselves with everyone. Man, there are exciting times ahead of us as hobbyist game developers.

At the rate I'm going though, it might not actually take that long for me to get back to where I was when the GWB game development contest finished. Hopefully then I'll crank through the tutorials/Screencasts. I'm currently shooting for sometime around Christmas time, but it might be afterwards.

I would like to give one shout out right now. David Weller and team, GREAT JOB. You guys did such a good job developing this product for us. If it was just for PCs, I would still brag about how cool it is. But considering it will be XBox capable as well? You guys truly are amazing. Keep up the great work!

Updated:

Leave a Comment