1. 프로젝트 개요

TZ0.png

항목 내용
프로젝트명 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

2. 게임 소개

TowerZenith는 랜덤하게 생성되는 방을 탐험하며 적을 처치하고, 획득한 무기와 아티팩트를 조합해 캐릭터를 강화하는 3D 로그라이크 액션 게임입니다.

플레이어 이동, 카메라 제어, 근거리/원거리 전투, 무기 전환, 버프 및 시너지, 인벤토리, 랜덤 맵 생성, 적 AI, 보스 패턴, UI 및 사운드 시스템을 구현했습니다.


3. 담당 기능 요약

기능 설명
플레이어 조작 이동, 점프, 대시, 공격 입력 처리
카메라 시스템 마우스 기반 회전, 조준 카메라, 벽/지형 관통 방지, 카메라 흔들림 구현
전투 시스템 한손검, 양손검, 활 공격 방식 분리 및 데미지 판정 처리
무기 전환 시스템 장착한 무기에 따라 공격 방식, 애니메이션, 스탯, 모델 표시 변경
데미지 판정 치명타, 흡혈, 화상, 빙결, 기절, 고정 피해 효과 처리
아이템 데이터 CSV/TextAsset 기반 아이템, 버프, 시너지 데이터 로딩
인벤토리 드래그 앤 드롭 장착, 슬롯 타입 검사, 아이콘 갱신, 장비 스탯 반영
랜덤 맵 생성 노드 기반 방 연결, 시작/전투/상점/보물/보스 방 배치
방 진행 시스템 방 입장 시 적 스폰, 문 닫힘, 클리어 후 문 열림 및 보상 활성화
적 AI NavMeshAgent 기반 추적, 공격, 피격, 사망 처리
보스 패턴 Zoroark 보스의 근거리 공격, 점프 공격, 투사체 패턴 구현
UI 체력바, 스탯 패널, 인벤토리, 아이템 정보 패널, 다음 스테이지 안내
사운드 플레이어, 적, UI, 액티브 스킬 사운드 재생 처리

4. 주요 구현 상세

기능 1. 노드 기반 랜덤 맵 생성

문제 상황

로그라이크 구조를 만들기 위해 매 플레이마다 방 배치가 달라져야 했고, 방 사이의 연결 관계와 문 생성이 함께 관리되어야 했습니다.

해결 방법

CMap, CMapNode를 사용해 방을 노드 단위로 생성하고, 상하좌우 이웃 노드를 연결하는 방식으로 랜덤 맵 구조를 만들었습니다.

구현 포인트