Delta Engine Blog

AI, Robotics, multiplatform game development and Strict programming language

Lost Squadron Part 1: Daily development screens


Day 1:
Finished loading textures, displaying text, game loop, imported lot of useful classes from older projects, tryed out dds and x file formats, etc. but we still got a boring black window. I promise tomorrow there will be something more fancy :-)
Hey now! Today I started the game and engine of a new smaller game project I will hopefully finish till chrismas. Our intern at exDream Ivo will help me out with some models and textures, other than that its only me ^^ The game will be called Lost Squadron and is a kind of an advanced shoot'n'up game, you drive around with a tank (and later on other vehicles) and blow up stuff (this might get you an impression on how I feel right now ^^)

I will use DirectX9 with c# for my first time (used only OpenGL before), but I already know how to program with DirectX (worked with DirectX in my c++ times) and I am pretty aware of some uncool factors when DirectX just returns a stupid error code -420529345 without any reference and no documentation about this (maybe when you search long enough you will find out that this translated to "some error occurred" or "some of the freaking 100 parameters you passed is invalid", like that tells you anything useful).
Don't believe me? Then just try to load a texture or create a empty texture. If any parameter is wrong, the file does not exists or the color of the sky is not an exact RGB value, the app crashes (an exception is thrown with an error message that tells you nothing). DirectX won't tell you whats going on, just that you have to try out for half an hour to find the correct combination (or you might find out that just some file was missing).

I always woundered why nobody bothered to tell Mircosoft that this is bullshit, any robust framework needs to handle that way better, you can't assume everyone passes only 100% correct stuff to you.

Whatever, maybe it's normal to be pissed, when dealing with this again after 2-3 years of OpenGL development (in OpenGL on the other hand you will sometimes not give you any error message at all, which can also be annoying).

To top that of I fought several hours to get DirectX9 native debugging enabled with VS2005, which resulted always in an IDE look up and crashes if any native exceptions occur (if nothing goes wrong or you use the release builds it works, but hell, I want to debug the freaking DirectX stuff). Anyways, I'm back to VS2003 for this project and had also to rewrite all my generics code back to work with VS2003 and .NET 1.1 (well, I had to do that anyways because this game should not require .NET 2.0).
Later I found out that any project (including all the c# tutorial and example files) will crash when quitting in debug version them because some memory is not freed properly. I just deactivated any Direct3D memory exceptions (with DxDiag) and now finally I can work without all this stupid exceptions (maybe it has something to do with bad graphic drivers or a corrupt dx version) ...

Well that aside, DirectX9 has a lot of good stuff. I really like the way you can now implement easily user interface graphics, buttons, textboxes, etc.

This game is not about writing some ugly spagetti code as fast as possible in this 14 days. I will try to produce the base code for my new engine and just develop the game to check out its basic features.
The engine will use a lot of Unit Testing, base classed for all the grunt work and also a lot of error handling and generalization.

I thought about using some existing engine for this smaller project, but I don't the way most engines just focus on first person shooter development and I also want to use my base classes I am comfortable with.