3D 인 것처럼 보이지만 디아블로와 같은 'hack and slash'게임은 실제로 2D 게임입니다. 구성 요소 (스프라이트)는 3D 모델링 도구에서 만들어 지지만 실제 게임에는 스프라이트의 2D 렌더링 만 사용됩니다. 이 유형의 게임은 시각적 표현보다는 데이터 상호 작용 (지도, 플레이어, 보물 및 괴물)에 대해 훨씬 더 많은 경향이 있습니다.
2D 게임은 동적 애니메이션 (스켈레톤 및 변형)을 사용하지 않는 경향이 있습니다. 대신 애니메이션은 종종 3D 패키지로 만들어 이미지 라이브러리로 저장됩니다. 그런 다음 스프라이트에는 이미지 조회 테이블이 있습니다 (단일 대규모 스프라이트 시트 또는 일련의 개별 이미지로 저장 됨). 게임 애니메이션 단계에서 스프라이트는 스프라이트의 현재 상태에 따라 표시 할 이미지를 결정합니다. 예를 들어, 나는 8 방향으로 걷는 소 (http://www.aharrisbooks.net/pythonGame/ch08/cow.py)의 애니메이션을 가지고 있습니다. 각 방향은 10 프레임의 애니메이션입니다.
( http://wwww.aharrisbooks.net/pythonGame의 Python 예제 더보기 )
샘플 프로그램은 방향과 프레임을 확인한 다음 적절한 이미지를 표시합니다. 내 예제는 파이썬으로 작성되었지만 언어는 중요하지 않습니다. 아이디어는 동일하게 유지됩니다.
다른 상태 (전투, 상처 등)에있는 시각적 측면은 단순히 애니메이션을 스택에 추가하여 처리 할 수 있습니다.
그러나 이러한 것의 더 어려운 측면은 데이터 측면입니다. 예를 들어 지형은 어떻게 관리됩니까? 스프라이트가있는 곳과 가고 싶은 곳 사이의 경로를 선택하기 위해 A * 알고리즘의 변형을 사용하고 아마도 그 지형의 어려움을 묘사하기 위해 각 노드에 일종의 가중치를 추가 할 것입니다. (도로의 무게는 매우 가벼울 것이며, 산과 바다는 매우 무겁습니다)
아마 2D 엔진의 소프트 바디 역학에 대해서는 걱정하지 않을 것입니다. 나중에 추가 할 수 있지만 게임 기능의 핵심은 아닙니다.
확실히 3D로 '해킹과 슬래시'를 만들 수 있습니다. 그러나 3D 모델링의 추가 과제로 인해 이러한 종류의 게임에 플레이어를 끌어들이는 게임 플레이 메커니즘에 집중하기가 더 어려워졌습니다.
당신에게 행운을 빕니다 ....