Unity 6.5 게임플레이 프로토타입 재구축
This commit is contained in:
@@ -1,55 +1,36 @@
|
||||
# Northbound
|
||||
|
||||
Unity 6 기반 4인 협동 액션 전략 게임입니다. 플레이어는 북쪽으로 탐험하며 크리스탈 거점을 연결하고, 정기적으로 남하하는 적에 대응합니다.
|
||||
Unity 6.5 기반 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`
|
||||
## 개발 환경
|
||||
|
||||
## 새 게임 플레이 프로토타입
|
||||
- Unity Editor: `6000.5.9f1`
|
||||
- 렌더링: Unity 기본 렌더러
|
||||
- 외부 패키지: 없음
|
||||
- 프로토타입 씬: `Assets/Northbound/Scenes/NorthboundGameplayPrototype.unity`
|
||||
|
||||
`NorthboundGameplayPrototype` 씬을 열고 Play한 뒤 `Host`를 누르면 단독 테스트를 시작할 수 있습니다. 별도 에디터나 빌드에서 같은 씬을 실행하고 `Client`를 누르면 로컬 4인 네트워크 테스트가 가능합니다.
|
||||
Unity 메뉴에서 `Northbound > Build Gameplay Prototype`을 실행하면 기본 도형과 단색 재료로 씬을 다시 생성할 수 있습니다. 이 임시 표현은 그래픽 애셋과 게임 로직의 결합을 피하기 위한 것입니다.
|
||||
|
||||
- 이동: WASD
|
||||
- 일반 공격: 좌클릭
|
||||
- 마나 특수 공격: 우클릭
|
||||
- 포탈 재건, 크리스탈 확보, 고정 타워 슬롯 건설: E
|
||||
## 조작
|
||||
|
||||
프로토타입 전체는 `Assets/NorthboundPrototype`에 격리되어 있습니다. 기존 `GameMain`과 기존 데이터/프리팹은 보존되며, 씬과 생성 프리팹을 다시 만들려면 Unity 메뉴의 `Northbound > Build Gameplay Prototype`을 실행합니다.
|
||||
- 이동: `WASD`
|
||||
- 일반 공격: 마우스 좌클릭
|
||||
- 마나 특수 공격: 마우스 우클릭
|
||||
- 거점 활성화, 포탈 재건·이동, 타워 건설: `E`
|
||||
|
||||
## 개발 문서
|
||||
## 코드 구조
|
||||
|
||||
- 현재 디자인 기준: `AGENTS.md`
|
||||
- 프로토타입 개발 순서와 단계별 완료 조건: `PROTOTYPE_ROADMAP.md`
|
||||
- `Assets/Northbound/Core`: 팀, 피해, 상호작용처럼 게임 전반에서 공유하는 계약
|
||||
- `Assets/Northbound/Gameplay`: 전투, 플레이어, 적, 월드, 방어, 웨이브, 표시
|
||||
- `Assets/Northbound/Editor`: 프로토타입 씬 생성과 CLI 스모크 테스트
|
||||
- `Assets/Northbound/Generated`: 교체 가능한 임시 재료
|
||||
- `Assets/Northbound/Scenes`: 새 프로토타입 씬
|
||||
|
||||
## 게임 데이터 작업
|
||||
기존 프로젝트의 로컬 캐시와 도구 사본은 삭제하지 않고 Git에서 제외된 `.legacy-local`에 격리되어 있습니다. 새 프로젝트에서는 참조하지 않습니다.
|
||||
|
||||
게임 데이터는 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 오브젝트 참조를 우선합니다.
|
||||
- 대량 밸런스 편집 도구가 다시 필요해지기 전까지 외부 데이터 원본을 추가하지 않습니다.
|
||||
## 문서
|
||||
|
||||
- 현재 게임 디자인 기준: `AGENTS.md`
|
||||
- 구현 및 검증 순서: `PROTOTYPE_ROADMAP.md`
|
||||
|
||||
Reference in New Issue
Block a user