Я рекомендую вам взглянуть на SFML и Polycode .
Я думаю, что ответы здесь отчасти упускают суть. Раздражает необходимость ссылаться на десять различных библиотек, таких как Freetype, libpng, tinyxml, Ogg, Vorbis и т. Д., Чтобы получить некоторые базовые функции XNA.
SFML
http://www.sfml-dev.org/features.php
SFML - это бесплатный мультимедийный API C ++, который обеспечивает низко- и высокоуровневый доступ к графике, вводу, аудио и т. Д. В некотором смысле он похож на XNA, но не слишком сильно тебя держит. Например, SFML не имеет класса Model.
Если вы планируете использовать модели в своих играх, вам стоит взглянуть на использование Assimp .
Assimp добавляет поддержку для импорта следующих форматов:
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 - это бесплатный кроссплатформенный фреймворк с открытым исходным кодом для креативного кода. Вы можете использовать его как C ++ API или как отдельный язык сценариев, чтобы получить простой и легкий доступ к ускоренной 2D и 3D графике, аппаратным шейдерам, звуковому и сетевому программированию, физическим движкам и многому другому.
Ядро Polycode API написано на C ++ и может использоваться для создания переносимых собственных приложений.
Помимо основного C ++ API, Polycode предлагает систему сценариев на основе Lua со своим собственным набором инструментов компиляции. Lua API отражает API C ++ и может использоваться для простого создания прототипов и даже публикации готовых приложений на нескольких платформах без компиляции C ++.
Поликод является открытым исходным кодом, что означает, что вы можете узнать, как все это делается за кулисами. Кроме того, он использует Assimp для загрузки моделей, поэтому вам не нужно беспокоиться о ручном связывании с Assimp.