Làm thế nào để một trò chơi có thể chơi được trước khi chúng được tải xuống đầy đủ?


75

Diablo 3StarCraft 2 có một tính năng hay: Tôi có thể bắt đầu chơi trước khi tải xuống toàn bộ trò chơi hoặc cập nhật.

Tôi đoán Diablo 3 tải xuống các tệp bắt buộc như tài sản UI và một số mắt lưới và kết cấu được sử dụng qua nhiều cấp độ trước tiên. Tuy nhiên, khi bắt đầu một trò chơi, tôi có thể chọn bất kỳ cấp độ nào tôi muốn, giả sử tôi có các khoản tiết kiệm phù hợp. Tôi chưa bao giờ gặp phải bất kỳ độ trễ nào như vậy khi chơi trò chơi khởi động luôn luôn rất mượt mà.

Cái này hoạt động ra sao? Làm thế nào tôi có thể thực hiện một tính năng tương tự?


2
Thế giới Warcraft cũng vậy: P
Kroltan

3
Làm thế nào các trang web có thể xem được trước khi bạn tải xuống toàn bộ các trang web? Làm cách nào để tìm kiếm Google Image hiển thị danh sách hình ảnh vô hạn mà không cần sử dụng thời gian vô hạn để tải xuống? Trò chơi phức tạp hơn nhưng chúng khá giống nhau.
Lie Ryan

2
@LieRyan: Liên quan đến "Trò chơi phức tạp hơn", cụm từ đó không có nguyên tắc cơ bản nào cả. Có thể có những trò chơi phức tạp hơn, tương tự như vậy (và nhìn vào các cửa hàng ứng dụng, đó là phần lớn các phần mềm không giải quyết được vấn đề nghiêm trọng) các trò chơi kém tinh vi hơn so với một nghiên cứu web có thể mở rộng quy mô lan rộng hàng ngàn máy chủ và xử lý và lưu trữ hàng tỷ yêu cầu của người dùng mỗi ngày. Và sau đó, tìm kiếm chỉ là một trong nhiều tính năng cho công ty đó. Vì vậy, xin vui lòng, vượt qua giai đoạn cuộc sống nghĩ rằng trò chơi vốn đã phức tạp hơn phần mềm "bình thường".
phresnel

1
@jhocking: Bạn có nói chuyện với tôi không? (nếu vậy, sử dụng tốt hơn @ <tên người dùng> vì vậy tôi sẽ được thông báo) Nah, không thực sự cay đắng. Khi tôi còn trẻ, tôi đã nghĩ rằng game-dev sẽ là vua của đồi công nghệ phần mềm. Bây giờ tôi chỉ biết rõ hơn, đặc biệt là sau khi phát hành một số mã nguồn của trò chơi thương mại :) Đó là một quan niệm sai lầm phổ biến lặp đi lặp lại để bật lên. Games-Dev trông giống Elite thực sự, nhưng thực tế nó chỉ là một chuyên ngành phát triển phần mềm khác, giống như Super Computing, Công cụ tìm kiếm, Nhận dạng hình ảnh, Email Marketing hoặc ERP cho các E lớn.
phresnel

1
Chỉ cần một nhận xét nhanh, tôi đã có băng thông kém ở nhà ( chi phí sinh hoạt ở vùng nông thôn ) và trò chơi vẫn không thể chơi được đối với tôi mặc dù nó nói, "có thể chơi được". Tôi phải chờ "tối ưu". Nếu không, tôi bị kẹt chờ 5 phút cho mỗi màn hình tải và độ trễ là không thực, vì vậy nó chắc chắn tải xuống một số nội dung tại thời điểm đó. Có thể tự mình kiểm tra thêm bằng cách giới hạn băng thông của bạn.
DoubleDouble

Câu trả lời:


72

Các tài sản như âm thanh, video, mô hình và kết cấu là phần lớn của tải xuống và đối với mỗi tài sản này có nhiều phiên bản. Nhiều phiên bản này là để hỗ trợ các tùy chọn đồ họa khác nhau.

Bằng cách gửi các tài sản cần thiết cho một tùy chọn đồ họa thấp trước tiên (cũng là những tài sản nhỏ nhất). Bạn có mọi thứ bạn cần để chơi trò chơi mặc dù chỉ có 15% hoặc hơn tổng số tài sản cần thiết để hỗ trợ mọi tùy chọn đồ họa.

