프로젝트 종료 회고록
1. 프로젝트 개요
- 프로젝트명: 뱀파이어 서바이벌 류 게임 트레이싱
- 진행 기간: 26.05.11 ~ 26.05.21
- 팀 인원: 송용수, 최배성, 양석현, 정규상, 이정준, 임우현
2. 프로젝트 목표
목표
- 규상 : 언리얼 C++ 문법익숙해지기
- 용수 : 유니티 UI를 언리얼로 포팅 > MVP패턴 이용해서 모델/뷰 완벽하게 분리
- 배성 : 흘러가는 게임을 구성해보자. + 협업 스킬 레벨업
- 석현 : 협업 경험 + 언리얼 학습
- 정준 : 협업 경험 + 언리얼 학습
- 우현 : 협업 경험 + 언리얼, 게임개발과정 학습
주요 기능
용수
- 체력바
- 경험치바 material 애니메이션 구현
- 경험치/데미지 위젯구현 > 풀링으로 화면에 띄우는 것
- UIManager 경유 , 모델과 뷰 바인딩 자동화
배성
- 무기, 총알 등의 BaseClass 선언 > 확장성 확보 고려
- 컴포넌트를 사용해서 기능분리
석현
- 몬스터 class 구현하면서 확장성 고려
정준
- 플레이어 보유 장비 상태 관리
- 소유자 Actor > Enemy가 특정 조건 만족 시 아이템 드롭
규상
- PoolingManager 기반으로 액터 생성하는 기법
- 전체적인 Gamemode를 어떻게 사용해야하는지
- 협업할때 어떻게 해야하는지 (게임) 구체화
우현
- 캐릭터 MovementComponent C++로 구현
- 카메라arm 없이 달기 > arm 없으면 캐릭터 따라가기를 따로 구현해야함
- 8방향 BS 구현 > ABP 바인딩
사용 기술 스택
- Engine: UE 5.5.4 (강의 디폴트여서) / 5.7 컴파일 오래걸려서
- Language: C++, BP
- Version Control: Github -> Perforce\
3. 프로젝트 결과
미완료 또는 축소된 사항
용수
- 완전자동화 실패, 프레젠터 하드코딩 > 완벽한 MVP 패턴 구현 실패
- 언리얼 CommonUI+MVVM 같이 사용해야 시너지 있음 > 팀원들에게 MVVM 패턴 전파 해야함(커뮤니케이션 코스트 있어서 진행X)
배성
- AttackBaseComponent 현재 사양에서 필요없는데 포함되어있음
- ObjectPooling 적용X (둥근검, 짧은칼 지원안함)
석현
- SetActorLocation, MovementComponent 사용안함 > 확장에 어려움 발생
- EnemyClass를 확장성있게 만들지 못했다(상태머신 도입을 못했다.)
정준
- 패시브 장비 구현 못함
- 드랍 > Pooling 미적용 성능저하
규상
- 비동기 풀링 최적화 > Tick으로 하는게 더 좋다라는 ChatGPT의 의견 (왜인지는 모르나 .. 나중에 알아봐야함)
- 풀링매니저 > AActor말고 UObject로 구현했어야했다.
팀원들이 풀링인터페이스 적용하지 않은 이유 - 프리웜 타이밍 잡기가 애매했다. > EquipComponet 구현상 프리웜 하기가 어려웠다.
- 이미 아이템을 다 개발하고 나서 PoolingManager 개발이 완료되어서 적용하려면 리팩토링이 필요했음(소통문제)
- UI 풀링 따로 구현 > PoolingManger가 AActor Class를 부모로해서 못씀 > UI들은 WidgetClass를 부모로 해서 사용불가
우현
- 구현을 더 많이 했으면 좋았을텐데 범위가 좁았다.
4. 스프린트 운영 회고
잘된 점
용수
- 팀원들이 UI신경안쓰고 Delegate만 달아서 개발 가능하도록 하고 싶었고 어느정도 목표 달성
- UI Widget 디자이너탭 사용에 익숙해짐.
배성
- 무기 관련 클래스 확장성 잘 나눠서 구현이 쉽게 되어있음
- 급하게 추가한 soundplayersubsystem 블루프린트랑 사용하는 구조가 좋은듯
석현
- 위치고정을 사용한 넉백과 같은 힘을 주는 시스템 구현
정준
- Class별 Pool 분리된 것 사용하기 편함
- 반복 생성 객체 재사용 가능
규상
- Pooling 생각보다 잘 작동
- 협업시스템 인프라 구축 잘함
우현
- 팀원들이랑 친해져서 좋았따.
- 게임개발흐름을 직접적으로 볼수 있어 좋은 경험이였다 생각된다.
아쉬웠던 점
용수
- 언리얼 문법에 익숙하지 않아서 GC관련 디버깅에 문제가있었다. > 앞으로 언리얼C++ 리플렉션 시스템을 더 공부해야겠다.
- Delegate 필요 명세를 더 구체화하고 작업할 필요가 있었다. (기획문제)
- UI는 결국 BP 작업 필요 > BP로 작업해야할 것을 CPP로 작업한 부분들이 있음 > 익숙치 않아서 분리가 어려웟다.
배성
- 무기 설계 시 내부기능을 알아왔다면 설계를 더 잘할 수 있었을 것.
- 설계 후 구현에 시간이 과투자됐다. (설계가 잘 되어있었다면 더 빠르게 개발 가능했을 것)
- 리소스 에셋을 미리 디깅했었다면 역시 구현 속도가 빨랏을 것. > 트레이드오프가 잘 안됐다.
석현
- 더 많은 부분을 맡았으면 밀도있게 공부가 됐을 것 같은데 생각보다 시간이 많이 남았다.
정준
- 플레이어 스킬까지 구현인줄 알았는데 범위가 좁았음. > 아이템 틀만 구현하니 작업량이 부족했다.
- Delegate를 필요한곳에서 Broadcast했어야했는데 애매하게 했다.
- 패시브 아이템 미구현(시간부족)
- 작업량이 1/n이 안됐다.
규상
- spawner > 한번 만들어 봤어서 생각보다 구현 속도가 빨라서 이후 할게 많이 없었다.
- pooling > 개념이라 이해 하고 나서는 너무 쉬워서 구현/수정도 빨랐다. > 진짜 할게 많이 없었던 것 같다.
- 로딩화면 굳이라고 생각했지만 그래도 한번 해봤으면 좋았을 것 같다.
5. 팀 협업 회고
좋았던 협업 방식
- 개발 전 업무영역 분배하고 시작한 부분 좋았다.
- PR 코드리뷰 하는 것 좋았다.
- 다같이 마이크 키고 화면공유 상시로 되어있어서 커뮤니케이션에 도움이 많이 됐다.
- 브랜치 전략을 생각보다 잘 지켜주셨다.
개선이 필요한 부분
- 업무 분배 후 분배된 업무 영역이라는 울타리 때문에 조금더 적극적이지 못했던 것 같다. > 필요하다면 더 할 수 있었을 부분들이 확실히 있다.
- 작업 분배 시 1/n이었다면 좋았을 것 같다. -> 인원 설정 또한 기획 단계에서 정해졌어야 했는데 아쉽다.
- Perforce 작업/사용 전략을 좀 잡고가면 좋을것같다.
'내일배움캠프 > Works' 카테고리의 다른 글
| NBC 챕터 2주 - 26.05.21 ~ 26.05.29 회고록 (0) | 2026.05.29 |
|---|---|
| 언리얼 블루프린트로 WFC 알고리즘 구현 (0) | 2026.04.23 |
| cpp를 사용한 디자인 패턴 (0) | 2026.04.23 |