플레이 영상
개발 도구

언리얼 엔진 5.4
C++ 기반 로직과 블루프린트의 연동을 통해 다양한 게임 시스템을 개발

Rider
언리얼 C++ 코드를 효율적으로 관리하고 디버깅할 수 있는 개발 환경으로 사용

GitHub
팀 프로젝트의 형상 관리를 위해 사용

SourceTree
실시간 상태 확인과 버전 히스토리 추적에 유용하게 활용
프로젝트 진행 과정
개발 초기에 기능별 목표를 정리하고 팀과 함께 공유하면서
주차 단위로 체계적으로 프로젝트를 완성해 나갔습니다.
인벤토리 (2주)
[ 구현 목표 ]
아이템 테이블 및 구조체 설계
실시간 감지 기능 구현
인벤토리 슬롯 기능 구현
상호작용 담당 컴포넌트 개발
인벤토리 타입 관리용 매니저 구현
위젯 구조도 설정 (1주)
[ 구현 목표 ]
실시간 UI 위젯 설정
인벤토리 위젯 구현
인벤토리 슬롯 기능 구현
팰 인벤토리 위젯 구현
HUD 위젯 구현
오브젝트 상호작용 (1주)
[ 구현 목표 ]
팰 상자 위젯 구현
나무작업대 위젯 구현
플레이어 스탯, 팰 스탯 연동
팰 인벤토리 위젯 구현
사운드 추가
주요 기능
인벤토리 활용
플레이어가 소지한 아이템을 유형별로 인벤토리 관련 핵심 기능을 (아이템 추가/제거, 슬롯 교환, 실시간 상호작용 감지 등) 할 수 있도록 설계하였습니다.
플레이어 상호작용
게임 속에서 플레이어는 다양한 오브젝트(아이템, 상자, 제작대 등)와 상호작용할 수 있습니다.
이때 각각의 오브젝트마다 방식이 다르면 복잡해지기 때문에,
모든 상호작용을 하나의 공통된 틀로 묶어 처리할 수 있도록 만들었습니다.
전체 UI
게임 속 UI에서는 다양한 종류의 오브젝트 인벤토리 변화에 따라 UI를 실시간으로 반영하기 위해 슬롯(아이템) 정보를 동적으로 생성하는 시스템을 설계했습니다.
회고
위젯 재사용성에 대한 많은 고민을 하였는데 공통부분을 상속 구조로 정리하여 덕분에 유지 보수가 쉬웠고, 추가 UI 기능 확장이 수월하였으나, 위젯 간 참조가 많아질수록 의존성이 높아지는 구조 발생할 수 있다는 점에서 위젯을 관리하는 매니저를 만드는 방법을 고려하게 되었습니다. 복잡한 바인딩 구조에서 디스패처 흐름이 직관적이지 않은 설계에 아쉬움이 있었고 다음 기회에는 조금 더 시각화된 구조로 설계해야겠다는 생각을 하였습니다.