타임 트라이얼 피자 배달 게임 은 제한 시간 안에 피자를 픽업해서 지정된 배달 구역에 배달해야 하는 싱글플레이어 게임입니다. 배달에 성공할 때마다 카운트다운에 시간이 추가됩니다.
피자를 픽업할 때마다 이 예시에서는 픽업 레벨 이라고 부르는 난이도 미터 가 증가합니다. 픽업 구역들은 각각 픽업 레벨 태그가 달려 있으며, 현재 픽업 레벨에서 선택될 수 있는 픽업 구역 중 하나가 새로운 픽업 구역으로 선택됩니다.
높은 레벨의 픽업 구역은 도달하기 더 어렵지만 플레이어가 더 많은 포인트를 획득할 수 있습니다.
배달을 완료하면 픽업 레벨이 리셋됩니다.

이 튜토리얼을 통해 Verse를 사용해 이 게임을 제작하는 방법을 단계별로 학습할 수 있습니다.
사용된 Verse 언어 기능
- loop: 이 예시에서는
loop표현식을 사용해 픽업 구역과 배달 구역의 선택을 반복하고, 핵심 게임플레이를 루프합니다. - race:
race표현식을 사용해 픽업/배달 루프를 실행하고, 제한 시간이 다 되었을 때 루프를 중단합니다.race표현식은 여러 표현식을 동시에 실행한 다음, 가장 먼저 완료되는 표현식 이외의 표현식을 취소합니다. - spawn:
spawn표현식으로 어떤 컨텍스트에서든 비동기화 표현식을 시작합니다. - option:
option타입은 값 하나를 포함하거나 비어 있을 수 있습니다. - defer:
defer표현식은 현재 스코프에서 나갈 때까지 코드의 실행을 지연합니다. - block: 이 예시에서는
block표현식을 사용해 비동기화 컨텍스트인race표현식 내에서 코드를 순차적으로 실행합니다. - if:
if표현식을 사용해 조건을 테스트하고 실패 가능한 값에 액세스합니다. - 클래스: 이 예시에서는 플레이어의 점수를 관리하고 표시하기 위해 Verse 클래스를 생성합니다.
- 생성자: 생성자는 관련 클래스의 인스턴스를 생성하는 특수 함수입니다.
- 액세스 지정자: 액세스 지정자를 사용해 코드의 액세스 레벨을 설정할 수 있습니다.
사용된 Verse API
- 게임플레이 태그: 게임플레이 태그를 사용하면 게임이 실행되는 동안 특정 태그로 표시된 액터를 찾을 수 있습니다.
- 이벤트: Verse에서 나만의 이벤트를 생성하고 이벤트 발생 시의 커스텀 기능을 추가할 수 있습니다.
- Verse UI: 커스텀 게임 내 UI를 제작하여 플레이어와 게임에 대한 정보를 표시합니다.
개요
이 섬을 이상적인 순서로 재현하기 위한 전체적인 과정은 다음과 같습니다.
이 프로젝트는 다음 튜토리얼을 바탕으로 하므로, 다음 튜토리얼을 먼저 완료하시기를 바랍니다.
- 움직이는 목표 마커에 설명된 단계를 따라 목표 마커를 생성합니다.
- 커스텀 카운트다운 타이머에 설명된 단계를 따라 카운트다운 타이머를 생성합니다.
목표 마커와 카운트다운 타이머를 생성한 후에는 다음 단계에 따라 전체 게임을 만듭니다.