HANPAN — BlackAndWhite 3D UI 스냅샷
1. 주요 변경사항
- BlackAndWhite 보드와 손패가 3D 타일 기반 표현으로 크게 전환됐다. 빈 슬롯 음각, LED, Wood/LED 머티리얼, 제출 시 lift 같은 시각 피드백이 추가됐다.
- 라운드 타이머 2분, 만료 시 랜덤 카드 자동 제출, 제출 후 중복 제출 방지 플래그, 항복 버튼과 확인 다이얼로그가 들어갔다.
- Lobby UI는 구
Input의존을 New Input System으로 일부 교체했고,HANPAN.Lobby.asmdef에Unity.InputSystem참조를 추가했다. Game_01_BlackAndWhite.unity가 30,747라인 규모로 다시 대량 변경됐다. 기능 전진은 있으나 리뷰 가능성과 병합 안정성은 악화됐다.
2. 코드 품질 리뷰
이번 변경의 좋은 점은 플레이어가 실제로 조작하며 판단할 수 있는 피드백이 늘었다는 점이다. 손패 선택, 슬롯 높이, LED 노출, 항복 확인 흐름은 모두 “게임처럼 보이는 상태”로 가는 데 필요한 작업이다. 특히 제출 후 추가 제출 방지 플래그를 넣은 것은 입력 중복으로 라운드 상태가 깨지는 전형적인 버그를 선제적으로 막는 방향이라 타당하다.
다만 구현 흐름은 위험하다. 55개 커밋 중 merge/fix가 반복되고, 같은 메시지가 중복으로 등장한다. 이는 시각 조정이 코드·씬·빌더에 분산되어 한 번에 안정화되지 못하고 있다는 신호다. HandView3D, BoardLayout3D, UI Builder, 씬 파일이 함께 흔들리면 “어떤 값이 원본인가”가 흐려진다. 개선하려면 슬롯 크기, lift 높이, 타일 두께, 폰트 크기 같은 값은 설정 객체나 ScriptableObject로 모으고, 씬은 결과물이 아니라 재생성 가능한 산출물로 취급해야 한다.
가장 큰 문제는 씬 직렬화 의존이다. 현재 diff의 대부분은 Game_01_BlackAndWhite.unity이며, 이 형태는 코드 리뷰가 사실상 불가능하다. 충돌이 나면 의미 단위가 아니라 fileID 단위로 깨진다. 반복 배치 오브젝트는 Prefab과 빌더 입력 데이터로 분리하고, 커밋에는 “무엇을 생성했는지”가 보이는 코드와 작은 설정 파일을 남기는 구조가 필요하다.
3. 진행도 평가
이전 대비 BlackAndWhite의 화면 완성도와 즉시 플레이 피드백은 분명히 전진했다. 타이머, 자동 제출, 항복, 손패 3D화는 핵심 루프를 실제 테스트 가능한 방향으로 밀고 있다. 그래서 진행도는 스캐폴드 단계는 넘었다고 본다.
그러나 완성도는 아직 46% 수준이다. 네트워크 오브젝트/플레이어 Prefab 전략, leave 중복 호출, 미제출 기본값, 씬 생성물 관리가 모두 남아 있다. 지금은 폴리싱 단계가 아니라 “플레이 가능한 단일 경로를 안정화하는 단계”로 봐야 한다.
4. 다음 권장사항
Game_01_BlackAndWhite.unity에 직접 쌓인 보드·손패·LED 반복 오브젝트를 Prefab과 빌더 데이터로 이동한다.- 타이머 만료, 수동 제출, 항복, 중복 클릭이 모두 같은 라운드 상태 전이를 통과하도록 테스트한다.
SessionManager의 수동 leave와 SDK 자동 leave 훅의 호출 순서, 중복 호출 시 결과를 문서화한다.HandView3D,BoardLayout3D의 매직 넘버를 설정 데이터로 분리한다.- BlackAndWhite 사양서에 입력 매핑, UI 상태 전이, HUD 표시 규칙을 표로 고정한다.
5. 문서화 상태
design은 5점이다. 게임 모드와 작업 항목은 존재하지만, BlackAndWhite가 어떤 플레이 경험을 목표로 하는지와 각 UI 선택의 이유가 충분히 설명되어 있지 않다.
technical은 3점이다. README/3. Work_Breakdown.md가 갱신됐지만, 네트워크 권한 모델과 씬 생성 정책을 신규 참여자가 이해할 만큼 정리하지 못했다. 특히 Player Prefab 전략 부재는 기술 문서의 핵심 결손이다.
spec은 4점이다. 구현은 타이머, 항복, 자동 제출까지 확장됐으나 입력, 상태, 결과, 예외 케이스가 테스트 체크리스트 수준으로 내려오지 않았다. _sample/docs 기준으로는 아직 기능 설명과 검증 기준 사이가 비어 있다.
6. Backlog
- 게임 본편 NetworkObject/Player Prefab 전략이 아직 확정되지 않았다. 멀티플레이 게임에서 소유권 모델이 늦게 정해지면 이후 UI와 게임 상태를 다시 뜯게 된다.
- 수동 leave와 SDK 자동 leave 훅 중복 가능성은 계속 위험하다. 재접속, 방 나가기, 씬 전환에서 한 번만 호출된다는 보장이 필요하다.
Game_01_BlackAndWhite.unity대형 생성물 커밋 문제가 더 커졌다. 지금 끊지 않으면 다음 병합부터 리뷰 비용이 급증한다.PendingColor기본값 문제는 이번 범위에서 해결 근거가 없다. 미제출 상태는 색이 아니라 명시적인 상태로 표현해야 한다.- Lobby 씬 하드코딩, 상세 사양서 부재, URP 템플릿 잔존도 그대로 남아 있다. 지금은 핵심 루프 안정화 뒤 정리할 장기 부채로 관리해야 한다.