
| 항목 | 내용 |
|---|---|
| 프로젝트명 | TowerZenith |
| 장르 | 3D 로그라이크 액션 게임 |
| 개발 기간 | 2024.02 ~ 2024.04 |
| 개발 인원 | 1명 |
| 담당 역할 | Unity 클라이언트 개발 |
| 사용 기술 | Unity 2022.3.13f1, C#, Unity AI Navigation, NavMeshAgent, TextMeshPro, Unity UI, ScriptableObject, CSV/TextAsset |
| 플랫폼 | PC |
| GitHub | **https://github.com/0chotona/TowerZenith** |
| 시연 영상 | https://youtu.be/Bmw82Ecb3F4?si=Ktdi9VD7BT0tfW-4 |
| 블로그 링크 | https://pika-dev.tistory.com/8 |
TowerZenith는 랜덤하게 생성되는 방을 탐험하며 적을 처치하고, 획득한 무기와 아티팩트를 조합해 캐릭터를 강화하는 3D 로그라이크 액션 게임입니다.
플레이어 이동, 카메라 제어, 근거리/원거리 전투, 무기 전환, 버프 및 시너지, 인벤토리, 랜덤 맵 생성, 적 AI, 보스 패턴, UI 및 사운드 시스템을 구현했습니다.
| 기능 | 설명 |
|---|---|
| 플레이어 조작 | 이동, 점프, 대시, 공격 입력 처리 |
| 카메라 시스템 | 마우스 기반 회전, 조준 카메라, 벽/지형 관통 방지, 카메라 흔들림 구현 |
| 전투 시스템 | 한손검, 양손검, 활 공격 방식 분리 및 데미지 판정 처리 |
| 무기 전환 시스템 | 장착한 무기에 따라 공격 방식, 애니메이션, 스탯, 모델 표시 변경 |
| 데미지 판정 | 치명타, 흡혈, 화상, 빙결, 기절, 고정 피해 효과 처리 |
| 아이템 데이터 | CSV/TextAsset 기반 아이템, 버프, 시너지 데이터 로딩 |
| 인벤토리 | 드래그 앤 드롭 장착, 슬롯 타입 검사, 아이콘 갱신, 장비 스탯 반영 |
| 랜덤 맵 생성 | 노드 기반 방 연결, 시작/전투/상점/보물/보스 방 배치 |
| 방 진행 시스템 | 방 입장 시 적 스폰, 문 닫힘, 클리어 후 문 열림 및 보상 활성화 |
| 적 AI | NavMeshAgent 기반 추적, 공격, 피격, 사망 처리 |
| 보스 패턴 | Zoroark 보스의 근거리 공격, 점프 공격, 투사체 패턴 구현 |
| UI | 체력바, 스탯 패널, 인벤토리, 아이템 정보 패널, 다음 스테이지 안내 |
| 사운드 | 플레이어, 적, UI, 액티브 스킬 사운드 재생 처리 |
문제 상황
로그라이크 구조를 만들기 위해 매 플레이마다 방 배치가 달라져야 했고, 방 사이의 연결 관계와 문 생성이 함께 관리되어야 했습니다.
해결 방법
CMap, CMapNode를 사용해 방을 노드 단위로 생성하고, 상하좌우 이웃 노드를 연결하는 방식으로 랜덤 맵 구조를 만들었습니다.
구현 포인트