프로젝트 개요
report · 6 of 8 · 2 commits · 6085536fe42f1ebd139ae4063ff23cbb4691c8de..457e887e2ef842f3008a7ea4b4448fe14624caee

출구·시작계단 기능은 전진했지만 네트워크 생성 리스크가 커졌다.

HIGH 진행도 38% ( 0pts) 2026. 4. 30. PM 3:17

프로젝트 예상 진행도

기준: 2026. 4. 30. PM 3:17
38 / 100

문서화 상태

Design
4/10
Technical
2/10
Spec
2/10
#던전생성 #네트워킹 #프리팹 #씬관리 #문서화

Exit-or-die — 던전 출구·시작계단 스냅샷

1. 주요 변경사항

2. 코드 품질 리뷰

이번 변경은 “출구와 시작 위치를 던전 생성 결과에 붙인다”는 기능 목표가 분명하다. RoomConfig에 생성 가능 여부를 두고, 후보 방을 필터링한 뒤 1회만 스폰하는 흐름 자체는 방향이 좋다. 특히 tileObjects를 별도로 들고 가서 바닥 제거 대상과 실제 GameObject를 연결한 점은 이전보다 구현 가능성이 높아진 부분이다.

다만 DungeonGenerator가 너무 많은 책임을 떠안았다. 현재 한 클래스가 방 생성, 후보 탐색, 출구 보정, 시작계단 배치, 바닥 제거, 소형 타일 재생성, 네트워크 스폰까지 모두 처리한다. 이 상태로 다음 기능이 붙으면 디버깅 비용이 급격히 증가한다. ApplyExitTileTypeOffset의 사분면별 보정값도 경험적 패치에 가깝다. 타일 크기와 프리팹 피벗이 바뀌면 다시 깨질 가능성이 높으므로, 프리팹 소켓 또는 bounds 기반 규칙으로 바꾸는 편이 맞다.

가장 위험한 부분은 시작계단 방향 규약이다. GetStartStairsPlacements는 X축 3칸을 찾을 때 Quaternion.identity를 반환하지만, ApplyStartStairsFloorReplacement는 identity를 Vector3.forward, 즉 Z축 길이로 해석한다. 결과적으로 유효한 위치를 찾고도 다른 방향의 바닥을 제거할 수 있다. 이는 “가끔 계단 주변 바닥이 비거나 겹치는” 런타임 버그로 나타날 가능성이 높다. 배치 계산을 순수 함수로 분리하고 X/Z 케이스를 테스트로 고정해야 한다.

네트워킹 관점에서도 경고 수준이다. 이 클래스는 NetworkBehaviour이고 새 프리팹에는 NetworkObject가 붙어 있다. 그런데 랜덤 선택, 바닥 제거, Destroy/Despawn 호출이 서버 전용 경로라는 보장이 diff에서 보이지 않는다. NGO에서는 던전 구조의 권위를 서버가 가져야 한다. 생성 코루틴 입구에서 IsServer를 명시하고, 클라이언트는 서버가 스폰한 NetworkObject만 관찰하도록 정리해야 한다. 또한 일부 Lock 계단 프리팹은 루트와 자식에 NetworkObject가 함께 있는 형태로 보인다. 네트워크 프리팹은 루트 NetworkObject 1개를 기준으로 설계하는 것이 안전하다.

3. 진행도 평가

기능 진척은 있다. 탈출구와 시작계단이 던전 생성 결과에 붙기 시작했고, 방 타입별 허용 플래그도 생겼다. 그러나 이번 전진은 검증 가능한 설계보다 씬 편집과 경험적 보정에 의존하고 있다. 특히 네트워크 생성물과 랜덤 배치가 결합됐기 때문에, 싱글플레이에서 맞아 보여도 멀티플레이에서 불일치가 날 수 있다.

진행도는 약 38%로 본다. 핵심 루프를 구성하는 조각은 늘고 있지만, 문서·테스트·네트워크 권한 모델이 따라오지 못했다. 지금 바로 하루 정도 투자해 던전 생성 책임과 서버 권한 경계를 정리하지 않으면 이후 수정 비용이 크게 오른다.

4. 다음 권장사항

5. 문서화 상태

design 점수는 4점이다. 컨셉 문서는 존재하는 것으로 보이나, 이번 던전 출구·시작계단 규칙이 플레이 경험 목표와 어떻게 연결되는지 갱신되지 않았다.

technical 점수는 2점이다. 네트워크 권한, 던전 생성 데이터 흐름, 프리팹 등록 규칙이 문서화되지 않았다. 신규 개발자가 지금 구조를 문서만 보고 이해하기 어렵다.

spec 점수는 2점이다. 출구 배치 가능 방, 시작계단 3x1 조건, 타일 교체 기준, 금지 방 타입 같은 테스트 가능한 사양이 없다. 현재는 코드와 씬을 열어 추론해야 하는 상태다.

6. Backlog

리포트 타임라인

8개 스냅샷 · 최신순