I found out the hard way that you can't create games from scratch, at least not on your own. So where I started out making objects directly in OpenGL, I soon discovered I needed a few more lives to complete this project if I kept doing it that way. Here are the tools and software libraries I used most to help me make this project:

 

esenthel logothe Esenthel game engine

This one is very important. It's amazing how good it is for such a low price. I could use the editors and c++ library for free as long as I wanted. The developer solved most of my questions in a matter of hours, sometimes minutes. If you want to make a 3D game, I really, really recommend this engine.

fmod logo

Fmod sound engine

Sound was very important to me. So using standard Microsoft DirectSound was just not good enough. Fmod is a lot better. The rolloff (how sound disappears in the distance) is much more realistic. It also has lots of extra functions. I still have to discover a lot of them. You can add localized reverb and blend reverb between locations. You can use DSP functions easily or implement your own callbacks. And there's even support for wall reflections!

nvidia physx logoNVIDIA PhysX

Everything you need is already available in the Esenthel engine. So while at first it took some time getting used moving objects around in a realistic way (most games still use fixed speed for moving things around) using a physics library really made a difference. And it's more fun too.

 

Kiel Figgins

Finding a decent avatar for free is not easy. Most of the good looking avatars you'd want to use will cost you a lot of money. But then I found this cute puppet made my Kiel Figgins. It's not that detailed, but I just loved it! And it's free.

freesound.org

I made a lot of the sounds myself, but also took some interesting ones from freesound.org

Other tools

And of course there's all kinds of software involved to create this game. For example Audacity, Ableton Live, Pure Data and the Composers Desktop project for sound. The Gimp, Blender and Inkscape are used on the graphical side.