프로젝트 개요
Chronos는 시간 되돌리기와 분신 재생을 핵심 기믹으로 하는 턴 기반 3D 퍼즐 게임입니다. 플레이어가 과거의 특정 턴으로 되돌아가면, 이전 행동이 분신으로 재생되고 현재 플레이어의 행동과 함께 퍼즐 오브젝트에 영향을 주는 구조입니다.
플레이어 입력을 턴 단위로 처리하는 전역 턴 루프와, 시간 되돌리기 / 분신 재생 / 오브젝트 상태 복원에 필요한 상태 로그 시스템을 기획하고 구현했습니다. 플레이어, 분신, 박스, 버튼, 레버, 이동 장애물이 같은 턴 흐름 안에서 동작하도록 게임플레이 시스템을 정리했습니다.
최종 발표 후 5인 팀 내부 상호 익명 동료평가에서 22% 기여도로 평가받고, 수업 전체적으로 상위 20%의 성적을 달성했습니다.
담당 내용
- 플레이어 입력 1회가 플레이어 이동, 분신 재생, 오브젝트 반응으로 이어지는 턴 기반 진행 구조를 구현했습니다.
- TurnManager를 중심으로 각 오브젝트의 이동과 상태 변경이 끝난 뒤에만 다음 턴으로 넘어가도록 제어했습니다.
- 플레이어 입력과 오브젝트별 위치/상태 로그를 턴별로 저장해, 시간 되돌리기와 분신 재생 시점에 맞게 복원되도록 구현했습니다.
- 박스, 버튼, 레버, 레이저, 이동 장애물 등 퍼즐 오브젝트의 상호작용과 충돌 처리를 구현했습니다.
- 레벨별 씬을 분리하고 additive load 방식으로 연결해, 스테이지 전환과 카메라 이동이 자연스럽게 이어지도록 구현했습니다.
설계상 과제
이 프로젝트의 가장 큰 어려움은 턴 기반 게임플레이와 팀 단위 구현을 함께 맞추는 일이었습니다. 플레이어 입력 한 번이 이동, 분신 재생, 박스 이동, 레버 상태 변화, 낙하 판정, 시간 되돌리기 로그 갱신까지 이어지는 구조였기 때문에, 처리 순서와 상태 반영 순서가 조금만 어긋나도 쉽게 버그가 발생했습니다.
초반에는 플레이어 이동, 오브젝트, 맵 등을 각자 나누어 구현했지만, 통합 과정에서 기능별 입출력 방식과 상태 변경 기준이 조금씩 달라 문제가 생겼습니다. 비슷한 역할의 함수가 중복되거나, 한 기능에서 예상한 상태와 다른 기능이 실제로 넘겨주는 상태가 달라 전체 동작이 불안정해지는 경우가 있었습니다.
이를 해결하기 위해 먼저 각 기능의 역할과 입출력 기준, 턴 진행 순서를 정리했습니다. 이후 TurnManager를 중심으로 플레이어, 분신, 오브젝트의 동작이 같은 턴 흐름 안에서 처리되도록 구조를 정리하고, 플레이어 입력과 위치/상태 로그를 이용해 시간 되돌리기와 분신 재생이 일관되게 동작하도록 구현했습니다.
게임플레이 미리보기
턴제 퍼즐 환경과 분신 기반 되돌리기 기믹이 실제로 동작하는 장면입니다.
게임 매뉴얼 (한국어)