Bạn có thể kiểm tra điều này bằng cách cài đặt lại StarCraft 2. Chơi ngay khi nó cho phép bạn đi đến màn hình tùy chọn đồ họa. Nhiều tùy chọn và cài đặt sẽ không có sẵn.


24
Bạn cũng có thể áp dụng kỹ thuật tương tự cho toàn bộ bản đồ hoặc cấp độ trong các trò chơi với độ tuyến tính phù hợp - trước tiên hãy tải xuống các cấp độ đầu tiên hoặc một cái gì đó. Guild Wars 2 chỉ vận chuyển âm thanh và khu vực bắt đầu (cộng thêm một chút) trên đĩa chẳng hạn.
Josh

12
Một số trò chơi (như trò chơi Blizzard) cũng có khả năng tải xuống tài sản theo yêu cầu, dựa trên vị trí hiện tại của bạn trong trò chơi. Điều này hoạt động giống như cách các tài sản thường được truyền không đồng bộ từ ổ cứng cục bộ, nhưng trong trường hợp này với độ trễ lớn hơn trước khi các tài sản được yêu cầu sẵn sàng.
bcrist

1
IIRC, Diablo 3 sử dụng phương pháp được mô tả bởi Josh Petrie - nó có thể phát được ngay khi tài nguyên (có thể chỉ là phiên bản chất lượng thấp như được mô tả trong câu trả lời này), nhưng chỉ Act I ban đầu có thể phát được. Đó là, nếu bạn điều tiết kết nối internet của mình đủ, bạn sẽ buộc phải dừng lại và để quá trình tải xuống bắt kịp sau khi hoàn thành Đạo luật I.
Aaron Dufour

1
Nói cách khác, trò chơi có thể chạy kỹ thuật ngay khi cài đặt thực thi . Đây có thể chỉ là một vài megabyte dữ liệu. Khoảng cách bạn có thể vào trò chơi tùy thuộc vào số lượng tài sản có sẵn. Một trò chơi cài đặt 20GB có khoảng 19.9999GB dữ liệu và 0,0001GB mã thực thi; miễn là nó có thể tiếp tục tải dữ liệu từ mạng, trò chơi có thể chạy với ít hơn 1% cài đặt hoàn tất.
phyrfox

1
@Brian Nhìn vào lịch sử chỉnh sửa. Nó không hỏi những điều đó khi tôi viết câu trả lời.
ClassicThunder

33

Tôi đã từng thực hiện điều này cho MMO. Một ngày cuối tuần trong khi cố gắng cài đặt WOW cho con gái tôi mất 48 giờ, (bản vá, lỗi tải xuống, v.v.) vì vậy tôi quyết định thực hiện giải pháp tốt hơn cho riêng mình.

Trò chơi thường cần 10 GB dữ liệu trước khi chạy. Không phải tất cả các tệp thực sự cần thiết ngay lập tức, nhưng các trò chơi được sử dụng để đợi cho đến khi tất cả các tệp có mặt cục bộ. Giải pháp của tôi là để trò chơi chạy cục bộ như bình thường, nhưng EXE đã bị lừa (sử dụng bộ lọc minifilter của Windows) để nghĩ rằng tất cả các tệp đã có mặt. Khi một tệp được yêu cầu không phải là cục bộ, hệ thống tệp đã tải xuống và lưu nó. Trò chơi đã dần được sao chép cục bộ khi cần thiết. Khi có băng thông khả dụng, các tệp khác chưa cần thiết đã bị lừa trong nền. Điều này hoạt động với TẤT CẢ các trò chơi mà không cần biên dịch lại, vì trình điều khiển minifilter của tôi có các tệp khi cần.

Hạn chế tồi tệ nhất là độ trễ. Giải pháp của tôi cho điều đó là tạo ra một mô hình Chuỗi Markov nhỏ để dự đoán tập tin nào có thể cần thiết tiếp theo và ưu tiên trình tải nền. Điều này hoạt động như một cơ duyên và MMO của chúng tôi đã có thể chạy gần như NGAY LẬP TỨC chỉ sau EXE và một vài tệp màn hình tải là cục bộ (~ 20 MB). Chúng tôi đã có thể nhấp vào một liên kết trên một trang web và chạy trò chơi 10+ GB của chúng tôi trong khoảng 30 giây . Chúng tôi có tỷ lệ trúng 99%, nghĩa là khi trò chơi cần một tệp mới lần đầu tiên nó đã ở đó!

Tôi rất vui lòng giúp bất cứ ai khác thực hiện điều này.


