Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Modding MC2

Sign in to follow this  


Ever since Microsoft released their XNA Build CTP - with accompanying sources for MechCommander 2 - I've wanted to play around with it. Making changes to a large commercial codebase is usually quite a bit more educational than writing something from scratch.

The first thing I want to do is extend the build pipeline (making proper use of the XNA pieces); I want to add a new target that will take the executables and compiled art assets, generate an installer, and pack the whole thing up into a disc image, as if you could immediately burn it to a CD and have something shippable. This means I'll also be playing with writing an Autorun executable, and I'll try and throw some localization work in there too.

When I first decided I wanted to do that, I started out with the aim of writing new MSBuild tasks for generating ISO files, to the extent of implementing my own C# ISO file library. This, ladies and gentlemen, was a very bad idea. The C# ISO library has now been retired, and I'm using 'mkisofs' from the CDRTools package instead. There was no way I'd ever be able to write my ISO component to compete with the level of functionality that CDRTools offers, plus it's had a five-year head start when it comes to testing etc. This means that I reduce the ISO-building step from a few thousand lines of source code to a five-line entry in the XNA build project. Oops.

After that, I'd quite like to get into the code for the game itself, but irritatingly it looks like the renderer for the game (which is built on DX7) hasn't been released, as it's part of their "GameOS" library. However, we do have the GameOS headers, so it might be straightforward (long, but not hard) to implement GameOS myself given that header as a specification. Then again, I've not yet looked into how the game code makes use of GameOS; if it's decently structured, then I might be able to get away with simply changing the render calls in the game code to use my own library, without having to replace all the other things that GameOS does for the game.

I'd like to start by getting the game running using Direct3D9, and then I'm interested in porting it to Direct3D10 and having it follow all Vista best practices, like appearing in the Game Explorer and suchlike. Porting a commercial codebase to D3D10, getting it into a "real-world" situation, is going to be a much more interesting way of using the API than writing a little sample app.

(I would, of course, write the whole thing up for your benefit and amusement).
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!