Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm creating an FPS game. I'm writing my own game engine. So far all the backend stuff is going great. I'd like to support md2 as the native file format for 3D Objects, but I also want to use skeletal meshes. Does anyone know if the md2 file format supports skeletal meshes?

In-case you need to know, I'm going to use blender as my Mesh creation tool and C++ as my programming language...


For got to mention, the engine is based on OpenGL...

Alright, for anyone who is reading this, I just found the Doom 3 md5 specifications ( It gives you some help on writing a parser (see bottom of link), but the example doesn't support lighting and texture mapping (the second set of example code allows for animation). Thanks @Neverender for answering my question...

share|improve this question
I already know md2 supports keyframe animation, but I'd prefer skeletal animation... – Josh Vega Jun 22 '11 at 20:36
up vote 3 down vote accepted

No, nor did the MD3 format used in Quake 3. As far as I know, skeletal animation was introduced as recently as id Tech 4 and the MD5 model format.

share|improve this answer
In that case, do you know of an Open Source MD5 parser and maybe an export plugin for blender? – Josh Vega Jun 22 '11 at 20:45
@jsvcycling: Assimp: Open Asset Import Library has .md2, .md3 and .md5( in work ) support. – momboco Jun 22 '11 at 22:01
Perhaps a format like Collada or FBX would be more apt. – Arelius Jun 23 '11 at 0:21
@Arelius: Collada and FBX are designed more as interchange formats, they shouldn't be the format that your engine works directly with at runtime. The expense of translating them to an efficient representation should be paid once at import/export time. MD5 is one such optimized representation. – Neverender Jun 23 '11 at 1:17
But if you don't care about interchange for the specific format, then it doesn't make much sense to use a very standardized format. Just keep your data-structures pointer-free, and dump that to disk. – Arelius Jun 23 '11 at 23:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.