게임을 완전히 다운로드하기 전에 어떻게 게임을 할 수 있습니까?


75

디아블로 3스타 크래프트 2 에는 멋진 기능이 있습니다. 정식 게임이나 업데이트가 다운로드되기 전에 게임을 시작할 수 있습니다.

나는 생각 디아블로 3는 UI 자산과 처음 몇 단계에 걸쳐 사용되는 일부 메쉬 및 텍스처와 같은 같은 필수 파일을 다운로드합니다. 그러나 게임을 시작할 때 적절한 저장이 있다고 가정하고 원하는 수준을 선택할 수 있습니다. 연주 할 때 그런 지연을 경험 한 적이 없습니다. 시작은 항상 매우 부드럽습니다.

어떻게 작동합니까? 유사한 기능을 어떻게 구현할 수 있습니까?


2
월드 오브 워크래프트 : P
Kroltan

3
전체 웹 페이지를 다운로드하기 전에 웹 페이지를 어떻게 볼 수 있습니까? Google 이미지 검색에서 무한 시간 다운로드없이 어떻게 무한 이미지 목록을 표시 할 수 있습니까? 게임은 더 정교하지만 상당히 비슷합니다.
Lie Ryan

2
@LieRyan : "게임이 더 정교하다"는 말에 전혀 기초가 없습니다. 수천 대의 서버를 분산시키고 매일 수십억 개의 사용자 요청을 처리하고 저장합니다. 그런 다음 검색은 해당 회사의 여러 기능 중 하나 일뿐입니다. 따라서 게임이 본질적으로 "일반"소프트웨어보다 더 복잡하다고 생각하는 인생의 단계를 통과하십시오.
phresnel

1
@jhocking : 나에게 이야기하는거야? (그렇다면 @ <username>을 사용하는 것이 좋으므로 알림을받을 것입니다) 내가 어렸을 때 games-dev는 소프트웨어 공학의 언덕의 왕이 될 것이라고 생각했습니다. 나는 특히 상업적 게임의 많은 소스 코드가 출시 된 후에 더 잘 알고 있습니다. :) 반복되는 일반적인 오해입니다. Games-Dev는 Elite처럼 보이지만 실제로는 Super Computing, 검색 엔진, 이미지 인식, 이메일 마케팅 또는 ERP와 같은 소프트웨어 개발의 또 다른 전문 화일뿐입니다.
phresnel

1
간단히 말해서, 나는 집에서 대역폭이 낮고 ( 시골 지역에서의 생활비 ), "재생 가능"이라고하더라도 게임을 계속 사용할 수 없습니다. "최적화"를 기다려야합니다. 그렇지 않으면 매로드 화면마다 5 분 동안 대기하고 지연이 비현실적이므로 그 시점에서 확실히 다운로드합니다. 대역폭을 제한하여 자체적으로 추가 테스트를 수행 할 수 있습니다.
DoubleDouble 2016 년

답변:


72

사운드, 비디오, 모델 및 텍스처와 같은 자산이 다운로드의 대부분이며 각 자산마다 여러 버전이 있습니다. 이 여러 버전은 다양한 그래픽 옵션을 지원합니다.

낮은 그래픽 옵션에 필요한 에셋을 먼저 보내면 (가장 작은 것임). 모든 그래픽 옵션을 지원하는 데 필요한 총 자산의 15 % 정도만 있음에도 불구하고 게임에 필요한 모든 것을 갖추고 있습니다.

StarCraft 2를 다시 설치하여이를 테스트 할 수 있습니다. 그래픽 옵션 화면으로 이동하자마자 재생하십시오. 많은 옵션과 설정을 사용할 수 없습니다.


24
또한 적절한 선형성을 가진 게임의 전체 맵 또는 레벨에 동일한 기술을 적용 할 수 있습니다. 첫 번째 레벨을 먼저 다운로드하십시오. Guild Wars 2는 예를 들어 디스크에 오디오 및 시작 영역 (일부 추가) 만 제공했습니다.
Josh

12
블리자드 게임과 같은 일부 게임에는 게임의 현재 위치에 따라 필요에 따라 자산을 다운로드 할 수도 있습니다. 이는 자산이 로컬 하드 드라이브에서 비동기식으로 스트리밍되는 방식과 매우 유사하지만이 경우 요청 된 자산이 준비되기 전에 더 큰 지연이 발생합니다.
bcrist

1
IIRC, Diablo 3은 Josh Petrie가 기술 한 방법을 사용합니다. 리소스 (이 답변에 설명 된 것처럼 품질이 낮은 버전 만 가능)가 되 자마자 재생이 가능하지만 처음에는 Act I 만 재생할 수 있습니다. 즉, 인터넷 연결을 충분히 조절할 경우, Act I을 마친 후 다운로드를 중단하고 다운로드를 따라야합니다.
Aaron Dufour

1
달리 말하면, 실행 파일 이 설치 되 자마자 기술적으로 게임을 실행할 수 있습니다 . 이것은 단지 몇 메가 바이트의 데이터 일 수 있습니다. 게임에 참여할 수있는 거리는 사용 가능한 자산 수에 따라 다릅니다. 20GB로 설치되는 게임에는 약 19.9999GB의 데이터와 0.0001GB의 실행 코드가 있습니다. 네트워크에서 데이터를 계속로드 할 수 있으면 설치 완료의 1 % 미만으로 게임을 실행할 수 있습니다.
phyrfox

1
@ 브라이언 편집 기록을보십시오. 내가 답을 쓸 때 그런 것들을 묻지 않았습니다.
ClassicThunder

33

한 번 MMO를 위해 이것을 구현했습니다. 어느 주말에 딸을 위해 WOW를 설치하려고 할 때 48 시간 (패치, 다운로드 오류 등)이 걸리므로 더 나은 솔루션을 만들기로 결정했습니다.

