Unity 3D 기반 4인 팀 프로젝트. 실시간 전투, 스킬 조합, 레벨업, 장비 수집 등 RPG 핵심 루프를 구현한 액션 RPG 게임.
- 개발 형태: 팀 프로젝트 (프로그래머 4명, 팀장)
- 기간: 2024.11.27 ~ 2024.12.12 (15일)
- 담당: 스킬 시스템 구조 설계, 제네릭 Object Pool, 게임 매니저 아키텍처
동기
4명의 프로그래머가 협업하는 3D 액션 RPG 프로젝트였다. 플레이어가 다양한 스킬과 무기를 조합해 몬스터와 전투하고, 경험치와 아이템으로 캐릭터를 성장시키는 구조를 만들어야 했다.
팀장으로서 핵심 과제는 두 가지였다. 첫째, 4명이 각자 맡은 스킬과 시스템을 독립적으로 개발할 수 있는 구조를 설계하는 것. 둘째, 반복적인 오브젝트 생성/파괴로 인한 런타임 성능 문제를 해결하는 것이었다.
접근
시스템을 세 축으로 나눠 설계했다.
첫째, 스킬 시스템. Skill 추상 클래스를 정의하고, 쿨타임/마나/애니메이션 등 공통 동작을 상위에 통합했다. 스킬 데이터, 로직, 스탯을 분리하여 팀원 각자가 새로운 스킬을 독립적으로 추가할 수 있는 구조를 만들었다.
둘째, Object Pool. 제네릭 기반 풀 매니저를 구현하고, 사용량에 따라 풀 크기를 동적으로 확장/축소하는 최적화를 적용했다. 미사용 오브젝트는 코루틴으로 자동 정리하여 메모리 효율을 유지했다.
셋째, 매니저 아키텍처. GameManager를 중심으로 PlayerManager, ItemManager, UIManager 등을 싱글턴으로 분리하고, 코루틴 기반 초기화 순서 제어로 매니저 간 의존성 문제를 해결했다.

핵심 구현
| 영역 | 내용 |
|---|---|
| 스킬 시스템 | Skill 추상 클래스 기반 확장 구조, SkillData/SkillStat 분리, StatInitializer 배열 기반 초기값 관리 |
| Object Pool | 제네릭 PoolManager, 사용량 기반 동적 크기 조절, 미사용 풀 자동 정리 코루틴 |
| 매니저 아키텍처 | 제네릭 SingletonManager 추상 클래스, WaitUntil 기반 초기화 순서 제어 |
기술 스택
| 기술 | 적용 영역 |
|---|---|
| C# / Unity 2022.3 | 게임 로직, 스킬 시스템, 매니저 아키텍처, Object Pool |
| 제네릭 프로그래밍 | SingletonManager<T>, ObjectPool<T> 타입 안전 설계 |
| 코루틴 / WaitUntil | 매니저 초기화 순서 제어, 풀 자동 정리 |
| ScriptableObject | 스킬 데이터 관리, 스탯 초기화 설정 |
문서 구성
| 문서 | 내용 |
|---|---|
| 01-스킬-시스템 | Skill 추상 클래스 설계, 데이터/로직/스탯 분리, StatInitializer 트러블슈팅 |
| 02-게임-매니저-아키텍처 | 싱글턴 매니저 구조, 초기화 순서 문제 해결, 설계 회고 |
| 03-오브젝트-풀-최적화 | 제네릭 Object Pool, 동적 크기 조절, 자동 정리 메커니즘 |



