2D 게임에 3D 엔진을 사용할 때의 장단점은 무엇입니까? [닫은]

2d 게임 개발을 위해 2d 게임 엔진 (Slick2D / Flixel / FlashPunk와 같은)과 3d 엔진 (Unity와 같은) 사이를 결정할 때 초보자가 알아야 할 장단점은 무엇입니까?

나는 과거에 Game Maker, Flash 및 XNA를 약간 다루었지만 인디 게임 개발을 시작했습니다. Unity에 대해 많은 긍정적 인 점을 들었으며 크로스 플랫폼 특성으로 인해 매력적이지만 3D 엔진입니다.

엄격하게 2D 게임을하려면 Unity와 같은 3D 엔진을 사용해야하는 강력한 이유가 있습니까? 아니면 초기 학습 경험에 불필요한 복잡성을 더할 수 있습니까?



답변

게임에 따라 다르지만 대부분 2d를 위해 특별히 설계된 엔진을 사용하여 엄격하게 2d 게임을 만드는 것이 더 쉬울 것입니다.

이제 장단점 중 일부 (일부는 Unity와 관련이 있으며 일부는 더 일반적입니다)

단점

  1. 3D 엔진은 일반적으로 3D 모델 (폴리곤 및 텍스처) 인 게임 개체를 중심으로 설계되었습니다. 평평한 평면을 만들고 질감을 적용하는 것이 가능하지만, 그렇게 할 때 엔진에 대해 적극적으로 노력하고 있습니다.

  2. 또한 많은 3D 엔진은 스프라이트 시트 (한 텍스처의 모든 애니메이션 프레임)를 처리 할 수있는 기능이 없습니다. 애니메이션이 텍스처가 아닌 모델 (리깅 및 기타 방법)에 작용할 것이기 때문입니다. 다시 말하지만,이 문제를 해결할 수있는 방법이 있지만 다시 한 번 엔진에 대해 적극적으로 노력하고 있습니다.

  3. 복잡성이 추가되었습니다. Josh Petrie의 답변에서 언급했듯이 3d는 주로 수학 및 장면 관리에서 2d보다 훨씬 복잡합니다. 물체를 옮기고 3D 공간을 다루는 것은 힘든 일이며, 이것이 첫 번째 게임 중 하나라면 훨씬 더 어려워 질 것입니다. 희소식 : Unity는 이러한 문제 중 일부를 추상화하지만 여전히 처리해야 할 사항이 있습니다 (많은 추상화는 2D 스프라이트가 아닌 3D 모델을위한 것임).

  4. Unity와 함께 제공되거나 얻을 수있는 대부분의 라이브러리는 3D 오브젝트 용입니다. 여기에는 조명, 길 찾기, 물리학 등이 포함됩니다. 그 동안 box2d는 Flash, XNA 또는 그 밖의 무언가 (물론)에서 쉽게 작동합니다.

찬성

  1. 3D 가속. 그래픽 카드는 CPU보다 장면에서 많은 객체를 처리하는 데 훨씬 뛰어나며 Unity를 사용하면 실제로 쉽게 이점을 얻을 수 있습니다. 이를 통해 화면에 수천 개의 스프라이트를 표시하거나 입자 효과를 쉽게 포함 시키거나 셰이더와 같은 재미있는 기능을 추가하여 공간 및 시간 왜곡 등의 멋진 효과를 지원할 수 있습니다. 유니티에는 이러한 효과가 많이 내장되어있어 매우 쉽습니다. 많은 2D 엔진이 배후에서 OpenGL 또는 DirectX를 사용하며 많은 경우 하드웨어 가속도 가능합니다.

  2. 모델 지원. 이전에 문제가 있었던 것을 기억하십니까? 예, 혜택도 될 수 있습니다. 게임에 따라 배경에 회전 구 또는 3D 물체와 같은 멋진 물체를 포함시킬 수 있다는 것이 이점이 될 수 있습니다. 또한 3D로 만든 게임을 만들 수 있지만 단순히 2D 원근법으로 강요 할 수 있습니다.이를 통해 처리하기 위해 수많은 추가 그래픽을 수행하지 않고도 월드 지오메트리를 회전시킬 수 있습니다.

  3. 학습 3d. 현실을 직시하자. 많은 게임이 3D로 작성되었으며, Unity 사용법을 배우면 3D가 필요할 수있는 다음 게임에 이러한 기술을 많이 적용 할 수 있습니다. 또한, 현재 학교에서 나오는 많은 예술가들에게 3D 모델링이 배워지고 있습니다. 따라서 전통적인 2D 게임 아티스트보다 3D 아티스트를 찾는 것이 더 쉬워졌습니다.

