I'm getting started with XNA and Blender and am trying to find good quality, up to date information on the various 3D file formats that are used in game development.
Clearly many games are developed with multiple and custom 3D file formats, but I'm interested in choosing a good solution using a more commonly supported format.
What are the most popular formats and what distinguishes them?
NOTE Ideally, they should support animations, but I would also be interested in other formats that might be used for building maps or static objects.
If you're using XNA, then the best option is probably FBX. The main reason I say this is that it is the single, non XNA specific, format supported natively by XNA in the content creation pipeline.
For many years now the DirectX file format (.x extension) is very popular and Blender contains a built-in exporter for this.
It might be worth giving glTF a look.
There is also a glTF 2.0 version in the works that adds physics based rendering support. Draft on the Khronos site.
Assimp has 'partial' support for it. Not sure what's lacking.
There's also a bunch of loaders for different languages (C++, WebGL/JS, Rust, Go) on the github.
There's also a COLLADA to gltf converter.
It uses a JSON file as a kind of manifest then loads the data into other files such as .bin for binary, various images and glsl for shaders. There is a binary extension though.
Of course since it's newish (and still under development) support won't be so great. Last time I looked COLLADA's was a fairly hit and miss too.
There is also Declarative 3D.
See this paper that covers both.
Both of those format do have a bit of a web focus, but should be fine for games too.
The already mentioned COLLADA and FBX are the only standard formats that have achieved any significant adoption in the games industry. Few games will load them directly though - they are generally used as intermediate formats for export from DCC apps and then further processed into more optimized runtime formats that are generally custom and engine specific.
Hobbyist developers often use file formats from popular games as a starting point. The Quake 3 model and map formats were quite popular for a while. Microsoft's .X format was also quite popular for hobbyist projects due to the availability of a number of exporters and loading support in the D3DX framework.
You probably want to look at COLLADA which is a widely used standard in 3D game development:
http://en.wikipedia.org/wiki/COLLADA
PMD file. They are used for MMD animations and much more! Just search around Deviantart.com for things like "MMD models"
PMD and PMX AND OBJ