Chunky's Blog o' Fun

How did I get here?

— Posted by chunky @ 15:49

A Dream Game And Some Physics

For a long time I was a huge huge fan of garagegames [perhaps a topic for another day, right there]. I started using Torque, and was slowly working on my "dream game", just like everyone else. It didn't take me long to realise that a huge part of my game was actually the physics - that was pretty much the whole point of it, in retrospect.

Around that time, almost no-one had got a physics engine working with Torque, and even fewer had it working on platforms other than Windows. Fewer still than that had used a physics engine with a license that us open-source hippies consider reasonable.

So, I went on a huge detour to add a new physics engine to Torque... ODE, in my case. At the time, ODE was far and away the best option; it had the best licensing and the best cross-platform code around, as well as being a genuinely good physics engine.

Move forward a couple years. All I'd really done is enjoyed messing with ODE physics, using Torque as an output medium. The Linux community on garagegames is pretty small, everyone kinda knows each other. One of the really long-term Linux guys on garagegames' site contacts me because he's working on a game, and wants a physics engine working for it. Of course, he's using torque for his game [hence how I know him through garagegames].

The truth of the matter is that my ODE-torque integration had some pretty serious drawbacks.  Simple things that I didn't really know enough about at the time to actually implement a physics engine successfully; at its core, the way I'd started implementing it didn't take networking into account, and bolting it on afterwards was hard as well as hakky. There were other things, but that was the biggest.

 

 

A Dream Game And Another Dream Game And A Third Dream Game

Right around this time I was beginning to notice that a *lot* of people on garagegames were hobbyists. All of them, working on their own dream game, and never really interested in working on other people's dream games. And all of them failing. So many games begun, so many dreams started but then not finished. Lack of experience, lack of knowlege, targets too high. All the usual suspects of failure.

Talking to David about his game, we experimented with getting my physics code into his game to get it all working together, but just kept coming across all sorts of issues.

I had my dream game, obviously, but I decided... you know, I don't want to be another of those people who fail to build their own dream game because they won't work with other people. So I talked with David and decided I'd work on his dream game with him. It would give me the experience and knowlege I needed to do my own, and hopefully a codebase I could reuse in future efforts. It feels good to work with other people, and I hate working in a vacuum. Helping David was the obvious step for me to take.

 

Torque, OpenGL, Ogre3D

So many things falling into place, at the same time as we were working on ODE-torque stuff in his game.

I was teaching myself OpenGL and trying to wean myself off Torque, he was getting irritated at Torque and garagegames for all the same reasons as me. I was experimenting with OpenGL and ODE and wrote a first prototype of part of his game in an afternoon - It was already a step ahead of what we'd spent weeks trying to achieve with my ODE-torque code. I soon noticed that OpenGL is awesome and powerful and a crapton of work

I had heard good things about Ogre3D, picked up a book about it and tried it out. In the intervening few years since I had last evaluated the physics engines that were available, bullet had sprung up and become one of the obviously better options out there. I also had some problems with a specific feature of ODE that I really needed, so I took the leap to try out bullet when I switched to Ogre.

Bullet and Ogre together became the new base for physics and graphics in TuxWars3, a decision that in retrospect was absolutely perfect. I have a fully working game engine that I've mostly written myself [with a lot of help and support from David - it is his dream game and not mine, after all :-)].  I've learned more about programming, especially games, in the last few months than I have learned in the whole of my life put together.

 

Thanks

David has incredibly generously provided me with enough hardware to be able to do things I was entirely unable to do before [Windows development, TuxWars compiles on Linux in 45 seconds instead of an hour...]. He's also providing me hosting and as much remote hardware as I can use. I cannot thank him enough for all his help, I'm just doing my best to return it all in as good code as I'm able to produce.

 

And I've been having fun. That's the important thing in this world, I figure.

 


Powered by LifeType