Northbound
Unity 6 기반 4인 협동 액션 전략 게임입니다. 플레이어는 북쪽으로 탐험하며 크리스탈 거점을 연결하고, 정기적으로 남하하는 적에 대응합니다.
Unity
- Editor: Unity 6000.5.9f1
- Render pipeline: URP
- Networking: Netcode for GameObjects
- Main scene:
Assets/Scenes/GameMain.unity - Gameplay prototype:
Assets/NorthboundPrototype/Scenes/NorthboundGameplayPrototype.unity
새 게임 플레이 프로토타입
NorthboundGameplayPrototype 씬을 열고 Play한 뒤 Host를 누르면 단독 테스트를 시작할 수 있습니다. 별도 에디터나 빌드에서 같은 씬을 실행하고 Client를 누르면 로컬 4인 네트워크 테스트가 가능합니다.
- 이동: WASD
- 일반 공격: 좌클릭
- 마나 특수 공격: 우클릭
- 포탈 재건, 크리스탈 확보, 고정 타워 슬롯 건설: E
프로토타입 전체는 Assets/NorthboundPrototype에 격리되어 있습니다. 기존 GameMain과 기존 데이터/프리팹은 보존되며, 씬과 생성 프리팹을 다시 만들려면 Unity 메뉴의 Northbound > Build Gameplay Prototype을 실행합니다.
개발 문서
- 현재 디자인 기준:
AGENTS.md - 프로토타입 개발 순서와 단계별 완료 조건:
PROTOTYPE_ROADMAP.md
게임 데이터 작업
게임 데이터는 ScriptableObject가 단일 원본입니다. Notion, CSV, 코드 생성기를 거치지 않습니다.
데이터 위치:
- 건물:
Assets/Data/ScriptableObjects/Tower - 몬스터:
Assets/Data/ScriptableObjects/Monster - 크립:
Assets/Data/ScriptableObjects/Creep - 플레이어:
Assets/Data/ScriptableObjects/Player - 업그레이드:
Assets/Data/ScriptableObjects/Upgrade - 공통 설정:
Assets/Data/ScriptableObjects/DefaultSettings
새 데이터는 Project 창의 Create > Northbound 메뉴에서 생성하고 Inspector에서 직접 편집합니다. 기존 데이터 클래스는 Assets/Data/Scripts/DataClasses에서 수동 관리합니다.
업그레이드는 GameMain 씬의 UpgradeDatabase 컴포넌트에 명시적으로 등록합니다. 건물은 같은 씬의 BuildingManager.availableBuildings에 등록합니다. 런타임 폴더 검색이나 데이터 사본은 사용하지 않습니다.
수정 후 Tools > Northbound > Data > Validate All ScriptableObjects를 실행해 ID 중복, 누락 참조, 잘못된 수치와 업그레이드 연결을 검사합니다.
데이터 변경 원칙
- 기존
.asset을 삭제 후 재생성하지 않습니다. 참조 GUID를 보존하기 위해 기존 SO를 직접 수정합니다. - ID는 데이터 타입 안에서 고유한 양의 정수로 유지합니다.
- 필드 이름 변경 시 기존 직렬화 데이터를 보존하도록
FormerlySerializedAs를 사용합니다. - 프리팹이나 다른 데이터 참조는 문자열 경로보다 Unity 오브젝트 참조를 우선합니다.
- 대량 밸런스 편집 도구가 다시 필요해지기 전까지 외부 데이터 원본을 추가하지 않습니다.