헥사 타일 기반 맵과 실시간 이벤트로 구성된 PC 서바이벌 시뮬레이션 게임
| 항목 | 내용 |
|---|---|
| 플랫폼 | Unity |
| 장르 | 생존 시뮬레이션 / 2D + 3D 하이브리드 |
| 개발 기간 | 2023.03.17 ~ 2024.05.05 (14개월) |
| 팀 구성 | 8명 (기획 2, 개발 2, 아트 3, 사운드 1) |
| 포지션 | 게임플레이 프로그래머 / 시스템 설계 / 최적화 |
| 영상 | YouTube |
| 저장소 | GitHub |
| 빌드 파일 | Drive |
DEAD.NET은 ‘60 Seconds!’에서 영감을 받아, 제한된 시간 내 자원을 수집하고 이후 생존을 이어가는 챕터형 서바이벌 시뮬레이션 게임이다.
Unity 엔진을 활용해 2D + 3D 타일맵 환경을 조합했으며, 챕터 1까지 완성하여 발표회, 부스 시연 및 공모전 제출을 완료했다.
2024 인디크래프트 챌린저 부문 TOP 20 선정
- 헥사 타일 기반의 맵 생성 및 구조 설계
- 맵 타일 위에 자원, 몬스터, 구조물 등 엔티티 동적 배치
- 시간 흐름에 따라 맵 상태, 이벤트, 날씨 변화 처리
- 타일 클릭을 통한 이동, 조사, 수집 인터랙션 처리
- 자원 소비 및 상태 변화 (체력, 디버프, 아이템 사용) 반영
- 이벤트 우선순위 및 충돌 처리 설계
- 좀비 AI 시스템 구현 → 플레이어 추적, 공격, 이동 로직 설계
- 좀비 스폰 및 관리 → 시간대별 스폰, 수량 조절, 상태 관리
- 좀비 타입별 행동 패턴 → 일반 좀비, 특수 좀비 등 다양한 AI 구현
- 드론 AI 시스템 구현 → Explorer, Distrubtor 드론 타입별 행동 로직 설계
- 드론 설치 및 관리 → 타일 위 드론 배치, 상태 관리, 제거 시스템
- 드론 효과 시스템 → 탐색 범위 확장, 방해 효과 등 특수 기능 구현
- 수동 최적화 구현 → 플레이어 시야 범위 내 오브젝트만 렌더링 활성화 (FPS 20 → 60)
- 헥사타일 Astar 알고리즘 최적화 → 우선순위 큐, 캐시 적용으로 70-90% 성능 향상
문제: 기존 그리드 기반 A* 알고리즘이 헥사 타일에 부적합
해결:
- 큐브 좌표계 기반으로 헥사 타일 구조 파악
- 헥사 전용 맨해튼 거리 계산법 적용
- 이동, 추적, 공격 등의 행동 구현에 적용
문제: 오브젝트 수가 많아짐에 따라 심각한 프레임 드랍 발생. Unity의 오클루전 컬링은 실시간 생성 오브젝트에 적용 불가.
해결:
- 플레이어 중심 반경만 렌더링 오브젝트 활성화
- 고정된 타일에는 static batching 적용
- Renderer 컴포넌트 직접 제어 → SetActive 대신 renderer.enabled 사용으로 성능 향상
- 배치 처리 시스템 → 여러 오브젝트를 그룹화하여 한 번에 렌더링 상태 변경
- 상태 캐싱 시스템 → 이전 상태와 비교하여 변경된 오브젝트만 처리
- FPS 20 → 60 성능 향상
문제: 자원 아이콘이 배경 오브젝트에 가려짐
해결:
Sprites/Default셰이더를 복제하여ZTest Always로 수정- 자원 아이콘만 해당 셰이더 적용 → 항상 최상단 표시
- 시각적 정보 전달력이 향상됨
ZTest Always // 기존 Less → Always