Tất cả những gì sẽ xảy ra trong màn hình Tải về Tải xuống?


19

Tôi chỉ cần tạo các phiên bản của tất cả đồ họa của mình vào bộ nhớ được tải từ tệp? cách tốt nhất để xử lý này là gì? Tôi có cần một số loại trình quản lý tài sản tạo các phiên bản đồ họa này trong màn hình tải và sau đó được đề cập sau không?

Những điều phổ biến cần được tải sẵn trong các trò chơi là gì? Tôi nên tải trước bao nhiêu?

Có đáng để hiển thị một số loại thanh tiến trình? Làm thế nào tôi có thể giữ thời gian tải ngắn? Màn hình tải sẽ như thế nào?

Một số ví dụ tốt về tải màn hình là gì? Bất kỳ ví dụ mã?

Cụ thể, trò chơi của tôi là dành cho Andriod (Java / di động), nhưng hãy thoải mái đưa ra câu trả lời của bạn chung chung.


2
Tôi biết rằng đây không phải là cụ thể những gì bạn đang yêu cầu, nhưng lời khuyên của tôi cho những gì sẽ xảy ra trong màn hình tải là: Điều thú vị! :) Giải trí cho người chơi với một chút câu chuyện (như đoạn phim cắt cảnh), một minigame hoặc có thể đã hiển thị một menu trong chừng mực có thể.
Bart van Heukelom

Câu trả lời:


13

Những thứ điển hình để tải trước là bất cứ thứ gì bạn cần trong thời gian thực. Tiết kiệm cho các khái niệm như clipmap và megatexture (trong đó ý tưởng là tải các phần bạn cần và cập nhật nó khi bạn di chuyển trên thế giới), bạn sẽ muốn giữ mọi thứ bạn cần cho cấp độ / khu vực / bất cứ điều gì trong bộ nhớ hơn là trên đĩa. IO là sloooow và bạn không muốn tải họa tiết của mình khi bạn xoay góc và nó sắp được hiển thị. Và bởi tất cả mọi thứ, tôi có nghĩa là kết cấu, âm thanh, lưới, dữ liệu meta ... tất cả mọi thứ.

Nếu bạn có thể hiển thị thanh tiến trình (nghĩa là bạn có ánh xạ chính xác các bước tải theo tỷ lệ phần trăm), thì bằng mọi cách, hãy hiển thị thanh đó. Nếu không, ít nhất là hiển thị một cái gì đó, như tin nhắn văn bản ngắn hoặc chỉ báo tải, được cập nhật sau mỗi bước để bạn ít nhất có thể nói điều gì đó đang xảy ra.

Nếu có thứ gì đó bạn biết sẽ cần, nhưng không phải ngay lập tức, bạn có thể tải nó ở chế độ nền và tạm dừng trò chơi (không tuyệt vời, nhưng hãy chắc chắn rằng nó hiếm khi xảy ra) nếu cần quá sớm. Điều này sẽ giúp bạn giữ thời gian tải xuống. Tôi không biết nhiều về sự phát triển của Android, hoặc nếu thiết bị sẽ xử lý nhiều trò chơi, nhưng nó thường khá nhẹ với CPU nên không có vấn đề gì lớn ở đó.


19

Bạn cần phải là "Reticulation Splines"


2
Haha, tham khảo tốt đẹp :)
Bryan Denny

Mặc dù đây rõ ràng là một trò đùa, +1 để tham khảo một ví dụ tuyệt vời về việc giữ người chơi bị chiếm đóng trong khi tải. Một kỹ thuật đơn giản như vậy không tốn nhiều công sức hơn việc thêm văn bản vô nghĩa. "Don't Starve" là một ví dụ khác về một trò chơi làm tốt điều này, và cũng trùng hợp (hoặc không) cũng liên quan đến "Reticulation": dont-starve-game.wikia.com/wiki/World_Generation_Screen
twiz

3

Phụ thuộc nếu bạn đang sử dụng một màn hình tải và chuyển tiếp cấp độ tức thời hoặc nhiều lần tải.
Tôi sẽ nói rằng cái sau sẽ tốt hơn về bộ nhớ.
Cái gì đó như:
//First loading screen
Load menu layouts or whatever
Load GUI assets
Show something to pass the time
Switch to menu

