한 번 MMO를 위해 이것을 구현했습니다. 어느 주말에 딸을 위해 WOW를 설치하려고 할 때 48 시간 (패치, 다운로드 오류 등)이 걸리므로 더 나은 솔루션을 만들기로 결정했습니다.
게임을 실행하려면 일반적으로 10GB의 데이터가 필요합니다. 실제로 모든 파일이 필요한 것은 아니지만 게임은 모든 파일이 로컬에 존재할 때까지 기다렸습니다. 내 솔루션은 게임을 정상적으로 로컬에서 실행하는 것이었지만 EXE는 모든 파일이 이미 존재한다고 생각하도록 Windows 파일 미니 필터를 사용하여 속였습니다. 요청 된 파일이 로컬이 아닌 경우 파일 시스템은 파일을 다운로드하여 저장했습니다. 게임은 필요에 따라 천천히 로컬로 복사되었습니다. 사용 가능한 대역폭이 있었을 때, 아직 필요하지 않은 다른 파일은 백그라운드에서 속였습니다. 미니 필터 드라이버는 필요할 때 파일을 가져 오기 때문에 다시 컴파일 할 필요없이 모든 게임에서 작동했습니다.
최악의 단점은 대기 시간이었습니다. 이에 대한 나의 해결책은 다음에 어떤 파일이 필요할지 예측하고 백그라운드 로더의 우선 순위를 결정하는 작은 Markov Chain 모델을 만드는 것이 었습니다. 이것은 매력처럼 작동했으며 EXE만으로 MMO를 거의 즉시 실행할 수 있었으며 로딩 화면 파일 몇 개가 로컬 (~ 20MB)에 달했습니다. 우리는 웹 페이지에서 링크를 클릭하고 약 30 초 안에 10GB 이상의 게임을 실행할 수있었습니다 . 우리는 99 %의 적중률을 가졌습니다. 게임에 처음으로 새 파일이 필요할 때를 의미합니다!
다른 사람이 이것을 구현하도록 기꺼이 도와 드리겠습니다.