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


16

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

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

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


Unity (스프라이트 및 2D 이동과 같은) 또는 2D 게임 플레이 (3D 자산과 같지만 단일 평면에서만 이동)가있는 3D 게임과 같은 순수한 2D 게임의 맥락에서 질문하고 있습니까?
chaosTechnician

Coypu Space Rumble 이라는 2D 게임을 만들기 위해 Unity와 협력 한 친구가 있습니다 . 초기 2D 부분은 상당히 지루한 것 같습니다. 나는 그 이유에 대해 더 많은 예측을 요구할 것입니다.
Jonathan Connell


"3D 엔진"을 정의 하시겠습니까? 우리는 게임 플레이를 다루거나 3D로 렌더링하는 것에 대해 이야기하고 있습니까?
Nicol Bolas

@chaosTechnician - 첫 번째 : 순수 2D 스프라이트 차원 운동은, 기본적으로 어떠한 진짜 (단순한 스프라이트 묘화 순서를 결정하는 Z- 색인)는 Z 축
mrohlf

답변:


15

게임에 따라 다르지만 대부분 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 엔진을 사용하는 데 아무런 문제가 없습니다.


+1. 매우 철저하고 적용 가능한 답변. 나는 당신이 이것을 전에 다루었던 느낌을 얻습니다.
chaosTechnician

고마워, 내가 찾던 것! 필자가 본 대부분의 엔진이 OpenGL 또는 DirectX를 기반으로 구축되었으며 현재 3d 모델링이 제 능력을 약간 벗어 났기 때문에 2d 엔진에 계속 집중할 것입니다. 언젠가는 Unity를 배우고 싶지만 내 벨트 아래 2D 게임을 한 후에 그 문제를 해결하는 것이 좋습니다.
mrohlf

또한 3D 엔진을 사용하면 임의의 회전 및 알파를 사용하여 스프라이트를 실제로 매우 쉽게 그릴 수 있습니다. 순수한 2D 엔진을 사용하는 것보다 더 쉽습니다. 이것이 많은 현대 2D 엔진이 실제로 3D 인 이유입니다. 또한 커스텀 셰이더를 작성하십시오!
ashes999

7

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

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

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


2

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

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


0

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

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


실제로, 지금은 UNITY가 2D 지원을 추가 했기
Aesadai

1
나는 여전히 Unity가 2D 게임을 좋아한다고 말합니다. 2d 게임의 경우 전문적인 품질이 아니므로 Cocos2D-swift와 같은 견고한 2D 엔진과 비교하십시오. 그것은 더 똑똑하지 않습니다.
Jonny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.