Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Is there a de facto format for exporting a 3D model from modeling software to a game engine?

I know it varies by engine and situation, but what is the general idea that comes to a skilled game developers mind when this question comes up?

In my mind obj format comes up, but it doesn't support animation.

So, what could be the best format which supports/covers more or less every feature that an modern engine can cover? FBX? Collada?

Some professional insight would help.

share|improve this question
    
I think the term you were looking for is "de facto", not "De-factor". –  Nicol Bolas Jul 4 '11 at 9:37
    
@nicol-bolas fixed –  iamcreasy Jul 4 '11 at 9:41

1 Answer 1

up vote 8 down vote accepted

There is no "best format"; there is only varying levels of annoying.

Collada does pretty much everything you could possibly want to do, at the cost of doing everything you don't want to do as well. This makes it a useful interchange format, but not something you should probably be looking to load directly into your game.

FBX isn't quite as widely supported, being a proprietary format. And it's... a proprietary format, but at least the format specification is available.

Most game developers need to massage the data, whatever the kind, into something their game can load and throw onto the screen as fast as possible. Therefore, most game engines that support the interchange formats will use an off-line tool to transform them into their game-specific formats.

And that's generally a good way to work. You have a good separation of code: the code that massages the data is separate from the code that loads it into your game. You get fast loading performance, while still having the ability to format the data as you need for maximum speed and use. And you still can see what the data looks like in your original exported file format, which is generally some kind of text file.

share|improve this answer
    
"but not something you should probably be looking to load directly into your game." why? –  iamcreasy Jul 4 '11 at 9:50
    
"..use an off-line tool to transform them into their game-specific formats." Does it have to be binary level conversion? –  iamcreasy Jul 4 '11 at 9:51
4  
@iamcreasy: "why?" Have you looked at Collada? Do you really want to load that, do that many ASCII-to-float conversions, and then after all that is done, compress the data into the final form used by your game? –  Nicol Bolas Jul 4 '11 at 10:00
2  
@iamcreasy: It doesn't have to be a binary file, but it's not a bad idea for it to be one either. You can load it directly as a memory image in some cases. You could even load vertex data directly into a mapped buffer object pointer. Load times in games are bad enough without someone making them worse. –  Nicol Bolas Jul 4 '11 at 10:01
1  
@iamcreasy It has to be binary data, everything else is a waste for an engine –  Maik Semder Jul 4 '11 at 22:03

Your Answer

 
discard

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.