2025.02 - 2025.06

IW Zombie - 팀 서바이벌

탐색, 방어, 식사, 논의, 생존판정 5단계 게임 루프 전반과 Tencent IM 채팅 첫 도입을 담당.

역할 게임 루프, 채팅, AI NPC, UI
약 20명 (클라팀, 아트팀, 기획팀, QA팀)
스택
UnityC#Unity Netcode (NGO)Tencent IM SDKBehavior TreeDOTween

배경

보이저에서의 첫 프로젝트. 일본 출시를 목표로 한 팀 서바이벌 게임이었습니다. 팀 내 최초로 Tencent IM SDK 기반 통신 환경을 구축했습니다. 본 프로젝트에서의 기술 도입 경험은 향후 차기작(REIW, ETERNA)의 채팅 아키텍처를 고도화하는 핵심 기반이 되었습니다.

IW Zombie - 캠프파이어 논의 단계. 채팅 UI와 스티커, 음성 채팅이 통합된 화면

주요 작업

  • 5단계 게임 루프(탐색 → 방어 → 식사 → 논의 → 생존 판정) 전반 구현
  • Tencent IM 기반 채팅 시스템 첫 도입 및 구현
  • AI NPC Behavior Tree 구성 및 Aggro 시스템 설계
  • NetworkObjectPool 별도 구현
  • 3D 사운드 풀링 시스템 설계
  • 전투 로직 및 UI 전반 (인벤토리, 채팅, 논의 팝업)
  • 범용 디버그 치트 시스템 설계 - enum 중앙 열거 + scope prefix + ServerRpc 실행
  • 서브모듈 병합 작업 팀과 함께 완료 (약 1개월)

5단계 게임 루프 - Server-side FSM

BaseZombieState를 베이스로 Exploration / Defense / HaveMeal / Discussion / SurvivalResult 5개 상태 + CutScene / GameEnd 2개 상태로 분기. Dedicated Server 환경에서 상태 전이를 일관되게 관리하도록 설계해, 클라이언트는 상태 브로드캐스트를 받아 렌더링만 담당하는 구조로 분리했습니다.

AI NPC - Behavior Tree

Enemy 행동을 EnemyFinding / EnemyPatrol / EnemySearchTarget / EnemyBeginAttack Task로 쪼개고, Aggro 시스템은 EnemyLowestHpAggroIncrease Task로 분리(최저 HP 타겟 가중치 상승). 디자이너가 트리 형태로 행동 조합을 튜닝할 수 있게 했습니다.

NetworkObjectPool

좀비 스폰/소멸 빈도가 높아 GC와 네트워크 오버헤드가 체감될 수 있는 환경이라, Netcode 풀 핸들러를 만들어 오브젝트를 재사용했습니다.

범용 디버그 치트 시스템

모든 치트 명령을 e_ZombieShortCutCommand enum 하나로 모아 IDE 자동완성과 타입 안전성을 확보하고, 문자열 prefix로 적용 범위를 분리(/t는 팀, /a는 모두, 기본은 본인)했습니다. hp++5, weapon--3 같은 parameterized 명령은 일반 명령보다 먼저 파싱하고, 실제 실행은 ServerRpc로 돌려서 치팅을 구조적으로 막았습니다.

3D 사운드 풀링

IW Zombie - 3D 사운드 풀링. ZombieSfxItem이 풀링되어 AudioSource 범위가 시각적으로 표시된 에디터 화면

채팅 시스템 - 멀티클라이언트 테스트

4개 클라이언트에서 World / Team / Attraction 채팅이 동시에 동작하는 모습입니다.

IW Zombie - 4개 클라이언트에서 World, Team, Attraction 채팅이 동시에 동기화되는 화면

컷씬 디테일

IW Zombie - 식사 단계. 플레이어가 성공적으로 식사하는 장면