Skip to content

Pre-Alpha v0.0.1-dev

PATCH NOTES

맵 생성 / 미션 진입 최적화 및 구조 개선

이번 빌드에서는 포탈 오픈 전 체감 대기시간 단축, 미션 진입 구간 스파이크 분산, 탐사형 월드 구조 품질 유지를 동시에 달성하는 것을 목표로 생성 파이프라인과 전환 타이밍을 재구성했습니다. 이번 문서는 MicroSplat 도입/텍스처링 작업을 제외한 변경 사항만 다룹니다.

Game UpdatesPre-Alphav0.0.1-devOptimization / Structure

핵심 요약

  • 오픈 전(pre-open) 단계에서 수행하던 과도한 계산을 줄이고, 코어 플레이 가능 상태 우선 개방 구조를 강화했습니다.
  • RoadMask, 경로 생성, Constraint Fields를 단계화/혼합화해 포탈 오픈 전 비용과 미션 진입 스파이크를 줄이는 방향으로 조정했습니다.
  • 미션 흐름 중 배치/스폰 타이밍과 월드 준비 상태의 정합성을 개선해 레이스성 증상을 완화했습니다.
  • 허브 콘솔 디버그와 생성 진행률/프레임 안정성 계측을 강화해 병목 위치를 더 빨리 찾을 수 있게 했습니다.
  • 튜닝/작업 속도를 위해 주요 월드/전환 관련 인스펙터 구성을 정리했습니다.
이번 빌드 포지션

이번 변경은 기능 추가보다 “언제 무엇을 계산할 것인가”를 재배치하는 구조 개선에 가깝습니다. 체감 품질을 유지하면서도 포탈 오픈 전 구간의 부담을 줄이는 데 초점을 맞췄습니다.

월드 생성: RoadMask pre-open 파이프라인 고급화

기존에는 pre-open 단계에서 코어 엣지 필터를 적용하더라도 사실상 전맵 해상도로 RoadMask를 계산한 뒤, WorldReady 이후 전체 RoadMask를 다시 생성하는 구조였습니다. 구현 단순성과 정합성은 좋았지만, 맵 볼륨과 해상도가 커질수록 포탈 오픈 전 비용이 커지는 문제가 있었습니다.

변경 후 pre-open 처리

  • 코어 공간 exact raster: 코어 동선 주변 + 핵심 지점 주변만 정확 계산 영역으로 지정
  • 원거리 coarse raster: 코어 밖은 거친 stride 기반 샘플링/스플랫으로 근사값 생성
  • post-ready refine: WorldReady 이후 전체 정밀 RoadMask 재생성으로 최종값 교체

의도 / 효과

pre-open에서는 “포탈을 열고 플레이를 시작할 만큼의 영향값”을 빠르게 확보하고, 정밀도는 post-ready에서 회수하는 방식으로 바꿨습니다. 결과적으로 포탈 열리기 전 계산 비용을 줄이면서도 최종 룩/정합성은 유지하는 방향입니다.

월드 생성: 경로 생성 전략 재구성 (코어 정밀 + 비코어 생성형)

기존에는 네트워크가 커질수록 모든 연결선에 정밀 탐색을 적용하는 경향이 있어 path solve 비용이 빠르게 증가했습니다. 이번에는 월드 생성용 경로의 목적을 다시 정의하고, “절대 최적 경로”보다 결정론 / 속도 / 형태 품질에 맞는 혼합 전략으로 재구성했습니다.

  • 코어 경로만 정밀 탐색: 핵심 동선(시작/주요/출구 연결) 위주로 정밀 탐색 적용
  • 비코어 경로는 fallback + shaping: 생성형 경로 + 후처리로 구조 품질 유지
  • Lazy Theta* / Bidirectional A* / Corridor 제한 조합: 품질-속도 균형을 맞추기 위한 다단 구성
  • 다단 fallback 유지: 고급 탐색 실패 시에도 기본 탐색/직선 fallback으로 안정성 확보

이 변경으로 장거리 코어 경로에서 탐색 비용을 줄이면서, 경로의 계단형 느낌을 완화하고 후처리와의 궁합도 개선하는 방향으로 조정했습니다.

월드 생성: Constraint Fields 병목 최적화 및 진행률 표시 개선

Constraint Fields는 월드 생성에서 가장 체감 비용이 큰 구간 중 하나였습니다. 이번 빌드에서는 계산식 자체를 줄이는 최적화와, 병목이 어디에서 발생하는지 바로 확인할 수 있는 진행률 가시성 개선을 함께 적용했습니다.

