GhostMarch_DOTS — 기능 확장·부채 누적 스냅샷
1. 주요 변경사항
- 무기 진화 시스템, 진화 탄환 프리팹,
EvoButton이 추가되어 장비 성장 축이 생겼다. - 궁극기·특수 이동 UI와 애니메이션, 신규 캐릭터와 신규 적, 빅보스, 하드 모드가 추가되었다.
- 업적 시스템, 스폰 제한, 라운드/스폰 버그 수정 등 플레이 루프 보강이 진행되었다.
- IronSource 광고 SDK가 대량 삭제되고
privacy_policy.txt가 추가되어 배포 방향이 바뀌었다. - Unity/URP/TMP/ShaderGraph/Build Profile 변경이 기능 작업과 같은 범위에 섞였다.
2. 코드 품질 리뷰
기능 전진 자체는 분명하다. 무기 진화, 궁극기, 업적, 하드 모드가 들어오면서 게임의 반복 플레이 동기가 강화되었다. 그러나 변경 방식은 위험하다. Assets/Scenes/SampleScene.unity 하나가 3만 줄 이상 변했고, UI 버튼·진화 선택·일시정지 호출이 씬 직렬화에 직접 묶여 있다. 왜 문제냐면 작은 UI 수정도 전체 씬 충돌과 회귀로 번진다. 개선하려면 진화 선택 UI, 궁극기 커맨드 UI, 업적 UI를 각각 프리팹화하고 테스트 씬에서 독립 검증해야 한다.
이름과 경계도 아직 약하다. Achive, Specialz, SpclMv, GV, Temp, GameObject.controller 같은 이름은 구현자가 기억할 때만 의미가 있다. 팀 작업에서는 곧바로 유지보수 비용이 된다. 왜 문제인지 명확하다. 새 기능이 늘어날수록 “무엇이 어디에 있는지” 찾는 시간이 개발 시간을 잡아먹는다. AchievementManager, SpecialMoveController, GlobalGameState처럼 역할을 드러내는 이름으로 정리해야 한다.
Unity 관점에서는 대량 Instantiate/Destroy 가능성이 있는 탄환·적·데미지 텍스트 영역이 계속 커지고 있다. PoolManager가 보강된 것은 좋은 방향이지만, 신규 진화 탄환과 스플래시 이펙트까지 풀링 계약이 문서화되어야 한다. 네트워킹 코드는 스냅샷상 확인되지 않으므로 멀티플레이 항목은 해당 없음이다.
3. 진행도 평가
진행도는 58%로 본다. 플레이 가능한 뼈대 위에 무기 진화, 궁극기, 업적, 하드 모드, 신규 몬스터가 붙었으므로 “콘텐츠 추가 단계”에는 진입했다. 다만 기능 추가 속도에 비해 구조화와 검증이 따라오지 못한다.
가장 큰 위험은 스코프 크리프다. 30개 커밋 안에 광고 제거, 개인정보 처리방침, Unity 버전성 변경, TMP 셰이더 대량 변경, 신규 시스템이 모두 섞였다. 이 상태로 다음 기능을 더 얹으면 버그 수정 시간이 기능 개발 시간을 역전할 가능성이 높다.
4. 다음 권장사항
- 무기 진화 시스템을 데이터 기반으로 정리하고 런타임 분기를 줄여야 한다.
SampleScene직접 수정분을 프리팹과 테스트 씬 단위로 분리해야 한다.- 업적·하드모드·스폰 제한의 저장, 초기화, 재시작 조건을 검증해야 한다.
- Unity·URP·TMP 업그레이드성 변경을 별도 커밋으로 분리해야 한다.
- 광고 제거 후 모바일 권한, 빌드 설정, 개인정보 처리방침의 정합성을 확인해야 한다.
- README를 조작법, 빌드 방법, 기능 완료표 중심으로 재작성해야 한다.
5. 문서화 상태
design 점수는 2점이다. README가 갱신되었지만 게임 컨셉, 코어 루프, 성장 구조, 하드 모드 의도가 설계 문서 수준으로 정리되어 있지 않다. “왜 이 기능이 필요한가”가 빠져 있다.
technical 점수는 1점이다. GameManager, Spawner, PoolManager, 무기 진화, 업적 저장 흐름을 설명하는 구조 문서가 보이지 않는다. 신규 유입자는 씬과 스크립트를 직접 뒤져야 한다.
spec 점수는 1점이다. 무기 진화 조건, 업적 해금 조건, 몬스터 스탯, 하드 모드 배율, 스폰 라운드 규칙이 테스트 가능한 표로 정리되어 있지 않다. 지금 상태에서는 밸런스 변경이 감각 의존으로 흐른다.
6. Backlog
- Unity 버전·패키지 업그레이드성 변경이 기능 커밋에 계속 섞여 있다.
- TextMesh Pro와 ShaderGraph 리소스 대량 변경의 의도가 아직 설명되지 않았다.
- Input System 샘플 리소스가 UI 폴더 아래에 남아 관리 경계가 흐리다.
- 커밋 메시지가
fix,safe..?, 진행 중 표현 중심이라 변경 의도 추적이 어렵다. - Aseprite와 AudioGen 자산이 대량 추가되었지만 출처, 라이선스, 실제 사용처가 불명확하다.