C ++ 게임 개발을 위해 크로스 플랫폼 3D 엔진을 사용하기 쉬운가? [닫은]


73

3D 게임 작성에 손을 대고 싶습니다. 그러나 개별 삼각형을 그리거나 3D 객체 로더를 작성하는 등의 낮은 수준에서 시작하고 싶지 않습니다. Irrlicht , Crystal Space 3DCafu 와 같은 것들에 대해 들어 봤지만 경험이 없습니다. 나는 3D 수학 이론을 배우지 않고 GPU가 내부적으로 어떻게 작동하는지 배우지 않고도 이러한 엔진 또는 다른 엔진에 대해 잘 알고 있고 사용하기 쉬운 엔진의 제안을 찾고 있습니다.


16
그것이 닫 혔을 수도 있지만,이 질문은 나에게 매우 도움이되었습니다.
Caleb Jares

4
아주 좋은 스레드 인 ditto는 왜 stackexchange가 이런 종류의 질문을 좋아하지 않는지 모릅니다.
steveh

2
그들은 내가 가정 질문 닫 좋아
프랭크 크랜 스턴


답변:


48

나의 의견 (오픈 소스 3D 엔진에만 해당) :

  • 일리 치트 :
    • 가벼운 3D 엔진
    • 종속성이없고 STL이없는 깨끗한 C ++
    • 잘 문서화되어 있지는 않지만 좋은 자습서가 있습니다.
    • 매우 작아서 쉽게 사용자 정의 할 수 있습니다.
    • 공식 SDK에는 OpenGL 3.X 드라이버, Direct X 10.X 또는 11.X가 없습니다.
    • 모바일 개발에 매우 ​​좋습니다.
    • 좋은 커뮤니티
    • 사용 가능한 확장명
  • 오우거 3D :
    • 큰 3D 엔진
    • STL, 예외 및 RTTI와 같은 최신 C ++을 사용합니다.
    • 좋은 문서 (출판 된 책이 있습니다).
    • 많은 렌더러 (OpenGL, DirectX 및 OpenGL ES ...).
    • Ogre3D는 CEGUI 또는 Bullet 통합, 트리 노드 등 많은 확장 기능을 가지고 있습니다.
    • 그러나 구체적인 것을 원한다면 Ogre3D를 확장하기가 더 어렵습니다.
    • 큰 커뮤니티
    • 많은 확장
  • 크리스탈 공간 : 오래된 디자인으로 사용하기가 어렵습니다. 며칠 후이 엔진 사용을 중단했습니다.
  • Horde3D
    • 소형 엔진
    • 현대적인 디자인
    • 가벼운 커뮤니티
    • 확장명 없음
  • 블렌드 엘프
    • 일부 종속성이있는 소형 엔진
    • DOF 또는 HDR과 같은 현대적인 효과를 갖춘 현대적인 디자인 ...
    • OpenGL 만
    • 가벼운 커뮤니티
    • 물리학을위한 총알 통합
    • 이 엔진을 조종하기 위해 루아를 사용합니다

TL; DR :

  • 데스크탑 게임 (또는 향후 상용 게임) : Ogre3D
  • 첫 게임 : Irrlicht
  • 모바일 개발 : irrlicht (Ogre3D가 너무 큼)
  • 섹시한 효과를 위해 : Blendelf

솔직히 말하면 모바일 개발에 Irrlicht를 권장하지 않습니다. 너무 많은 메모리 할당을 수행하며 맞춤형 메모리 할당 구현을 거의 또는 전혀 제공하지 않습니다. 시작시 거의 60000 개의 할당으로 인해 시작 시간이 큰 문제입니다.
Simon

나는 안드로이드와 IOS에서 Irrlicht를 사용하고 시작 시간은 큰 문제가 아니다 ... 텍스처 로딩이 할당보다 훨씬 길다 ...
Ellis

@Simon 당신이 "커스텀 메모리 할당 구현"으로 무엇을 말하는지 설명 할 수 있습니까? 이것이 무엇이며 왜 원하는가?
temporary_user_name

2
@Aerovistae 메모리 할당에는 운영 체제에 대한 호출이 필요합니다. 비용이 많이 드는 작업입니다. 일반적으로 게임 엔진을 만들 때는 자체 메모리 관리를 원합니다. 큰 메모리 덩어리를 한 번 할당 한 다음 해당 메모리를 프로그램에 직접 배포해야합니다. 그렇게하면 여분의 메모리를 원할 때마다 포인터를 움직이고 커널을 호출하지 않습니다. 상당히 고급 주제이며 특히 안티 조각화 메커니즘을 원할 경우 고급 포인터 aritmetic이 필요합니다.
dreta

3
따라서 Simon은 맞춤형 메모리 할당 구현을 제공하지 않기 때문에 권장하지 않는다고 말했을 때 실제로 초보자 또는 대부분의 중간 개발자에게는 적용되지 않습니까?
temporary_user_name

21

명백한 초기 제안은 Ogre3D 입니다.


그것에 대해 경험이 있습니까? 3D 초보자에게는 상당히 안정적이고 잘 작성되어 있으며 좋은가요? 3D 엔진 목록을 쉽게 Google에 올릴 수 있습니다 (제 질문에서 볼 수 있듯이), 어떤 것이 좋은 선택인지, 그리고 왜 더 많은 통찰력을 찾고 있습니다. 감사.
davr

1
그러나 Ogre3D는 엔진이 아닙니다. 3D 렌더링 라이브러리입니다. 귀신에 내장 된 엔진을 선택하거나 직접 제작해야합니다.
Fire

