▶▷ README
Abyss Slayer
Abyss Slayer는 Unity 엔진으로 개발한 2D 횡스크롤 액션 RPG 게임입니다. 로그라이크 요소와 온라인 멀티플레이, 보스 레이드 시스템이 핵심이며 다양한 직업들의 협동 플레이를 지원합니다.
게임 개요
- 장르: 2D 횡스크롤, 액션 RPG, 로그라이크
- 플랫폼: PC
- 엔진: Unity
- 레퍼런스: 스컬: 더 히어로 슬레이어, 메이플스토리, 던전앤파이터
- 특징:
- 온라인 협동 플레이
- 다양한 보스 패턴 및 공격 방식
- 직업 선택 및 팀플레이 조합
주요 시스템
게임 사이클
- 로비 → 준비 → 중간보스 → 보상 → 준비 → 중간보스 → 보상 → 준비 → 최종보스
- 씬 전환 및 상태 관리는
GameFlowManager
를 통한 상태 머신으로 구현
플레이어 FSM (Finite State Machine)
- 기본 상태
- Idle, Walk, Jump, Fall
- 공격 상태
- Enter State, Use State, Skill Type별 진입 처리
오브젝트 풀링 시스템
- 제네릭 기반 통합 오브젝트 풀
ObjectPool<T>
를 통해 타입별 관리BasePoolable
클래스 상속 필수- 자동 초기화 및 매개변수 기반 Init 지원
- 리소스 폴더 기반 자동 로딩
보스 공격 패턴 시스템
ScriptableObject 기반 패턴 관리
- 공격 패턴은 코루틴으로 구성
- 조건 충족 시 실행 가능한 패턴만 사용
- 가중치 기반 패턴 랜덤 선택
패턴 예시
- 할퀴기 (근접 돌진)
- 여우구슬 (왕복형 원거리)
- 여우불 (유도형 투사체)
- 여우분신 (분신 생성 및 폭발)
- 레이저 박스 (추적 + 경고 후 발사)
스킬 시스템
- ScriptableObject 및 상속 관계를 이용하여 관리
- 각 스킬에 공통적으로 있어야 하는 멤버가 포함된 Skill 클래스를 상속받아 공격, 버프 형태 등으로 카테고리 분류
- 분류된 각각의 카테고리를 상속 받는 클래스가 실제로 생성될 ScriptableObject
- 같은 카테고리 아래 다양한 종류로 나뉨
SO를 이용한 이유식 씬에만 한 번 로드
- 스타트/로비는 필요한 UI만 로드
씬 구조 및 상태 전이
GameFlowManager
- IGameState 인터페이스 기반 씬 상태 관리
ChangeState()
호출 →LoadingState
→ 실제 상태 진입
LoadingState 로직
- Additive 로딩 씬 호출
- 이전 UI 제거
- 다음 씬 로드 및 ProgressBar 처리
- 필요 UI 로드/생성
- 실제 상태 OnEnter()
'게임 개발 공부 기록' 카테고리의 다른 글
71일차 - Abyss_Slayer 최종 팀 프로젝트 20 (프로젝트 피드백) (0) | 2025.05.02 |
---|---|
69일차 - Abyss_Slayer 최종 팀 프로젝트 18 (중간 정리 3) (0) | 2025.04.30 |
68일차 - Abyss_Slayer 최종 팀 프로젝트 17 (중간 정리 2) (0) | 2025.04.29 |
67일차 - Abyss_Slayer 최종 팀 프로젝트 16 (중간 정리 1) (0) | 2025.04.28 |
66일차 - Unity 및 객체 지향 관련 지식 예제 1 (0) | 2025.04.25 |