December 6, 2007
Morda – a simple 3D game engine
Morda is a simple game engine that Miha Lesjak and I developed completely from scratch a few years back (actually in record time of 1-2 weeks) as part of an assignment at the university.
I did the 3D engine part with math calculations and evolutionary programming, while Miha worked on the scripting engine.
The terrain is generated either randomly (fractal generation) or in my terrain generation tool (where you can add or subtract various shapes to the map) and loaded into the engine, whereas the mesh is generated through simple triangulation (without any significant optimization).
The entities (tanks, turrets, buildings, trees, etc.) can be placed or moved arbitrarily (pitch, roll, yaw adjusted to the terrain), there is some gravity affecting the projectiles, tanks and buildings blow up in magnificent particle explosions, etc. The camera is either 1st person or free (6DOF) and the whole map is surrounded by a rotating sky sphere.
The tanks are hard-wired with an evasive-movement algorithm (they exit traps easily) and the A.I. can now be either scripting with dynamic decision trees or evolutionary programming – I have had quite some fun having generations of “evolutionaries” head agains a scripter team :).
Somewhere in the near future, I intend to squeeze the A.I. into standard DLL’s that perhaps students at the university can use to write their own tank brains and have them do all kinds of new funky stuff.
Oh, and the whole thing is written in C++ with Win32 and OpenGL.
Also, it’s time for some real monsters with IK! :)