Delta Engine Blog

All about multiplatform and game development

New Project: Rocket Commander

It's time for another cool game: Rocket Commander!

The cool thing about this game is the fact, that Microsoft will ship it with Visual Studio 2005 (german, release: feb 2006) and hopefully push it a little to make it more known :)

The full source code and game will also be available freely and can be used to learn .NET 2.0 and DirectX (using all the newest tricks with c# 2.0 and Managed DirectX for .NET 2.0). I will develop the game this month, dunno yet when the official online release will be, we will see (we may have to wait till 2006).

I will post screens and code tricks every week for this project and hopefully get some attention for this little fun game. The idea is pretty old, I've told this game idea a lot of people in the last 1.5 years, but I wasn't able to convince anyone that this is a really cool special and unusual game. Now I told some Microsoft guys the same idea (Dirk Primbs and Lars Lippert) they were really amazed and think this idea would be great (I thought they were kidding me at first).

This is the basic game idea: Rocket Commander is a little beginner friendly casual 3D game. The player finds himself inside a rocket flying through a city, an asteriod field or other levels. The basic task is not to kill enemies or to solve any quests like in many other games, but to finish a level by flying through it without colliding with anything. Additionally there are special items, which can be collected to increase the health of the rocket, add additional fuel, increase the speed for a short time and give more lifes.

Everything will be presented in a nice space enviroment using a lot of cool shaders (parallax mapping, glow effects, motion blur, hdr lighting, etc.) and a lot of cool effects and graphic tricks. It is still a casual simple game, which is hopefully a lot of fun to play. Since the source code is free, players are encouraged to modify it or add extensions, but this is a topic for a later time.


Another topic: 3D Studio Max 8 (3dsMax8) was released a little longer than a month ago and we are currently in the progress of writing an exporter for our in-game models (has nothing to do with Rocket Commander, which will just use simple .x files, which can be exchanged by the user). I posted the following stuff it the Autodesk Sparks board (but there isn't anything going on there, 2 views per day?):

I'm having very ugly problems with IGame and 3dsMax8. Every single exporter I tested (and recompiled using max8 sdk) using IGame crashes in 3dsMax8 while it was working on 3dsMax7. I've tested: IGameExporter (sample directory), creating a plugin with the vs wizzard (in vs2002, 2003 and 2005, no difference except a bunch of header file errors, which can be fixed easily) and using other IGame exporters.

This is what happens in every single one of the exporters using IGame I debugged, I've used IGameExporter.cpp to explain the problem:

IGameExporter.cpp line 2482:

igameVersion = GetIGameVersion();
igameVersion returns always 0 in 3dsMax8, in 3dsMax7 the exact same code produces igameVersion == 1073741824

that's strange, but the following line still is valid: IGameExporter.cpp line 2498:

pIgame = GetIGameInterface();

and finally when calling InitialiseIGame (no matter with what parameters or in what order) everything crashes: IGameExporter.cpp line 2504:

pIgame->InitialiseIGame(exportSelected);

Everything after that gets never executed. If commenting out that line, every other call with pIgame crashes (pIgame, which is of type IGameScene, is not null, it got a valid pointer value).

Now the solution to all this crap: Just copy over the IGame.dll (version 7.0.0.64) from 3dsMax7 to 3dsMax8 (just save the IGame.dll version 8.0.0.92) and now everything works fine. But I guess new features of IGame 2.0 (now called 3dxi - Date Exchange Interface or something) wont work this way ^^ A fix from Autodesk would be nice anyway.

There are still some things missing in 3dsMax7 (e.g. the IGameFx class), which can be annoying, but at least 3dsMax8 does not crash all the time. Let's hope they do a 3dsMax8 SP1 sometime soon. We also found out, that it is easier to develop for 3dsMax7 and then just use the plugin in 3dsMax8 too with the IGame.dll copied over from 3dsMax7. This also works nicely with other plugins like the Panda Exporter (for .x files) and other IGame exporters (which all crash in 3dsMax8). At least Microsoft isn't the only company which screws up with their managed DirectX releases, all the managed dll hell (wtf? I thought there is no dll hell anymore in .NET) and the still missing working MDX for .NET 2.0 final.

Investing a bit more resources would be nice to support important things like Managed DirectX (well, there is just Tom Miller from Microsoft) or plugins for 3DSMax (more or less just Neil Hazzard from Discreet). They are both great guys and they do a hell of a nice job managing such big tasks, but still: It would be nice if the companies would hire more people for this things. It's not like nobody is using Managed DirectX or never going to write a plugin for 3dsMax (which again is a hard job with c++, a write only language ^^).

Enough rambling, back to work ...