Sparta Unreal 부트캠프 87일차

정찬호·2026년 4월 6일

[TIL] Unreal Engine: 미션 및 기믹 시스템 리팩토링과 기능 확장

📌 오늘 학습한 내용
오늘은 프로젝트의 핵심 시스템 중 하나인 미션(Mission)과 기믹(Gimmick) 시스템의 구조를 개선하고, 새로운 미션 유형과 아이템들을 추가로 구현했습니다. 특히 객체 간의 결합도를 낮추는 리팩토링에 집중했습니다.

  1. 구조 정리와 중복된 로직의 미션 단일화
    구조 정리: 미션 정의 클래스들을 Definitions 폴더로 이동하여 프로젝트 구조를 체계화했습니다.

미션 통합 : 구현된 미션들 중 석상 돌리기, 상자 열기, 물건 옮기기의 정답 로직이 '모든 Gimmick의 상태가 Completed가 되기'로 동일하여 하나의 미션 클래스로 수정을 하였습니다.
이는 이전의 TimeAttack류의 미션의 경우와 비슷합니다.

  1. 신규 기믹 및 미션 구현
    다양한 플레이 경험을 위해 새로운 기믹 오브젝트와 미션 로직을 추가했습니다.

추가된 기믹:

Statue (석상): 특정 방향으로 돌려 상호작용하는 기믹

Chest (상자): 아이템을 통해 열 수 있는 상자

Altar (제단): 물건을 운반하여 도착점까지 옮기는 기믹

구현되었던 미션:

물건을 주워다 지정된 제단에 올리기

석상들을 지정된 각도로 돌리기

열쇠를 주워서 상자 열기

의 3가지 미션을 구현하였으나 로직이 동일하여 하나의 클래스로 통합했습니다. 아직 테스트는 진행되지 않았습니다.

추가된 아이템: 상자 개방을 위한 Key, 물건 옮기기 미션용 Carry Item

  1. 기술적 고민 (Deep Dive)
    서버-클라이언트 미션 동기화: 현재 미션 등록 및 검증은 서버에서 전담하고 있습니다. 클라이언트에서도 미션 정보를 인지하되, 핵심 로직은 서버에서만 돌아가게 하는 최적의 구조를 고민 중입니다.

UI 의존성: MissionSubsystem을 거치지 않고 위젯에서 직접 미션을 찾는 방식은 편리할 수 있지만, 장기적으로 유지보수가 어렵고 의존성이 심해질 수 있어 서브시스템 기반의 중앙 관리 방식을 유지하기로 했습니다.

🛠 발생한 이슈 및 해결
Issue: 기믹의 상태가 변할 때 머티리얼이 실시간으로 교체되지 않는 현상이 발생했습니다.

Status: 현재 원인을 파악 중이며, 렌더링 스레드와 데이터 갱신 시점 사이의 충돌인지 확인하고 있습니다.

profile
게임 개발 지망생입니다.

0개의 댓글