5
+1 và sẽ thật tuyệt nếu bạn có thể chia sẻ trình điều khiển này bởi vì tôi đang tìm kiếm thứ gì đó tương tự và chuẩn bị tự tạo nó giống như bạn đã làm nhưng nếu nó đã được thực hiện thì tôi sẵn sàng sử dụng nó.
Furkan Omay

5
Sử dụng thú vị của một số kỹ thuật khá tiên tiến. Bạn thực sự nên viết một bài blog về điều này. :) Các kỹ thuật máy học thực sự giúp được bao nhiêu? Làm thế nào tốt họ có thể dự đoán những tập tin cần thiết?
Paul Manta

1
@FurkanOmay những thứ như vậy hầu như luôn luôn là tài sản của công ty của chủ nhân. Đừng yêu cầu mọi người phá vỡ các điều khoản trong hợp đồng của họ.
jwenting

@jwenting Từ những gì tôi hiểu, những gì anh ta đã làm không phải cho một công ty mà là cho con gái của anh ta và cho các trò chơi như WoW. Tôi chỉ cần lịch sự hỏi, không ai bị ép buộc. Anh ta chỉ có thể từ chối vì bất kỳ lý do và mọi thứ sẽ ổn. Tôi đã hỏi bởi vì anh ấy nói rằng "anh ấy rất vui khi được giúp đỡ bất cứ ai khác thực hiện điều này" vì vậy tôi không nghĩ rằng việc yêu cầu ít nhất một điểm khởi đầu không phải là một ý tưởng tồi vì tôi đã nói rằng tôi sẵn sàng thực hiện điều này từ mặt đất lên.
Furkan Omay

3

Ngoài ra, trong một số trò chơi, các khu vực và tập tin trong thế giới trò chơi bị trì hoãn, chỉ có các khu vực bắt buộc được giữ và cũng có thể được cài đặt trong khi vẫn chơi trò chơi.


2

Để tóm tắt những gì một số người đã nói, và có thể thêm một số thông tin:

  • tải xuống ban đầu là nhỏ, chỉ cần các tập tin khởi động và quản lý tải xuống cho phần còn lại. Sẽ rất tuyệt nếu bao gồm tạo tài khoản, tạo avatar và có thể các vùng bắt đầu trong này.
  • Trong khi đang chạy, người dùng đang đăng nhập và tạo avatar của họ, bắt đầu tải xuống các nội dung khác, khu vực cấp thấp và các tệp phổ biến trước tiên (như âm thanh và kết cấu cơ bản, bạn sử dụng lại càng nhiều càng tốt trên trò chơi của bạn)
  • khi người dùng tiến qua các cấp, hãy bắt đầu tải trước các khu vực sắp tới và nội dung khác
  • nếu người dùng chọn các tùy chọn cần tải xuống, trước tiên hãy tải xuống các biến thể có độ phân giải thấp, sau đó khi anh ta chơi tải xuống các phiên bản có độ phân giải cao hơn khi cần và thay thế các phiên bản độ phân giải thấp được hiển thị bằng các biến thể đang hoạt động. Bằng cách đó, người dùng sẽ nhìn thấy một cái gì đó, và dần dần toàn bộ vinh quang của trò chơi được tiết lộ (tất nhiên nếu anh ta có đủ băng thông và sức mạnh máy tính)
  • lặp lại cho đến khi mọi thứ được tải xuống


Điều đó có nghĩa là tải mạng cao hơn trong khi chơi, cho đến khi tất cả nội dung được lưu trữ cục bộ, nhưng tải nổ ban đầu nhỏ hơn trên máy chủ của bạn cũng như chờ người dùng ngắn hơn và ít bực bội hơn trong khi họ tải xuống trò chơi.
Tất nhiên, nếu người dùng có kết nối mạng chậm, anh ta vẫn có thể nhận được thông báo "vui lòng đợi, tải nội dung" (cung cấp các thông báo đó) khi chuyển vùng hoặc bạn có thể muốn kiểm tra băng thông khi bắt đầu trò chơi và nếu quá thấp để tải xuống đáng tin cậy khi đang bay, anh ta sẽ đợi ở đó và sau đó ít nhất là toàn bộ cấp độ đầu tiên (và sau đó một lần nữa khi vào các khu vực chưa được tải xuống đầy đủ).
Điều này để ngăn người dùng tụt lại giữa trò chơi thực tế vì kết nối mạng của anh ta bị sa lầy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.