Eu recomendaria que você olhasse para SFML e Polycode .
Eu acho que as respostas aqui estão meio que perdendo o objetivo. É irritante ter que vincular a dez bibliotecas diferentes, como Freetype, libpng, tinyxml, Ogg, Vorbis, etc., para obter alguns recursos básicos do XNA.
SFML
http://www.sfml-dev.org/features.php
O SFML é uma API C ++ multimídia gratuita que fornece acesso de baixo e alto nível a gráficos, entradas, áudio etc. Em certo sentido, é semelhante ao XNA, mas não segura sua mão. Por exemplo, SFML não tem uma classe Model.
Se você planeja usar modelos em seus jogos, deve usar o Assimp .
Assimp adiciona suporte para importar os seguintes formatos:
Collada ( .dae )
Blender 3D ( .blend )
3ds Max 3DS ( .3ds )
3ds Max ASE ( .ase )
Wavefront Object ( .obj )
Stanford Polygon Library ( .ply )
AutoCAD DXF ( .dxf )
LightWave ( .lwo )
Modo ( .lxo )
Stereolithography ( .stl )
AC3D ( .ac )
Milkshape 3D ( .ms3d )
Quake I Mesh ( .mdl )
Quake II Mesh ( .md2 )
Quake III Mesh ( .md3 )
Quake III BSP ( .pk3 )
Biovision BVH ( .bvh )
DirectX X ( .x )
BlitzBasic 3D ( .b3d )
Quick3D ( .q3d,.q3s )
Ogre XML ( .mesh.xml )
Irrlicht Mesh ( .irrmesh )
Neutral File Format ( .nff )
Sense8 WorldToolKit ( .nff )
Object File Format ( .off )
PovRAY Raw ( .raw )
Terragen Terrain ( .ter )
3D GameStudio ( .mdl )
3D GameStudio Terrain ( .hmp )
Izware Nendo ( .ndo )
Polycode
http://polycode.org/features/
O Polycode é uma estrutura gratuita, de código aberto e de plataforma cruzada para código criativo. Você pode usá-lo como uma API C ++ ou como uma linguagem de script independente para obter acesso fácil e simples a gráficos 2D e 3D acelerados, sombreadores de hardware, programação de som e rede, mecanismos físicos e muito mais.
A API principal do Polycode é escrita em C ++ e pode ser usada para criar aplicativos nativos portáteis.
Além da API C ++ principal, o Polycode oferece um sistema de script baseado em Lua com seu próprio conjunto de ferramentas de compilação. A API Lua espelha a API C ++ e pode ser usada para criar protótipos com facilidade e até publicar aplicativos completos em várias plataformas sem compilar C ++.
O Polycode é de código aberto, o que significa que você pode aprender como as coisas são feitas nos bastidores. Além disso, ele usa o Assimp para carregar modelos, para que você não precise se preocupar em vincular manualmente ao Assimp.