Unity 6.5 게임플레이 프로토타입 재구축

This commit is contained in:
2026-09-01 11:08:56 +09:00
parent b95c5bdb13
commit 0c8cfaf454
5500 changed files with 6394 additions and 5044252 deletions
+23 -42
View File
@@ -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`