Te recomendaría que mires SFML y Polycode .
Creo que las respuestas aquí están perdiendo el punto. Es molesto tener que vincular a diez bibliotecas diferentes, como Freetype, libpng, tinyxml, Ogg, Vorbis, etc., para obtener algunas características básicas de XNA.
SFML
http://www.sfml-dev.org/features.php
SFML es una API multimedia gratuita de C ++ que le proporciona acceso de bajo y alto nivel a gráficos, entradas, audio, etc. En cierto sentido, es algo similar a XNA pero no le sostiene la mano tanto. Por ejemplo, SFML no tiene una clase de modelo.
Si planeas usar Modelos en tus juegos, deberías considerar usar Assimp .
Assimp agrega soporte para importar los siguientes 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/
Polycode es un marco multiplataforma gratuito y de código abierto para el código creativo. Puede usarlo como una API C ++ o como un lenguaje de script independiente para obtener acceso fácil y simple a gráficos acelerados en 2D y 3D, sombreadores de hardware, programación de sonido y redes, motores de física y más.
La API principal de Polycode está escrita en C ++ y puede usarse para crear aplicaciones nativas portátiles.
Además del núcleo de la API de C ++, Polycode ofrece un sistema de secuencias de comandos basado en Lua con su propio conjunto de herramientas de compilación. La API de Lua refleja la API de C ++ y puede usarse para crear fácilmente prototipos e incluso publicar aplicaciones completas en múltiples plataformas sin compilar C ++.
Polycode es de código abierto, lo que significa que puede aprender de cómo se hacen las cosas detrás de escena. Además, utiliza Assimp para cargar modelos, por lo que no debe preocuparse por vincular manualmente a Assimp.