C ++ 용 XNA와 같은 것이 있습니까? [닫은]


18

XNA의 기능을 좋아하지만 C ++ 게임 개발에 참여하고 싶습니다. 문제는 이제 png 파일로드에서 창 열기에 이르기까지 모든 것에 대해 걱정해야한다는 것입니다. 이것은 약간 성가시다.

이 문제를 해결하기 위해 XNA의 C ++ 버전을 정말로 원합니다.


DirectX 툴 키트 를 아직 보지 않았다면 직접 살펴 봐야합니다 ... XNA Game Studio 클래스 디자인에서 명시 적으로 빌려온 Direct3D 11 프로그래밍을위한 C ++ 라이브러리입니다.
Chuck Walbourn

답변:


16

SFMLPolycode 를 보는 것이 좋습니다 .

나는 여기의 대답이 요점을 놓치고 있다고 생각합니다. 기본적인 XNA 기능을 사용하려면 Freetype, libpng, tinyxml, Ogg, Vorbis 등과 같은 10 개의 서로 다른 라이브러리에 연결해야합니다.


SFML

http://www.sfml-dev.org/features.php

SFML은 무료 멀티미디어 C ++ API로 그래픽, 입력, 오디오 등에 대한 저수준 및 고급 액세스를 제공합니다. 어떤면에서는 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 )

폴리 코드

http://polycode.org/features/

Polycode는 창의적인 코드를위한 무료 오픈 소스 크로스 플랫폼 프레임 워크입니다. C ++ API 또는 독립형 스크립팅 언어로 사용하여 가속 2D 및 3D 그래픽, 하드웨어 쉐이더, 사운드 및 네트워크 프로그래밍, 물리 엔진 등에 쉽고 간단하게 액세스 할 수 있습니다.

핵심 Polycode API는 C ++로 작성되었으며 이식 가능한 기본 응용 프로그램을 만드는 데 사용할 수 있습니다.

핵심 C ++ API 외에도 Polycode는 자체 컴파일 도구 세트가 포함 된 Lua 기반 스크립팅 시스템을 제공합니다. Lua API는 C ++ API를 미러링하며 C ++을 컴파일하지 않고도 프로토 타입을 쉽게 생성하고 전체 플랫폼을 여러 플랫폼에 게시 할 수 있습니다.

폴리 코드는 오픈 소스로, 배후에서 작업이 수행되는 방식을 통해 배울 수 있습니다. 또한 Assimp를 사용하여 모델을로드하므로 Assimp에 수동으로 연결할 필요가 없습니다.


사소한 설명 : Polycode는 모델을로드하는 데 assimp를 사용하지 않고 모델을로드 할 수있는 형식으로 변환하는 assimp 기반 도구를 가지고 있습니다.
cib

4

말 그대로 게임 개발의 모든 측면을 처리하는 수백 개의 라이브러리가 있습니다. 이미지로드, 창 열기 및 관리, 렌더링, 사운드, 물리 등

"원 스톱 상점"솔루션이 많지 않아 모든 것을 한 번에 얻을 수 있습니다. 이것이 XNA의 이점 중 하나입니다. 엔진을 만들려면 일반적으로 많은 라이브러리를 함께 가져와야합니다. 따라서 하나의 구성 요소가 부족한 경우 다른 구성 요소로 쉽게 교체 할 수 있습니다. 그러나 동시에 더 많은 작업이 필요합니다.

그러나 실제로 어떤 프로그래밍 언어를 사용하려고합니까? XNA를 정말로 좋아하고 게임 개발에 사용하고 싶은 것 같습니다. 그렇게하세요.


3

처음에는 D3DX와 DXUT를 사용할 수 있습니다 .XNA와 같은 것은 아니지만 창 만들기, 메인 루프 실행과 같은 환경 설정에 많은 도움이되며 D3DX11CreateTextureFromFile ()과 같은 유용한 기능이 있습니다. 포인터를 관리해야하지만 그렇게 어렵지는 않습니다 . C ++에는 사용할 수있는 라이브러리가 많으므로 성능을 향상 시키거나 변경하려는 항목을 원하는대로 바꿀 수 있습니다.

D3DX 라이브러리와 DXUT는 D3D9와 10에 가장 적합하며 DXUT는 소스 코드와 함께 제공됩니다. DX11의 경우 그들은 그 라이브러리에서 일부 함수를 컬링했지만 여전히 가장 유용한 함수가 있기를 바랍니다. 내가 잘 기억하면 효과 프레임 워크를 소스 코드 형식으로 제공합니다 (탐색 인내심이있는 경우).

필자는 피라미드의 프레임 워크보다 낮은 수준에서 작업 할 때 훨씬 더 많은 것을 배웠으므로 XNA를 사용한다고 말할 수는 없지만 대부분 목표에 달려 있습니다.


모든 버전의 D3DX는 더 이상 사용되지 않습니다. '현대'Direct3D 11.x 유틸리티 라이브러리는 Windows 8.x SDK의 DirectXTex , DirectXTKDirectXMesh 와 DirectXMath입니다. 최신 버전의 Effects 11DXUT11 은 이전 코드베이스를 포팅하고 Win32 데스크탑 앱에만 만족하는 사람들을 위해 CodePlex에 있습니다.
Chuck Walbourn

1

C ++ 언어에 익숙해지면 SDL과 같은 간단한 라이브러리를 사용하여 게임 개발 경험을 얻은 다음 openGL을 사용하여 프로그래밍하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.