//In between levels
Remove any graphics specific to the last level - get rid of something that isn't going to reappear like a boss.
Load level graphics that haven't already been loaded
Again, show progress or something to pass the time

Và khi bạn đang tải, hãy đảm bảo không có màn hình đen. Hoặc cho vấn đề đó, một màn hình tĩnh. Nhiều lần tôi đã nhìn thấy một hình ảnh tĩnh trong một thời gian khi bắt đầu một ứng dụng, và ngay lập tức nghĩ rằng nó đã bị hỏng.
Một cách tốt để khiến người chơi tham gia đơn giản sẽ là một bối cảnh được vẽ độc đáo của một cảnh trong trò chơi, hoặc một số tham chiếu cốt truyện; một thanh tải có / không có phần trăm, miễn là nó không phải là 'Đang tải' tĩnh; và sau đó có thể một số thông tin.


1
Tuy nhiên, vì lợi ích của Pete, nếu bạn có một thanh tải hoạt hình với tỷ lệ phần trăm, hãy làm cho nó tăng dần và chính xác thay vì giữ ở mức 10% trong 90% thời gian và sau đó nhảy lên 100%. Nếu bạn có một hình ảnh động không tải phần trăm, ít nhất là làm cho nó hoạt động bình chọn khi tải - theo cách đó bạn có thể dừng nó khi tải bị hỏng vì một số lý do. Tôi thấy quá nhiều trò chơi làm sinh động hoạt hình đang tải trong luồng của riêng chúng và khi luồng tải bị hỏng thì hoạt hình vui vẻ chơi. Điều đó đánh bại mục đích của hoạt hình tải.
Kaj

Tôi có thể đồng ý hoàn toàn ở đó. Tôi không nghĩ nó sẽ được hoàn thành tốt nếu nó nhảy như thế.
Vịt Cộng sản

2

Trên nền tảng iphone và Android, bạn phải tải tất cả các kết cấu và âm thanh. Tải kết cấu và âm thanh thực sự chậm trên điện thoại cũ như iphone 2G, 3G hoặc G1. Bạn không thể làm điều đó trong trò chơi.


2

Như những người khác đã nói, nếu bạn có thể tải tất cả dữ liệu của một cấp độ trước khi bạn bắt đầu chơi nó, thì bạn sẽ có hiệu suất tốt hơn nhiều. Đây là một nguồn phổ biến của các cú hích trong thời gian khung để tải tài sản trong khi chơi trò chơi.

Những điều phổ biến cần làm trong khi tải màn hình là hình nền tĩnh, mức độ rất đơn giản, một số mẹo và thủ thuật về cách chơi, hoạt hình nhanh, v.v.

Đây là màn hình tải cho APB. Khá quái đản. :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related

Đây là một số mã giả để hiển thị thanh tiến trình trong màn hình tải:



LoadScreen::Init()
{
  mAssetsToLoad.add("Background.png");
  mAssetsToLoad.add("Player.png");
}

LoadScreen::Update()
{
  mProgress += 1;
  mAssetManager.load(mAssetsToLoad.top());
  mAssetsToLoad.pop();

  if mAssetsToLoad.empty()
    mDone = true;
}


LoadScreen::Draw()
{
  for( int i = 0; i != mProgress; ++i)
  {
     Vector2 pos(i*mProgressPartTexture.Width, 100);
     DrawProgressBarPart(pos, mProgressPartTexture);
  }
}

Ugh, buộc phải sử dụng! = Vì nó đã phá vỡ kết xuất mã khi tôi sử dụng <


1
Wow, màn hình tải APB trông rất tuyệt :)
Bryan Denny

Nếu bạn thụt mã của mình bằng bốn dấu cách thay vì sử dụng thẻ <pre> <code>, bạn sẽ có thể sử dụng <thay vì! = Mà không phá vỡ định dạng.
mmyer

mmyer, yeah, nhưng đó là một nỗi đau lớn ở mông. Tại sao không có thẻ mã tùy chỉnh?
Srekel

1