4
Ogre3d에 대한 광범위한 경험이 있습니다. 그것은이다 매우 안정적이고 잘 쓰여진, 그리고 (장면 컬링 메쉬 로딩, 광고판 / 입자) 일상적인 작업으로 돌보는 훌륭한 일을한다. 화재는 게임 엔진이 아니라는 점에서 정확합니다. 그러나 오우거는 다른 라이브러리와 통합하여 하나를 만들 수 있습니다. "개별 삼각형 ​​그리기 및 자체 3D 객체 로더 작성"위의 환상적인 단계이지만 렌더링 라이브러리 일뿐입니다. 그것이 당신이 원하는 것이라면, 그것은 적극적이고지지하는 공동체가있는 훌륭한 도서관입니다.
Karantza

3
@Fire OGRE : 객체 지향 그래픽 렌더링 엔진. 엔진입니다. 온통 싱글 톤이 있습니다. 확실히 엔진.
Ricket

3
@Ricket 예, 그래픽 엔진이지만 게임 엔진이 아닙니다. 이것은 아마도 오우거 문서에서 가장 강조되는 의미입니다. 또한 싱글 톤 (안티) 패턴은 확실히 엔진인지 여부와 관계가 없습니다.
Raoul

7

Open Scene Graph 는 매우 우수하고 잘 설계된 크로스 플랫폼 3D 엔진입니다. 예를 들어, Ogre3D와는 달리 "게임 엔진"기능을 제공하지 않으며 OpenGL을 기반으로 매우 훌륭한 추상화에 집중합니다.

  • 그것은 매우 가볍고 당신에게 프레임 워크를 강요하지 않습니다 : 당신은 당신이 원하는만큼 또는 많이 사용하고 SDL, SFML, wxWidgets, QT를 통해 그것을 사용할 수 있습니다 ...
  • 훌륭한 학습 경험입니다. 라이브러리를 배울 때 기본 OpenGL과 설계 방식에 대해 점점 더 많이 이해합니다.
  • 거의 사용 가능 : 메인 스트림 3D 형식을위한 로더가 있습니다.
  • 친절한 셰이더

광범위한 샘플 목록을 살펴보십시오 .


4

게임 엔진의 관점에서 :

  • Torque3D : 많은 기능이 있지만 일부는 코드 작업이 어렵다고 생각합니다.
  • C4 엔진 : 저렴하고 뛰어난 작성자 지원이지만 도구를 사용하면 약간의 작업이 가능합니다.
  • DIY : 라이브러리 세트를 선택하고 게임과 함께 붙입니다.

Ogre3D가 제안되었으므로 경량 대체 Horde3D도 있습니다.

장점 :

  • 디자인은 건장하고 무거운 렌더링에서 Ogre3D보다 성능이 뛰어납니다 (아직 그렇지 않은 경우)
  • C API, Python과 같은 언어에 대한 바인딩을 간단하고 유지 관리하기 쉽게 만듭니다 (내부 코드는 C ++ 임)

단점 :

  • 최소한 OpenGL 2.0 지원이 필요합니다
  • 소규모 커뮤니티
  • 불안정한 코드 기반 (주요 아키텍처 변경이 여전히 발생 중)

2
당신의 정신을 가치있게 생각하면 Torque 3D를 피하십시오. 스크립팅 엔진은 혼란스러운 악몽으로 작업하기가 매우 실망 스럽습니다.
Jared Updike

4

Irrlicht 는 Ogre3D보다 약간 더 많은 기능을 제공하며 동시에 좀 더 실습 적입니다 (예 : "엔진을 시작하는"느낌이 들지 않고 달리는 느낌이 들지 않습니다. 내 의견으로는해야 할 하나의 실행 명령).

나는 시작하는 것이 좋을 것 같아요!


4

C ++을 요청했지만 Panda3D는 처음으로 파이썬 작업을 목표로하더라도 C ++과 함께 작동합니다. 그것은 게임 엔진이지만 무엇이든 ...


2

Ogre3D가 너무 낮은 레벨이라면 NeoAxis가 될 것입니다. http://www.neoaxisgroup.com/

Ogre가 제공하지만 완벽한 게임 개발 플랫폼입니다.

.NET을 대상으로하므로 C #, 관리되는 C ++, VB를 사용할 수 있습니다.

그러십시오. :)

Ogre3D는 iPhone 및 Android와 같은 다양한 모바일 장치에서 실행할 수 있습니다. 너무 크지 않습니다.

성능을 위해 크기를 착각하지 마십시오.

IrrLicht의 공식 iPhone 지원 여부는 확실하지 않지만 Ogre3D는 지원합니다.


.NET에있는 경우 언어 목록에 IronPython을 추가 할 수 없습니까? 파이썬은 멋진 스크립팅 언어입니다.
Jared Updike

2
.그물? 크로스 플랫폼을 배제하지 않습니까?
davr

.Net은 그렇지 않지만 Neo-Axis는 C ++ / CLI를 사용합니다.
jsimmons

오늘 Neoaxis 선임 개발자와 이야기를 나 they으며 이번 9 월에는 Mac OS X 지원을 발표합니다. :)
jacmoe


1

지금까지 좋은 답변이지만 Marmalade를 추가하겠습니다 . 그것은 꽤 잘 이동합니다. 많은 대형 스튜디오에서 콘솔 게임을 출시 했으므로 자격 증명이 있습니다. 크로스 플랫폼을 가능하게하는 Shiva3D 위에 단일 편집기와 같은 편집기가 내장 되어 있습니다.

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