Exit-or-die — 던전 생성 재작업 스냅샷
1. 주요 변경사항
- 던전 생성 로직이 문서 방식에 맞춰 크게 갱신되었고, 방·복도·문 위치 오차를 여러 커밋에 걸쳐 수정했다.
DungeonGeneratorEditor와 전용 Editor asmdef가 추가되어 생성 파라미터를 에디터에서 다루려는 방향은 좋다.DefaultNetworkPrefabs.asset가 추가되고 클라이언트에서 문 프레임이 보이지 않는 네트워크 표시 문제를 수정했다.Sample.unity,Game.unity,Assets/_Recovery가 대량 변경되어 실제 기능 변경과 에디터 저장 노이즈가 섞였다.Deungeon,TIle,Lage,Metarial같은 오탈자 경로가 유지된 채 새 에셋이 추가됐다.
2. 코드 품질 리뷰
이번 변경의 긍정적인 지점은 명확하다. 던전 생성이 단순 배치 실험에서 문·복도·방 연결 규칙을 가진 시스템으로 이동했고, 전용 에디터 확장을 만든 것은 반복 테스트 비용을 낮추는 좋은 선택이다. 다만 DungeonGenerator.cs가 한 번에 1527줄 증가한 것은 강한 경고 신호다. 절차 생성은 방 후보 생성, 격자 점유, 복도 연결, 문 선택, 프리팹 배치, 네트워크 등록이 서로 다른 책임이다. 한 클래스에 섞이면 이번처럼 문 위치 오차 하나를 고칠 때 다른 생성 단계가 같이 흔들린다. 단계별 서비스와 ScriptableObject 설정으로 분리하고, 동일 seed에서 결과가 고정되는 검증을 먼저 붙여야 한다.
씬 변경도 위험하다. Sample.unity는 프리팹 교체, GlobalObjectIdHash, m_RemovedGameObjects, 수동 배치 좌표가 한 diff에 섞여 있어 리뷰가 거의 불가능하다. 왜 문제냐면 Unity 씬 YAML은 충돌과 회귀를 사람이 추적하기 어렵고, 네트워크 프리팹 해시가 섞이면 런타임에서만 깨질 수 있기 때문이다. 개선은 생성 결과 검증용 테스트 씬과 실제 게임 씬을 분리하고, 반복 생성물은 씬 저장물이 아니라 prefab/config/test output으로 관리하는 것이다.
네트워킹은 해당 있음이다. 클라이언트 문 프레임 표시 버그를 고친 점은 전진이지만, 현재 변경만으로는 던전 오브젝트의 소유자가 서버인지, 클라이언트가 어느 범위까지 예측하는지 판단할 수 없다. NGO/Mirror 어느 쪽이든 NetworkObject 등록 순서, spawn 권한, prefab hash 불일치는 조용히 실패하는 영역이다. 권한표와 동기화 범위를 문서화하고, 생성 직후 서버·클라이언트 양쪽에서 문/벽 표시 개수를 검증하는 플레이모드 테스트가 필요하다.
3. 진행도 평가
이전 리포트 대비 던전 생성 축에서는 분명한 전진이 있다. 문 생성, 복도 인접 타일, 벽 뚫림, 클라이언트 표시 문제를 실제로 고치려는 작업이 이어졌다. 그러나 5개 커밋이 모두 수정성 커밋이고, 대규모 씬·Recovery·에셋 변경이 함께 들어와 순수 기능 진척보다 회귀 위험이 더 크게 보인다.
현재 완성도는 38%로 본다. 핵심 던전 시스템의 형태는 생겼지만 재현 가능한 생성 검증, 네트워크 권한 명세, 입력 정책, 문서화, 저장소 정리가 아직 제출 가능한 수준에 못 미친다. 지금 정리하지 않으면 다음 1주일은 기능 추가보다 생성 버그 추적에 소모될 가능성이 높다.
4. 다음 권장사항
- DungeonGenerator를 생성 단계별 클래스로 분리하고 시드 기반 검증 추가.
- Unity Recovery 씬을 저장소에서 제거하고 ignore 정책 확정.
- 던전 문·복도 생성 규칙을 문서와 테스트 체크리스트로 고정.
- 네트워크 던전 프리팹 권한과 동기화 범위를 문서화.
- Deungeon/TIle/Lage/Metarial 명명 정리와 GUID 영향 확인.
- Sample/Game 씬 변경을 테스트 씬과 제품 씬으로 분리.
5. 문서화 상태
design은 5점이다. 게임 컨셉과 방향성은 존재하는 것으로 보이나, 이번 던전 생성 변경이 플레이 경험의 어떤 목표를 달성하는지 문서 갱신이 없다. “문서 방식으로 생성”했다면 그 문서가 실제 판정 기준이어야 한다.
technical은 3점이다. 네트워크 프리팹과 던전 생성기가 바뀌었지만 서버 권한, 생성 순서, 클라이언트 표시 보정, 실패 로그 정책이 보이지 않는다. 신규 팀원이 문서만 보고 구조를 이해하기 어렵다.
spec은 2점이다. 문 위치, 방 크기, 복도 폭, 문 후보 조건, 벽 제거 조건 같은 테스트 가능한 수치가 필요하다. 현재는 버그를 고친 기록은 있지만 다음 버그를 자동으로 막는 사양으로 승격되지 않았다.
6. Backlog
- 네트워크 이동 권한과 클라이언트 예측·보정 정책이 문서화되지 않음.
- Unity Recovery 씬이 저장소에 포함되어 변경 노이즈를 크게 만듦.
- Input System 과 구 InputManager 가 동시에 남아 입력 정책이 애매함.
- 대량 에셋과 예제 파일이 제품 코드와 섞여 리뷰·빌드 비용을 증가시킴.
- 문서가 컨셉 중심이며 테스트 가능한 수치·상태 사양이 부족함.
- 던전 에셋 폴더명 오탈자와 대소문자 불일치가 유지보수 비용을 만듦.