문제

몇몇 친구들과 함께 우리는 우주 전투 시뮬레이터 게임 (Long Dead Saga of Wing Commander와 같은)을 위해이 아마추어 플랫폼 독립적 인 Java 기반 프로젝트를 시작했습니다. 우리 중 누구도 3D 프로그래머가 아니므로 도로는 길어질 것입니다.

내 질문은 : 우리 대신 OpenGL을 배우기 시작할 것입니다 (아마도 GLUT를 통해) 또는 오늘 더 좋은 가능성이 있습니까? Direct3d는 어떻습니까? 제안 할 수있는 책이 있습니까? 우리는 부부, 구체적으로 주문했습니다

  • Dave Shriner의 OpenGL 프로그래밍 안내서
  • Luke Benstead의 시작 OpenGL 게임 프로그래밍
도움이 되었습니까?

해결책

오픈 소스 3D 엔진과 같은 사용을 고려하십시오 OGRE3D 또는 irrlicht. 이렇게하면 컨텐츠, 게임 플레이와 같은 게임을 만드는 데 집중할 수 있습니다.

두 엔진 모두 Direct3D 또는 OpenGL 백엔드에 매핑 될 수있는 추상화 레이어를 정의합니다.

편집 : 처음에는 Java를 언급 한 것을 알지 못했습니다. 어쨌든 두 엔진 모두 Java 바인딩을 지원합니다.

다른 팁

OGRE3D 또는 IRRLICHT와 같은 높은 레벨 3D 엔진을 사용하는 대신 저 레벨 그래픽 프로그래밍을 배우기로 결정한 경우 OpenGL의 하위 집합 인 OpenGL ES 2.X로 시작하는 것이 좋습니다.

OpenGL ES 2.X는 전화와 같은 프로그래밍 가능한 하드웨어가있는 임베디드 시스템 용 OpenGL의 단순화 된 하위 집합입니다. 예를 들어, OpenGL에는 작업을 수행하는 여러 가지 방법이있을 수 있지만 Open Gles 2.X에는 한 가지 방법 만 있습니다. OpenGl ES 2.X에는 선택이 적기 때문에 OpenGL ES 2.X를 마스터하는 법을 배우는 것이 훨씬 적습니다. OpenGL ES 2.0 프로그래밍 안내서는 480 페이지이며 OpenGL 프로그래밍 안내서는 제 7 판은 936 페이지입니다.

또한 OpenGL ES 2.X를 사용하면 게임을위한 더 넓은 하드웨어 잠재 고객이 제공됩니다. OpenGL의 하위 집합이기 때문에 OpenGL ES 2.X 용으로 작성된 코드는 수정이 거의 없거나 전혀없는 전체 OpenGL 시스템에서 작동합니다. 게임 그래픽은 데스크탑에서 스마트 폰에 이르기까지 다양한 대상 기계에서 작동 할 수 있습니다.

오픈 소스 3D 엔진과 같은 것을 선택할 수 있습니다 OGRE3D.

그러나 실제로 그래픽 엔진을 스스로 작성하려면 (매우 흥미로운) 선형 대수 학습부터 시작하십시오. 상당히 진보 된 물건은 아니지만 번역 벡터, 회전 행렬 등으로 자신을 표현하는 데 매우 편안해야합니다.

이미 해당 개념에 익숙한 경우 Direct3D 또는 OpenGL을 선택하십시오. 이는 사용 가능한 플랫폼에 더 따라 다릅니다. Mircosoft 환경에서 코딩하려면 Direct3D를 선택하고 OpenGL을 선택하십시오.

추가 라이브러리의 선택은 프로그래밍 언어에 따라 다릅니다. GLUT보다 더 나은 대안은 아마도 SDL (C) 또는 QT (C ++) 일 것입니다.

글쎄, 당신이 전에 3D 그래픽 프로그래밍을 한 적이 없다면, 단순성을 위해 가고 배우십시오. 예전에는 Nehe (Neon Helium)가 OpenGL에 대한 정말 멋진 튜토리얼 세트가 있었는데, 이는 내가 취한 경로였습니다.

학습 곡선이 너무 가파르지 않기 때문에 OpenGL을 시작하기가 더 쉽다는 것을 알았습니다. 초기 좌절/동기 부여에 많은 도움이되는 빠른 결과를 얻을 수 있습니다. 수많은 도움 등 경고의 단어 -3D 프로그래밍은 본질적으로 복잡하며 게임 자체보다 그래픽 기술을 구축하는 데 더 많은 에너지를 소비합니다. 게임이 완료되기를 정말로보고 싶다면 OGRE3D 채택을 고려하십시오 : O) (면책 조항 : 다른 엔진도 있다는 것을 알고 있지만 Ogre는 안정적이고 입증되었으며 좋은 문서가 제공됩니다).

플랫폼 독립적 인 Directx가 Microsoft Windows 플랫폼으로 제한되어 있지 않으므로 수행하지 않으려면

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top