Tải màn hình có thể được sử dụng để ẩn khá nhiều thứ; tải tài sản, bất kỳ kết nối nào cần thiết để thực hiện (tcp, v.v.), điền bản đồ với các đối tượng trò chơi và khởi tạo.

Cách tôi có xu hướng tìm hiểu là có một số loại trình quản lý tài sản (hoặc có thể là trình quản lý cho từng loại tài sản - âm thanh, đồ họa, v.v.) và để chúng tải những gì sẽ được sử dụng vào bộ nhớ. Sau đó, chỉ cần trò chơi của bạn kéo tài liệu tham khảo ra khỏi các nhà quản lý.

Hiển thị một thanh tiến trình, xác định những gì cần tải trước, vv dường như phụ thuộc vào dự án của bạn, đó là thời gian tải và thị hiếu của bạn. Thanh tiến độ là tốt nếu chúng chính xác và nó tải lâu (thật tuyệt khi biết bạn cần đợi bao lâu).

Như đã nói, trên điện thoại Android của tôi, tôi có xu hướng thích các ứng dụng có tùy chỉnh riêng, được thực hiện một cách trang nhã. Nó không cần một thanh, nhưng hình ảnh động cho người dùng biết các chương trình đang hoạt động. Tôi tin rằng Android có một thanh mặc định mà bạn có thể sử dụng, nó hoạt động tốt.

Đây là một câu hỏi SO có thể bạn quan tâm.


1

Điều đáng chú ý là tất cả các nền tảng có yêu cầu kiểm soát chất lượng (ví dụ X360, PS3, DS, v.v.) đều yêu cầu bạn phải có một số dạng hoạt hình trong màn hình tải của bạn (hoặc trên thực tế, bất kỳ màn hình nào vẫn tĩnh trong hơn vài giây ).

Điều này là do nếu không, người dùng có thể nghĩ rằng trò chơi của bạn đã bị sập, trong khi thực tế nó chỉ mất một thời gian dài để tải. Ngay cả khi điều này không phải là một yêu cầu, tôi chắc chắn sẽ khuyên nó.

Bất kỳ hình thức hoạt hình nào cũng tốt, nhưng một thanh tiến trình đơn giản có thể không phải là tốt nhất, vì bất kỳ bước lớn nào trong quá trình tải có thể dẫn đến thanh tiến trình không di chuyển chút nào, có nghĩa là màn hình tĩnh như thể có không có thanh nào cả Tốt hơn là hiển thị một số hình ảnh chuyển động liên tục, như biểu tượng xoay, ngoài chỉ báo tiến trình.


1
Tất nhiên, trình tải đang tải không đồng bộ, bạn sẽ có thể thăm dò tiến trình của nó để bạn có thể cập nhật chính xác hơn tỷ lệ phần trăm. Bằng cách đó người chơi biết rằng nếu nó không gặp khó khăn tại một cái gì đó tỷ lệ phần trăm thực sự sai lầm. Ngoài ra, như tôi đã nói ở những nơi khác, vui lòng không cập nhật hoạt hình mà không thực sự kiểm tra với chủ đề tải của bạn xem nó vẫn đang chạy hay bạn sẽ vui vẻ quay trong khi trò chơi bị lỗi một cách hiệu quả.
Kaj

1

Đối với các màn hình tải trong Conquest , tôi đã đi kèm với một chút mô tả nhiệm vụ (loại trò chơi này, cũng như một chút cốt truyện cho nhiệm vụ) và một số trợ giúp cơ bản về các lệnh.

Trong nền, tôi đang tải âm thanh. Đồ họa được tải theo yêu cầu và dường như hoạt động khá tốt cho trò chơi của chúng tôi, nhưng âm thanh là một con gấu, vì vậy tôi đã tải trước tất cả các âm thanh cần thiết cho nhiệm vụ. Nút Tải / Bắt đầu bị vô hiệu hóa cho đến khi mọi thứ được tải, nhưng tôi không có bất kỳ loại hoạt hình nào (đó sẽ là một điều tốt để thêm vào).

Đây là trò chơi đầu tiên của chúng tôi, vì vậy chúng tôi vẫn đang học hỏi rất nhiều, nhưng điều này đã làm việc tốt cho chúng tôi cho đến nay.

Màn hình tải của Conquest

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.