2010-05-13 3 views

답변

4

(80 년대의 시에라의 퀘스트와 같은) 아주 오래된 어드벤처 게임은 캐릭터가 갈 수있는 위치와 숨겨진 위치를 결정하기 위해 z 깊이와 재질을 나타내는 전체 화면의 개별 비트 맵을 실제로 유지하는 데 사용되었습니다. 그들은 픽셀 샘플링을 사용하여 작은 스프라이트가 어디에 위치하는지 확인할 것입니다.

현재 머신이 빠르지 만 긴 사이드 스크롤링 레벨은 이런 종류의 접근을 비현실적으로 만듭니다. IMHO. 당신은 더 희소 한 표상으로 가야한다.

하나의 옵션은 보이지 않는 타일로 게임을 "줄이는 것"입니다.이 타일은 쉽게 표현할 수 있습니다. 이 문제의 주된 문제점은 디자인 (예 : 대각선 플랫폼이 어려움)을 제한 할 수 있으며 애니메이션을 매우 경솔하게 만들 수 있다는 것입니다 (예 : 캐릭터의 발이 실제로 플랫폼에 닿지 않음). 이 옵션은 IMHO에서 젤다와 비슷한 모험 게임을 할 수 있지만 액션 게임에서는 사용할 수 없습니다.

두 번째 옵션은 일부 벡터 표현을 통해 게임 세계를 나타내고 일부 충돌 감지를 구현하는 것입니다. 개인적으로 두 번째 해결 방법을 사용합니다. 특히 액세스 시간을 최소화하기 위해 데이터 구조를 구성하는 방법에 대해 현명 할 수 있다면 (예 : 문자 현재 위치에 가까운 세계 요소의 하위 집합에 더 빨리 액세스 할 수있는 경우).

이런 종류의 기능을 제공하는 2D 게임 엔진이 있다면 놀랄 일이 아닙니다. 분명히 3D 엔진이 있기 때문입니다. 실제로 기존 3D 게임 엔진을 사용하고 2D를 렌더링하는 데 더 쉽게 사용할 수 있습니다.

3

Dizzy 게임은 아마도 타일 기반 시스템을 사용하고있을 것입니다. 게임 세계는 레벨 전체에 걸쳐 반복되는 타일 팔레트로 구성됩니다. 각 타일에는 화면에 그려지는 이미지, 이미지의 일부분 뒤에서 주인공이 걷는 것을 허용하는 z 버퍼, 충돌 맵 등 세 가지 요소가 있습니다. 후자의 두 이미지는 다음과 같은 흑백 이미지로 구현됩니다 :

이러한 이미지를 저장하면 많은 양의 램도 절약됩니다.

타일을 드래그하고 놓을 수있는 격자를 표시하는 레벨을 작성하는 편집기가 필요합니다.

+0

모노크롬 화상으로서 기억하는 대신, 각 채널은 그 화소에 필요한 정보 비트 인 N 채널 형 이미지 같다. 예 : 가시성, 충돌 및 기타 정보를 작은 공간에 넣을 수 있으므로 모든 중요한 정보를 얻을 수있는 조회가 하나뿐입니다. –

1

특정 게임은 타일 완벽하게 충돌하는 타일 기반 게임입니다. 충돌은 타일의 색상 바이트 (밝기)의 단일 비트로 제어되었고 색상의 깜박이는 비트를 설정하여 타일을 미러링 할 수도있었습니다.

타일은, 그러나, 짝수 X에 배치 될 수있다, y 좌표는 (I이가 충돌 시스템을 조금 도와 이루어졌다 생각한다.)

충돌 시스템은 영웅 주위에 지속적인 점검을하고있었습니다. 규칙은 대충 다음과 같습니다 : - 영웅 아래의 비 충돌 픽셀 행을 발견하면 영웅을 1 픽셀 떨어 뜨 렸습니다. - 영웅과 충돌 교차로가있는 경우 영웅을 1 픽셀 올립니다. - 왼쪽 또는 오른쪽으로 움직일 때, 그 방향으로 체크인합니다 : - 벽 (충돌 높이가 4 픽셀 이상)을 찾으면 그 방향으로 움직임을 거부합니다. - 올라갈 수있는 상자 (최대 4 픽셀의 충돌 높이)를 발견하면 해당 방향으로 이동합니다. - 헤드 룸 허용 점프가 충분하면 마지막 가능한 빈 위치에서 정지하십시오.

이 간단한 규칙을 결합하면 매우 과한 부담없이 임의의 슬로프에서 걸을 수있는 매우 부드러운 충돌 협상을 얻을 수 있습니다.

그런 게임을 만들 때 개별 타일을 사용하고 레이어 (배경, 전경 등)에 조합하여 렌더링합니다. 충돌 타일을 나타내는 타일 속성에서 별도의 충돌 맵을 어셈블하고,이 맵을 사용하여 영웅의 충돌 및 이동을 협상합니다. 데모 유사

: http://games.catevaclickuri.ro/