계산 비용 최적화

  • POI clearing 계산을 셀×POI 전수 순회 방식에서 POI별 스탬프 패스로 변경
  • Base 패스의 노이즈/마스크 샘플 비용을 coarse LUT + fast path + 캐시 중심으로 축소
  • 반복 호출/보간/콜백 빈도 감소로 per-cell 비용 절감

진행률 표시 개선

기존에는 전체 퍼센트만 보여서 “멈춘 것처럼 보이는” 구간이 있었습니다. 이제는 Base / POI / RoadSteps 같은 로컬 단계 진행률을 따로 보여줘 병목 위치를 즉시 파악할 수 있게 했습니다.

결과적으로 생성 체감 시간뿐 아니라, 튜닝 반복에서 “무엇이 느린지”를 찾는 속도도 함께 개선했습니다.

미션 플로우 정합성 개선 (월드 상태 / 코어 지형 준비 / 배치 타이밍)

pre-open / post-ready 분리 최적화 이후, 월드 상태 게시 타이밍과 미션 오픈/배치 타이밍 사이에서 레이스가 발생할 수 있는 구간이 있었습니다. 이로 인해 포탈 매핑 미해결, 허브/출구 배치 위치 이상, timeout 경고 등으로 이어질 가능성이 있었습니다.

  • 플랜 완료 직후 월드 상태를 선행 게시해, 지형 코어 이전에도 필요한 구조 정보는 사용할 수 있게 조정
  • 지형 코어 완료 후에는 surface/height 반영 상태로 월드 상태를 다시 게시해 최종 정합성 확보
  • 허브/출구 배치는 코어 지형 준비 이후로 대기시켜 지형 기준 정합성 개선
  • 불필요한 fail-safe 강제 오픈 조건을 줄여 생성 중 레이스성 오작동 완화
  • 미션 흐름 중 일부 스폰/배치 단계를 프레임 분산 처리해 단발 스파이크 완화
  • 크리처 스폰을 코어 플레이 가능 상태 이후로 지연 가능한 옵션 추가

디버그 / UI 가시성 강화

허브 콘솔 생성 통계 확장

생성 구간 프레임 안정성을 빠르게 판단할 수 있도록 평균 FPS뿐 아니라 프레임타임 변동성, hitch 구간 비율, 최대 스파이크 등을 함께 표시하는 통계를 추가했습니다. “빠르지만 튀는 상태”와 “조금 느리지만 안정적인 상태”를 구분하기 쉬워졌습니다.

생성 단계 진행률 가시화

포탈 오픈 진행률, 월드 준비 플래그, 현재 생성 단계, 경로해결 통계 등을 허브 콘솔 디버그에서 바로 볼 수 있게 정리했습니다. 프로파일러를 열기 전에도 병목 위치를 추정할 수 있는 정보량을 늘렸습니다.

미션 생성 시작 시드 드롭 오버레이 추가

미션 생성 시작 시 현재 미션 시드를 짧게 보여주는 오버레이 연출 UI를 추가했습니다. 포탈 부팅 / 미션 로딩 단계에서 등장하고, 최소 표시 시간 보장 후 페이드아웃됩니다. 런타임 자동 생성형으로 구성해 프리팹 의존 없이 붙일 수 있게 정리했습니다.

에디터 작업성 개선 (주요 월드/전환 인스펙터 정리)

이번 빌드에서는 런타임 최적화와 함께, 월드 생성/전환 관련 컴포넌트 인스펙터의 작업성도 정리했습니다. 옵션 수가 많아질수록 실수와 튜닝 비용이 커지는 문제를 줄이기 위한 변경입니다.

  • 섹션별 폴드 구조로 옵션 그룹 정리
  • 레거시 기능/현행 기능 구분 표시 강화
  • 현재 모드에서 실사용하지 않는 옵션은 조건부 비활성화(회색 처리)
  • 예외/디버그 상황용 전체 접근(Fallback Inspector) 유지
  • 중첩 폴드 경고를 피하기 위한 폴드 구조 재정리

영향과 주의점

  • 이번 변경은 평균 FPS 개선보다도 포탈 전후 1~2초 구간의 체감 안정성 개선에 초점을 둔 작업입니다.
  • 기능을 제거하기보다 수행 시점과 처리 우선순위를 재배치한 변경이 많아, 맵 구성 품질은 유지하면서 체감만 개선되는 구간이 있습니다.
  • 병목이 이동하는 것은 이번 구조에서 예상된 결과이며, 다음 단계에서는 새로 드러나는 병목(후속 스트리밍/후처리)을 이어서 정리할 예정입니다.
  • 일부 설정 값은 튜닝 범위를 넓히기 위해 노출된 상태이며, 빌드/맵 규모에 따라 최적값은 계속 조정됩니다.