Numivo의 가장 중요한 기능은 눈에 보이지 않습니다: 출시된 여러분의 게임에는 그것이 조금도 들어 있지 않습니다. 상자 안의 모든 도구(스캐터, 메시 블렌딩, 그리드)는 평범한 엔진 에셋을 생성할 뿐 그 외에는 아무것도 남기지 않습니다. 이 글은 그것이 기술적으로 무엇을 의미하는지, 그리고 왜 우리가 그것을 타협 불가로 여기는지 설명합니다.
"네이티브"가 구체적으로 의미하는 것
Unreal에서 스캐터 패스를 베이크하면 Numivo는 Hierarchical Instanced Static Mesh 컴포넌트 또는 폴리지 인스턴스를 기록합니다: 손으로 배치했을 때 얻게 되는 것과 똑같은 구조입니다. Unity에서는 표준 프리팹 인스턴스나 지형 디테일이 됩니다. 메시 블렌딩의 머티리얼은 픽셀 단위로 정확한 노멀 전환을 갖춘 일반 엔진 머티리얼로 컴파일됩니다. 커스텀 셰이더 패스도, 프레임마다의 플러그인 작업도, 여러분의 Build.cs나 패키지 매니페스트 안의 "Numivo 런타임" 모듈도 없습니다.
여기서 나오는 수치:
- 빌드 안의 Numivo 코드 0줄
- 추가되는 프레임 시간 0 ms: 실행할 것이 없습니다
- 일반적인 씬에서 에디터 RAM 150 MB 미만: 에디터 툴링이 전체 풋프린트이기 때문입니다
- Unreal과 Unity를 아우르는 공용 코어 1개: 그래서 프리셋이 엔진 사이를 오갑니다
왜 우리는 런타임 종속성을 거부하는가
런타임 종속성은 다른 누군가가 갚아야 하는 빚입니다:
- 인증(certification). 콘솔 인증 팀은 모든 서드파티 모듈이 무엇을 하는지 묻습니다. "그런 것은 없습니다"가 가능한 가장 짧은 대답입니다.
- 수명. 게임은 도구 구독보다 오래 살아남습니다. 베이크된 결과가 평범한 에셋이기 때문에, Numivo로 만든 씬은 10년 후에도 우리가 있든 없든 열리고 출시됩니다. 취소하더라도 만든 것을 전부 그대로 갖게 됩니다: 이는 약관상의 약속이 아니라 아키텍처의 속성입니다.
- 성능의 주도권. 여러분의 프로파일러는 여러분이 이미 최적화할 줄 아는 엔진 프리미티브를 보여줍니다(컬 거리, LOD, Nanite 설정), 블랙박스가 아니라.
저장소에 무엇을 의미하는가
베이크된 결과는 다른 어떤 에셋과도 똑같이 버전 관리됩니다: diff되고, 병합되고, 리뷰됩니다. Numivo의 종(species)과 그리드 프리셋은 커밋하여 팀과 공유할 수 있는 작고 단순한 파일입니다. 버전 관리에 들어가지 않아야 할 유일한 것은 로컬 콘텐츠 인덱스 캐시입니다(스스로 다시 빌드됩니다). 무시 규칙 하나면 끝입니다.
트레이드오프, 솔직하게 말하자면
비파괴적 절차적 편집에는 플러그인이 필요합니다: 일단 베이크되면 언덕은 엔진 데이터가 되고, 그것을 절차적으로 다시 편집하려면 Numivo로 다시 열어야 합니다. 우리는 이것이 옳은 트레이드오프라고 생각합니다: 대안(씬을 런타임 레이어에 종속된 채로 두는 것)은 여러분의 프로젝트를 조용히 인질로 잡습니다. 여러분의 레벨은 여러분의 도구가 아니라 여러분의 게임에 속해야 합니다.
그 철학이 여러분 팀의 작업 방식과 맞는다면, 무료 등급이 그것을 시험해 볼 가장 쉬운 방법입니다: 무언가를 흩뿌리고, 베이크하고, 플러그인을 삭제한 뒤, 씬이 아무렇지 않아 하는 모습을 지켜보세요.