EN JP KR
← 메인으로 돌아가기

Chronos

시간 되돌리기와 분신 기믹을 중심으로 제작한 Unity 기반 턴제 3D 퍼즐 게임입니다.

수업 프로젝트 / 소프트웨어 개발의 원리와 실습 (2024년 2학기)

역할 / 핵심 게임플레이 시스템, 턴 관리, 시간 되돌리기, 분신 재생, 오브젝트 상호작용, 씬 전환

기술 / Unity, C#, WebGL, GitHub, GitHub Wiki, Slack, Scrum

링크 / 데모 / GitHub / 스크럼 로그 / 영상

프로젝트 개요

Chronos는 시간 되돌리기와 분신 재생을 핵심 기믹으로 하는 턴 기반 3D 퍼즐 게임입니다. 플레이어가 과거의 특정 턴으로 되돌아가면, 이전 행동이 분신으로 재생되고 현재 플레이어의 행동과 함께 퍼즐 오브젝트에 영향을 주는 구조입니다.

플레이어 입력을 턴 단위로 처리하는 전역 턴 루프와, 시간 되돌리기 / 분신 재생 / 오브젝트 상태 복원에 필요한 상태 로그 시스템을 기획하고 구현했습니다. 플레이어, 분신, 박스, 버튼, 레버, 이동 장애물이 같은 턴 흐름 안에서 동작하도록 게임플레이 시스템을 정리했습니다.

최종 발표 후 5인 팀 내부 상호 익명 동료평가에서 22% 기여도로 평가받고, 수업 전체적으로 상위 20%의 성적을 달성했습니다.

담당 내용

  • 플레이어 입력 1회가 플레이어 이동, 분신 재생, 오브젝트 반응으로 이어지는 턴 기반 진행 구조를 구현했습니다.
  • TurnManager를 중심으로 각 오브젝트의 이동과 상태 변경이 끝난 뒤에만 다음 턴으로 넘어가도록 제어했습니다.
  • 플레이어 입력과 오브젝트별 위치/상태 로그를 턴별로 저장해, 시간 되돌리기와 분신 재생 시점에 맞게 복원되도록 구현했습니다.
  • 박스, 버튼, 레버, 레이저, 이동 장애물 등 퍼즐 오브젝트의 상호작용과 충돌 처리를 구현했습니다.
  • 레벨별 씬을 분리하고 additive load 방식으로 연결해, 스테이지 전환과 카메라 이동이 자연스럽게 이어지도록 구현했습니다.

설계상 과제

이 프로젝트의 가장 큰 어려움은 턴 기반 게임플레이와 팀 단위 구현을 함께 맞추는 일이었습니다. 플레이어 입력 한 번이 이동, 분신 재생, 박스 이동, 레버 상태 변화, 낙하 판정, 시간 되돌리기 로그 갱신까지 이어지는 구조였기 때문에, 처리 순서와 상태 반영 순서가 조금만 어긋나도 쉽게 버그가 발생했습니다.

초반에는 플레이어 이동, 오브젝트, 맵 등을 각자 나누어 구현했지만, 통합 과정에서 기능별 입출력 방식과 상태 변경 기준이 조금씩 달라 문제가 생겼습니다. 비슷한 역할의 함수가 중복되거나, 한 기능에서 예상한 상태와 다른 기능이 실제로 넘겨주는 상태가 달라 전체 동작이 불안정해지는 경우가 있었습니다.

이를 해결하기 위해 먼저 각 기능의 역할과 입출력 기준, 턴 진행 순서를 정리했습니다. 이후 TurnManager를 중심으로 플레이어, 분신, 오브젝트의 동작이 같은 턴 흐름 안에서 처리되도록 구조를 정리하고, 플레이어 입력과 위치/상태 로그를 이용해 시간 되돌리기와 분신 재생이 일관되게 동작하도록 구현했습니다.

게임플레이 미리보기

Chronos 게임플레이 화면 Chronos 게임플레이 화면

턴제 퍼즐 환경과 분신 기반 되돌리기 기믹이 실제로 동작하는 장면입니다.

게임 매뉴얼 (한국어)

Chronos 매뉴얼 개요