게임을 실행하려면 일반적으로 10GB의 데이터가 필요합니다. 실제로 모든 파일이 필요한 것은 아니지만 게임은 모든 파일이 로컬에 존재할 때까지 기다렸습니다. 내 솔루션은 게임을 정상적으로 로컬에서 실행하는 것이었지만 EXE는 모든 파일이 이미 존재한다고 생각하도록 Windows 파일 미니 필터를 사용하여 속였습니다. 요청 된 파일이 로컬이 아닌 경우 파일 시스템은 파일을 다운로드하여 저장했습니다. 게임은 필요에 따라 천천히 로컬로 복사되었습니다. 사용 가능한 대역폭이 있었을 때, 아직 필요하지 않은 다른 파일은 백그라운드에서 속였습니다. 미니 필터 드라이버는 필요할 때 파일을 가져 오기 때문에 다시 컴파일 할 필요없이 모든 게임에서 작동했습니다.

최악의 단점은 대기 시간이었습니다. 이에 대한 나의 해결책은 다음에 어떤 파일이 필요할지 예측하고 백그라운드 로더의 우선 순위를 결정하는 작은 Markov Chain 모델을 만드는 것이 었습니다. 이것은 매력처럼 작동했으며 EXE만으로 MMO를 거의 즉시 실행할 수 있었으며 로딩 화면 파일 몇 개가 로컬 (~ 20MB)에 달했습니다. 우리는 웹 페이지에서 링크를 클릭하고 약 30 초 안에 10GB 이상의 게임을 실행할 수있었습니다 . 우리는 99 %의 적중률을 가졌습니다. 게임에 처음으로 새 파일이 필요할 때를 의미합니다!

다른 사람이 이것을 구현하도록 기꺼이 도와 드리겠습니다.


5
+1 그리고이 드라이버를 공유 할 수 있다면 좋았을 것입니다. 내가 그런 식으로 무언가를 찾고 있었기 때문에 직접 만들려고했지만 이미 완료 되었으면 기꺼이 사용하겠습니다.
Furkan Omay

5
꽤 고급 엔지니어링의 흥미로운 사용. 실제로 이것에 관한 블로그 게시물을 작성해야합니다. :) 기계 학습 기술이 실제로 얼마나 많은 도움이 되었습니까? 어떤 파일이 필요한지 얼마나 잘 예측할 수 있습니까?
Paul Manta

1
@FurkanOmay 그런 일은 거의 항상 누군가의 고용주의 회사 재산입니다. 사람들에게 계약 조건을 어기도록 요청하지 마십시오.
jwenting

@jwenting 내가 이해 한 바에 따르면, 그가 한 일은 회사가 아니라 딸과 WoW와 같은 게임을위한 것이 었습니다. 나는 정중하게 묻습니다. 아무도 강요받지 않습니다. 그는 어떤 이유로 든 거부 할 수 있으며 모든 것이 괜찮을 것입니다. 나는 그가 "다른 사람이 이것을 구현하도록 기꺼이 도와 줄 것"이라고 말했기 때문에 적어도 시작점을 요구하는 것은 나쁜 생각이 아니라고 생각하기 때문에 나는 이미 이것을 지상에서 기꺼이 이행하겠다고 말했다. 쪽으로.
Furkan Omay

3

또한 일부 게임에서는 최종 게임 세계 영역 및 파일이 지연되고 필수 영역 만 유지되며 게임을 계속하면서 설치할 수도 있습니다.


2

여러 사람들이 한 말을 요약하고 정보를 추가 할 수 있습니다.

  • 초기 다운로드는 작고 나머지는 시작 파일과 다운로드 관리자입니다. 계정 생성, 아바타 생성 및 시작 영역을 포함시키는 것이 좋을 것입니다.
  • 그것이 실행되는 동안 사용자는 로그인하여 아바타를 만들고 다른 물건, 저수준 영역 및 공통 파일을 먼저 다운로드하기 시작합니다 (기본 사운드 및 질감과 같이 게임 전체에서 가능한 한 많이 재사용합니다)
  • 사용자가 레벨을 진행하면서 다가오는 영역 및 기타 컨텐츠를 사전 다운로드하기 시작하십시오.
  • 사용자가 다운로드가 필요한 옵션을 선택하면 저해상도 변형을 먼저 다운로드 한 다음 필요에 따라 고해상도 버전을 다운로드하고 표시되는 저해상도 버전을 즉시 교체하십시오. 그렇게하면 사용자가 무언가를보고 점차 게임의 영광이 드러납니다 (물론 충분한 대역폭과 컴퓨터 파워를 가지고 있다면)
  • 모든 것이 다운로드 될 때까지 반복


이는 모든 콘텐츠가 로컬로 캐시 될 때까지 재생하는 동안 네트워크로드가 높아지지만 서버에 초기 버스트로드가 작을뿐 아니라 게임을 처음 다운로드하는 동안 사용자가 짧고 실망하지 않는 대기 시간을 의미합니다.
물론 사용자가 네트워크 연결이 느린 경우 영역을 전환 할 때 여전히 "기다려주십시오. 콘텐츠를로드하십시오"메시지가 표시되거나 메시지를 제공하거나 게임을 처음 시작할 때 및 다운로드하기에 너무 낮은 경우 대역폭을 확인하고 싶을 수 있습니다 확실하게 즉석에서 기다렸다가 적어도 전체 첫 번째 수준 (그리고 아직 완전히 다운로드되지 않은 영역에 들어갈 때)을 기다립니다.
네트워크 연결이 끊어지기 때문에 실제 게임 플레이 도중 사용자가 지연되는 것을 방지합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.