56 lines
3.0 KiB
Markdown
56 lines
3.0 KiB
Markdown
# 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 오브젝트 참조를 우선합니다.
|
|
- 대량 밸런스 편집 도구가 다시 필요해지기 전까지 외부 데이터 원본을 추가하지 않습니다.
|
|
|