When I started development on the new game engine using C# and XNA, I was more than skeptical of performance. The last engine was being built in C++ using DirectX, so I thought there is no way that the same performance could be achieved. I didn’t trust the JIT (just in time) technology, but I am happy to say I was wrong! Not to mention that the processing power that people have in their computers now is 100x what it was a decade ago.
Project Loke was actually the Windows version of the Cortex engine. The engine has surpassed my expectations on both speed, and flexibility. We built Magic 8 game as a proof of concept of the engine and got very little in errors or negative feedback. The only error that was found was actually a logic error on my part in the AI of the game and not the engine.
Last week we started project Hemlock, which is the XBox 360 version of the Cortex engine. This meant buying gold XBox live status and a premium development license from XNA. However in return we get to link the PCs to the XBox, deploy the game engine and games, test and remote debug them all on the computer while running them on the XBox. So cool!
Porting from the PC to XBox:
The first thing I did was create a parallel project inside MS Visual Studio that allows for the Xbox to be compiled and debugged alongside the Windows version. So now I can choose to build the Windows version, the XBox version, or both at the same time. Using one set of code and one project to compile it all is a giant headache solved.
At first the engine didn’t port over well because the resolutions of the Windows games are not the same as the TV resolutions. Not to mention that TV resolutions change from set to set. So I had to change the engine for the XBox build to ignore the Windows code for fullscreen and windowed modes upon graphics initialization. However, since we want all the games we make on the PC to run on the XBox without any changes to content we have to make sure everything is scalable, so the Cortex engine handles all that too. This means any game we build at any resolution will always run on any system regardless of what resolution they are at. This includes aspect ratio changes too since there are so many.
Then I ran into an issue with the audio soundtracks not playing. The sound effects played, but not the soundtracks, hmmm. Upon inspection I discovered that Media Player on the XBox is asynchronous so I have to start a song, wait till it starts playing then continue the thread. It is a minor issue and does not effect game play in any way. Especially since sound tracks are always started at the beginning of the level. So that is a week in review with project Hemlock!
You can read more and follow me and Neuron Games, Inc. here: