Please note that I don't update this web site anymore. You can visit my new personal blog at

Choosing An Engine

Sunday, November 21, 2004

The game I am currently writing is a puzzle game that isn't too technically demanding. It uses 2D graphics and plays some music and the occasional sound effect. About a year ago I started writing my own object-oriented engine for 2D games in C++. My goal was to take away all the repetition in setting up things like the graphics, input and sound system. When I started writing my puzzle game, this was the engine I intended to use.

A couple of months later, I bought the Torque engine. This purchase had nothing to do with the puzzle game. I just wanted to play around a bit with a real 3D engine and maybe in the future, when I knew enough about 3D programming, I could use it for my own games.

But then I started thinking: what if I write my game in Torque? Even though it's a 3D engine, it has a GUI system which would be adequate for my game. I weighed the cons and pros. My own engine has an interface that I like very much. The fact that I designed it myself might have something to do with that. It also produces executables that are about one sixth the size of Torque's executables. Torque, on the other hand, is a tried and tested engine with a lot of built-in features, ready for me to take advantage of. It provides support for graphics, audio and networking and it's a multi-platform engine.

I decided in favour of Torque, especially because of the multi-platform feature and the network support. Even though my own engine has a platform-independent interface and it's not too hard to plug in any low-level API you want, until now I have only implemented sub-systems using DirectX and that doesn't run on Mac or Linux.

So Torque takes a lot of work off my hands which allows me to focus exclusively on my game. Well, in theory. The last couple of weeks I spent quite some time getting to know the Torque engine and making the GUI system do what I want. I finally got the hang of it and then...

...I discovered the Simple Directmedia Layer, SDL for short. I don't know why I never tried it, since I must have come across it before. Anyway, today I played around with it a bit and I have to say that I'm quite impressed. It's a easy to use, it provides support for graphics, input, audio and networking and it's free. I can easily plug it into my own engine.

This week I'll be working on the code for the game logic, which is completely decoupled from the code that handle graphics, input and so on, so I still have a week to decide which engine I am going to use.

Back to blog index


Tell me what you think

Since I'm not updating this site anymore, I disabled comments. You can visit me at my new site: