Saturday, November 18, 2006

Day 309 : Settling collisions

This has been one of the tough streaks of development. I once thought simple bounding-box collision detection would be enough for the game, but a few weeks back I ran into a slew of problems and realized it wouldn't be enough.

Problem is, when it comes to 3D programming, I'm like a blinded buffoon. I use Ogre, and I have a game that works with it. But I don't pretend to know how it works on the inside, nor do I have ambitions to. As far as I'm concerned, Ogre is a tool I use, if it works it works, if it doesn't then I'm screwed. But I trust its team to bring something to the table that's prod ready and rock-solid.

When it comes to collision detection, there is only lib out there that links to Ogre, it's OgreOpCode. I tried it but I didn't feel it had to robustness and level of finish that Ogre has. And if I have to modify it to work with my game, it means I have to understand it. And like I said, when it comes to understanding 3D engines, I'm a blinded buffoon. Can't risk it.

Other options for collision binding included full-blown physics engines. That is greatly overkill for a rail-shooter engine. At least for the first revision. So I've now decided to implement my own collision detection routines. It'll be simplistic, a list of boxes and spheres attached to bones. All defined in an XML file resting at the same place as the .mesh file. It should be enough.

I'm aiming to be able to spend Christmas vacations building content, and maybe deliver the first level with production models at the end of those vacations. Should be smooth sailing from there. Right? RIGHT?

No comments: