GEB STORY
장난감이 된 플레이어가 사람들의 눈을 피해 집 안을 돌아다니며 강아지에게 붙잡힌 동료를 구하는 3인칭 퍼즐 게임이다. 물건을 옮겨 사람들의 주의를 돌리고 강아지가 좋아하는 물건을 집 밖으로 가져가면 결말이 달라진다.
GEB STORY는 2023년 9월부터 12월까지 게임엔진기초 수업에서 진행한 5인 팀 프로젝트다. 기획과 중간발표는 학기 내내 이어졌지만 실제 게임의 대부분은 마감 전 약 2주 동안 만들어졌다. 당시 작업을 돌아보면 전체 진도의 약 90%가 이 기간에 몰렸다.
후반부의 핵심 구현은 나와 다른 팀원 한 명이 맡았다. 나는 집 내부 레벨과 플레이어 캐릭터, 사람 캐릭터의 애니메이션, 시작·엔딩 시네마틱과 세부 연출을 구현했다. 마감 직전에는 흩어진 기능을 하나의 레벨에 합친 뒤 사운드·충돌·라이팅 문제를 확인하고 최종 빌드를 정리했다. 다른 핵심 개발자는 부모 캐릭터의 AI와 물건 상호작용, 퍼즐 로직을 담당했다.
마감 전 2주
중간발표 때 갖춰진 것은 집의 기본 형태와 캐릭터, 추적 AI 정도였다. 남은 기간 안에 완성하려면 기획에 있던 기능을 모두 넣기보다 시작부터 결말까지 이어지는 흐름부터 만들어야 했다.
플레이어는 집 안의 공이나 강아지 먹이를 찾아 들고 이동한다. 부모 캐릭터에게 들키면 공격받지만 장난감인 척 멈춰 있으면 위험을 피할 수 있다. 옷을 세탁기로 옮기거나 병을 깨뜨리면 부모의 주의를 다른 곳으로 돌릴 수 있다. 마지막 문을 나설 때 들고 있는 물건에 따라 엔딩 시네마틱이 달라지도록 연결했다.
나는 집의 층과 방을 구성하고 무료 캐릭터·환경 에셋을 프로젝트에 맞게 배치했다. 플레이어에는 이동과 점프 애니메이션을 연결했다. 사람 캐릭터에는 이동·공격 상태에 맞는 애니메이션 블루프린트를 만들고 공격 동작의 특정 시점에 소리가 나도록 애니메이션 노티파이도 적용했다.
게임 기능과 장면의 연결
메인 메뉴에서 게임을 시작하면 시네마틱을 거쳐 플레이어 조작으로 넘어간다. 처음에는 시네마틱이 끝난 뒤 마우스를 클릭한 채 움직여야만 카메라가 회전했다. 입력 모드를 다시 전환해 이 문제를 고치고 게임으로 돌아올 때 카메라와 입력 상태가 함께 복구되도록 했다. 시네마틱은 스페이스바로 넘길 수 있다.
엔딩은 플레이어가 마지막 문을 통과할 때 소지한 물건에 따라 나뉜다. 공과 강아지 먹이는 각각의 성공 장면으로 이어지고 아무것도 가져오지 못하면 다른 결말이 나온다. AI와 퍼즐 로직은 다른 핵심 개발자가 구현했다. 나는 그 결과를 레벨의 문과 아이템, 시네마틱에 연결했다.
Perforce 충돌 관리
Unreal Engine의 레벨과 블루프린트는 여러 사람이 동시에 고치기 어려웠다. 팀은 Perforce를 사용했지만 모두 익숙하지 않았다. 체크아웃된 파일이 풀리지 않거나 이전 버전에서 작업한 레벨을 최신 파일 위에 올리지 못하는 일이 반복됐고 한 사람이 메인 레벨을 수정하는 동안 다른 작업이 막히기도 했다.
후반에는 각자 별도 레벨과 폴더에서 작업한 뒤, 합칠 때만 메인 레벨을 수정했다. 작업 전에 최신 변경을 받고 필요한 파일만 체크아웃한 뒤 바로 제출하는 순서도 팀 안에서 맞췄다. 엔딩 시퀀스를 이전 버전의 레벨에서 만들어 다른 변경과 충돌했을 때는 필요한 장면을 다시 옮겨 메인 레벨에 연결했다.
작업은 10월 말부터 시작했지만 캐릭터 애니메이션과 메뉴, 시네마틱, 엔딩, 사운드, 오류 수정은 11월 말부터 12월 10일 사이에 연달아 반영됐다. 마지막 2주에 일이 몰린 건 일정 관리의 실패였다. 그만큼 시간이 부족할수록 구현 항목을 늘리기보다 처음부터 끝까지 플레이할 수 있는 빌드를 먼저 만들어야 한다고 배웠다.
마감 직전 빌드 점검
패키징한 게임을 처음부터 다시 플레이해 보니 부모 AI가 추적 후 멈추지 않았고 탁자와 싱크대의 충돌 영역도 맞지 않았다. 물건이 바닥으로 들어가거나 공격 소리가 빠지고 라이팅이 깨지는 문제도 있었다. AI와 상호작용 로직은 담당 팀원에게 재현 조건을 전달해 함께 고쳤고 내가 맡은 레벨·애니메이션·사운드는 직접 수정했다.
모든 문제를 해결하지는 못했다. 물건을 들고 점프한 뒤 놓으면 캐릭터가 공중에 뜰 수 있었고 일부 물건은 바닥 아래로 들어갔다. 마감이 다가온 만큼 정상적인 플레이를 막거나 시연에서 바로 드러나는 오류부터 고쳤다. 발생 빈도가 낮은 물리 문제는 남겨 둔 채 최종 빌드를 만들었다.
최종 트레일러
회고
이 프로젝트에서 기술보다 더 큰 문제는 일정과 역할 배분이었다. 개발이 막바지에 몰렸고 두 명이 핵심 기능 대부분을 맡은 채 처음 쓰는 Perforce까지 익혀 가며 작업을 합쳐야 했다. 기능을 무작정 추가하는 대신 플레이 시작부터 퍼즐, 탈출, 엔딩까지 이어지는 최소 범위를 정했고 결국 실행 가능한 결과물을 완성했다.
다시 진행한다면 첫 주에 역할별 결과물과 완료 조건부터 정하겠다. 레벨과 블루프린트 담당자를 미리 나누고 매주 플레이 가능한 빌드를 만들며 개발 중간부터 통합을 반복해 마지막 2주에 작업이 몰리지 않도록 할 것이다.