SPX has been built by taking code from OGUR and refactoring portions of it to be more useful for general game development with the XNA framework. One week ago I loaded OGUR onto my XBox 360 to see how it performed compared to the PC version. That test was intended as a way for me to see if the first of two graphical overhauls looked as good blown up on a big screen as it does on my laptop.
Boy oh boy did I underestimate how important that test turned out to be.
Starting out, I couldn’t even get the console specific project copy to build. Thanks to multiple blog postings I was able to find out that the Xbox runs a different version of the .NET runtime than what runs on the PC. This meant that I first would need to implement some features from .NET 4.0 in .NET 3.5 which OGUR needed to run. Only after I completed this task did I realize that the target runtime could be changed in the Xbox project without adverse effect. DOH!
As soon as the game launched on the console, I knew something was horribly wrong. OGUR had run on the Xbox in its early stages, but I hadn’t taken any time over the past two months or so to test on the console. I didn’t think there would be any major differences between the two platforms, especially since OGUR (and subsequently SPX) are built to dynamically handle both PC and the Xbox.
By leaps and bounds the most dramatic problem was lag. A button on the controller needed to be held down for seconds before any movement would occur. Don’t even get me started on the lack of response shown by the HUD for each player. This was a crippling blow to my momentum on the project.
Sitting on my couch, I knew there was no chance of me backing away from OGUR. With the engine nearing completion I couldn’t cut my losses and either build from scratch on another platform or simply pursue a different game altogether. There was certainly a temptation to quit in the back of my mind, but in hindsight my obsessive nature over this project wouldn’t have possibly let me stop.
What could have been a trainwreck for OGUR turned into an amazing bound forward for both the game and SPX. Over the past seven days, I’ve run countless memory and processing performance tests for OGUR both on PC and the console. I’m happy to say that after many hours and an entire weekend spent, OGUR is once again playable in the Xbox. In the process, I’ve added a number of useful helper utilities to SPX which I plan on pushing to the repo once I can grab another spare handful of hours.