결론

많은 단점이 있으며, 상당한 양의 전문가도 있습니다. 그것은 당신이 만들고 싶은 게임의 종류에 달려 있으며, 그만한 가치가 있는지 결정하는 것은 당신에게 달려 있습니다. 플래시는 여전히 실행 가능한 옵션이므로 게임에 더 적합한 2D 엔진을 사용하는 데 아무런 문제가 없습니다.


답변

한 가지 큰 단점 추가 복잡성입니다. 3D 엔진이 전용 2D 엔진과 동일한 수준의 2D 그래픽을 항상 지원하는 것은 아닙니다. 즉, 2D 장면 구성 및 관리를 처리하는 데 많은 추가 작업이 필요하며 3D 수학 및 변환 파이프 라인의 복잡성을 처리해야합니다. 특히 3D 그래픽 이론의 기본 사항에 익숙하지 않은 경우 이미지가 표시되지 않을 때 자신을 잃고 혼란스러워 할 수 있으며주의하지 않으면 “솔루션”으로 넘어갈 수 있습니다. 이미지가 나타나지만 반드시 정확하지는 않습니다 (따라서 나중에 물릴 것입니다).

그러나 3D 엔진에 2D 게임을 구축하는 데 필요한 도구가있는 한 인간적인 측면을 넘어 서면 하나를 사용 하는 것은 나쁜 생각이 아닙니다 . 그들은 요즘 훨씬 더 널리 퍼져 있고 더 적극적으로 개발되는 경향이 있으므로, 그것은 플러스입니다. 또한 D3D 또는 OpenGL을 사용하지 않는 소수의 2D 중심 엔진 또는 프레임 워크가 여전히 존재하므로 현대 GPU의 이점을 얻지 못할 수 있습니다.

이 관련 질문에서 3D를 더 어렵게 만드는 것에 대한 많은 토론을 볼 수 있습니다 (그러나 2D 게임에는 3D 엔진 만 사용해야하는 하위 세트 만 처리하면됩니다).


답변

장점 : 비디오 카드 제조업체는 3D 드라이버를 최적화하기 위해 더 많은 노력을 기울입니다. 당신은 특별한 FX 또는 형광을 위해 2D에 갇혀 있지 않습니다. 자신을 과장하여 시뮬레이션 할 필요가 없습니다. 관점을 전환한다고해서 모든 예술 작품을 완전히 다시 할 필요는 없습니다. 3D 스케일이 시각적으로 더 좋다고 주장 할 것입니다.

단점 : 자산 파이프 라인은 엔진에 맞게 조정해야합니다. 2D에서 간단한 일부 작업은 3D에서 더 복잡합니다. 라이브러리에는 사용하지 않을 추가 기능이있을 수 있습니다.


답변

가능하다면 Unity를 배우십시오. Unity는 오픈 소스이며 무료 인 Blender 3D와 완벽하게 호환됩니다. 비행기와 함께 Blender에서 2D를 모델링하고 애니메이션하는 방법에 대한 훌륭한 온라인 자습서가 많이 있습니다. 또한 시작점으로 사용할 수있는 무료 또는 저렴한 가격으로 온라인에서 다운로드 할 수있는 수많은 모델이 있습니다.

물론 이것은 자신의 게임 엔진을 만드는 데 능숙하지 않다고 가정합니다. 내가 가장 좋아하는 2D 게임은 Flash로 디자인 된 Super Meat Boy이며 프로그래밍 끝은 맞춤식으로 이루어졌습니다. 게임에 필요한 게임 엔진을 만드는 것이 었습니다. 이것은 많은 자유를주기 때문에 그런 프로젝트에 접근하는 가장 좋은 방법입니다. 그것은 그 길을 가기 위해 많은 노력이 필요하다고 말했습니다.