일반적인 이유 중 하나는 가까운 미래에 리소스가 필요한지 여부를 결정하는 것이 항상 쉬운 것은 아닙니다.
지형 페이징을 예로 사용 했으므로 계속하겠습니다.
주어진지도 그리드에 있으면 모든 인접한지도 그리드를 백그라운드로로드하는 것이 매우 합리적입니다. 사용자는 기껏해야 그 중 하나를 입력 할 수 있습니다. 그들이 할 때, 당신은 더 이상 인접하지 않은 것을 언로드하고 지금있는 것을 언로드 할 수 있습니다. 이것은 당신이 지적했다.
이제 빠른 여행을 상상해보십시오. 사용자가 어디로 갈지 예측할 수있는 방법은 없습니다. (보통) 거의 전체지도 중에서 선택할 수 있습니다. 가능한 빠른 이동 위치를 모두 사전로드하면 메모리가 너무 많이 걸리고 (처음에는 전체 맵을 메모리에로드 할 수 있음) 너무 많은 시간이 소요됩니다 (전체 맵이 사전로드되지 않았다고 가정). 언제 이런 일이 일어날까요? 그들이 빠른 여행 대화를 열 때? 문제는 몇 배만 악화 될 것입니다!
"무부하"지형 페이징을 사용하는 대부분의 게임조차도 빠른 이동에 여전히로드 화면이있는 이유입니다. 또한 충분히 빠르게 움직이면 무부하 맵이있는 게임에서도 화면 로딩을 트리거 할 수 있습니다 (TES Oblivion 에서이 작업을 수행 한 것을 기억합니다).
이제 이것이 일반적으로 관계가 분명하지 않은 게임 리소스에 적용되었다고 상상해보십시오. 가능한 모든 옵션을로드하거나 사용자가 무엇을할지 추측해야합니다. 추측은 비용이 많이 들고 (개발 및 CPU 모두) 프로그램을 복잡하게 만듭니다. 구체적인 예 :
- 파일 저장 : 사용자가 저장 화면에 도달하기 전에 모든 저장 파일 을로드 하거나로드 할 파일 (최신 5 등)을 추측해야합니다.
- UI : 많은 전략 게임이 진영에 따라 UI를 변경합니다. 사용자가 게임을 시작하기 전에 가능한 모든 UI 디자인을로드해야합니다.
- 게임 세계 : Minecraft와 같은 절차 적으로 생성 된 게임이나 문명과 같은 RTS 게임에서 세계는 볼 때까지 다양한 범위로 존재하지 않습니다. 사전로드는 존재하지 않기 때문에 불가능 합니다. 미리 계산 그들은 수 에서 최고의 로딩을 사전에 유사하게 수행하고, RTS의 경우에 적용 할 수 없습니다 수.
이러한 문제 중 일부를 해결할 수있는 방법이있을 수 있지만 실제 비용 이 발생 합니다. 알아 내기 위해서는 이 필요합니다. 대부분의 게이머는 합리적인 로딩 화면을 허용하며,이를 완화시키기 위해 하드웨어에 더 많은 비용을 투자하는 경향이 있습니다. 비정상적으로 과도하거나 방해가되지 않는 한 (레벨 중간에로드하는 것과 같이) 게임 문제가 아닌 하드웨어 문제 로 간주됩니다 .
백그라운드 로딩은 무료가 아닙니다. 일반적으로 백그라운드로드 지형과 일부 모델 파일의 현대적인 사용으로 인한 영향은 최소화되지만, 특히 여러 가지 리소스에 대해 갑자기 추측하는 경우, 특히 신뢰할 수있는 메트릭스가없고 많은 리소스를 언로드하고 불필요한 리소스를로드해야하는 경우 , 시스템을 먼지로 분쇄 할 수 있습니다.
백그라운드 로딩의 개념은 더 나은 사용을 위해 데드 사이클을 사용하는 것이지만 사용할 데드 사이클이 너무 많습니다. 프리로드는 게임의 메모리 사용량을 크게 증가시킬 수 있습니다. 로딩 화면을 사용하면 기존 리소스를 덤프 할 수 있습니다. 백그라운드 로딩과 같은 고급 스러움은 없습니다. 즉, 그 숫자만으로 게임의 메모리 요구량을 두 배로 늘릴 수 있습니다.