Tidak bisakah semua game menghindari pemuatan setelah mulai?


23

Sama seperti game raksasa dunia terbuka memuat peta besar secara dinamis, tidak bisakah kita memuat peta, menu, dan hampir semua antarmuka atau pengaturan 3D secara terpisah melalui metode pemuatan dinamis yang sama? Tanpa mengubah lingkungan, sepertinya antarmuka dan berbagai lokasi dalam game semuanya dapat dimuat secara dinamis dengan cara yang sama seperti peta dunia terbuka besar dimuat saat Anda berjalan melaluinya.

Mengapa ini tidak dilakukan? Saya melihat begitu banyak game modern di mana Anda harus menunggu sebentar atau lebih ketika pertandingan / peta / level sedang dimuat. Saya tahu ada latensi yang terlibat dengan menghubungkan rekan tetapi itu tidak membutuhkan lebih dari beberapa saat dalam pengalaman saya. Masalah apa yang ada dengan konsep ini untuk menghentikannya agar tidak digunakan untuk menghilangkan waktu pemuatan yang terkait dengan memuat peta / level / data antarmuka?


16
Perhatikan bahwa dalam banyak 'mulus' permainan dunia yang terbuka, ada yang waktu loading ketika pemain bergerak ke lokasi yang tak terduga. Satu dapat berjalan dari satu ujung New York ke yang lain di The Division tanpa sering memuat layar - sementara perjalanan cepat ke lokasi membutuhkan pemuatan. Ini semua tentang mengetahui apa yang akan dimuat selanjutnya.
Felsir

2
@Felsir Dungeon Siege melakukannya dengan cara yang sama.
Mason Wheeler

Sebagai contoh, Batman Arkham Origins menggunakan layar pemuatan tepat sebelum cutscene dan ketika memasuki area yang sama sekali baru. Ceritanya yang didorong oleh cerita, sifatnya progresif cocok dengan baik, dan memberi pengguna istirahat alami. Ini bekerja baik terutama karena daerah yang sangat luas dengan aset definisi sangat tinggi. Akan sangat memakan waktu untuk kode dan menguji fitur ini untuk sedikit manfaat.
Casey Kuball

bawa RAM Anda hingga 128GB. Buat drive RAM 64 GB atau lebih, muat game Anda ke drive RAM. Waktu pemuatan akan sangat cepat sehingga Anda hampir tidak akan melihatnya. Saya memutakhirkan ke SSD dan sebagian besar waktu muat menjadi lebih singkat. Mengupgrade kartu video, terutama untuk lebih banyak RAM video.
cybernard

Pemuatan Async membutuhkan waktu, yang dapat bervariasi berdasarkan pada CPU dan kecepatan disk. Anda tidak selalu dapat memastikan hal-hal akan dimuat pada saat Anda membutuhkannya.
Alan Wolfe

Jawaban:


31

Jawabannya adalah ya, ini bisa dilakukan, dalam banyak kasus, setidaknya sampai batas tertentu.

Banyak alasan mengapa hal itu tidak dilakukan:

  • Dibutuhkan waktu dan uang untuk melakukannya dengan benar.
  • Jumlah bug yang lulus pengujian akan lebih tinggi
  • Waktu pemuatan diterima oleh pengguna.
  • Mungkin ada alasan lain untuk memuat kali, seperti menyeimbangkan beban server.
  • Solusi umum yang dapat dibeli dari rak lebih kompatibel dengan "muat sekaligus".

Sebagai tindak lanjut dari poin 'load balancing server', banyak game online yang masuk ke pasaran saat ini memiliki area 'hub' pusat yang unik untuk Anda dan tidak dapat diakses oleh orang lain. Cukup sering, area-area ini ditempatkan di belakang zona muatan atau area berjalan lambat (misalnya, BOO di 'The Division') sehingga mereka dapat dengan aman membawa Anda keluar dari tempat Anda sebelumnya berada dan menempatkan Anda di tempat pribadi Anda. .
SGR

7
Ada juga masalah memori. Mungkin tidak mungkin memuat level yang ada sambil menyimpan yang saat ini ada di memori (terutama untuk konsol atau perangkat portabel), jadi Anda harus menggunakan layar pemuatan
Jezzamon

@ Jezzamon Saya pikir keseluruhan peta Skyrim tidak pernah disimpan dalam memori pada satu waktu tertentu. Mungkin aku salah? Tetapi jika tidak, mengapa ada situasi lain yang tidak bisa diterapkan dengan strategi pemuatan dinamis peta game dunia besar yang terbuka?
Viziionary

Hampir tidak ada yang menggulung mesin game mereka sendiri dari awal lagi. Mereka membeli mesin (Unreal, Unity, CryEngine) dan sekelompok middleware dan merekatkannya. Mesin dasar biasanya tidak diatur untuk mengalirkan konten secara terus menerus, atau untuk memulai kembali tanpa memuat ulang. Pikirkan berapa kali Anda meninggal dalam permainan hanya untuk dihadapkan dengan waktu buka 60 detik, meskipun aset dan level sudah dimuat. Alasan yang diberikan @Peter juga merupakan alasan Anda tidak melihat permainan yang memungkinkan Anda mulai memainkannya saat Anda masih sangat sering mengunduh aset.
Tom B

2
Tingkat @Viziionary biasanya menggunakan kembali banyak tekstur, dan tingkat yang berbeda menggunakan serangkaian tekstur yang berbeda. Tingkat ruang bawah tanah akan menggunakan banyak tekstur dinding ruang bawah tanah, tingkat gurun akan menggunakan tekstur pasir dan gurun, tingkat gunung akan menggunakan tekstur batu, rumput dan salju, dll. Untuk permainan di mana ini berlaku, bongkar setengah tingkat ketika sama tekstur yang digunakan di seluruh level hanya akan membebaskan sebagian kecil dari memori yang digunakan (atau akan membongkar tekstur yang masih Anda butuhkan).
Peter - Unban Robert Harvey

10

Jika menu Anda memiliki banyak aset, aset tersebut membutuhkan waktu untuk dimuat. Anda juga tidak tahu urutan orang yang akan menavigasi menu Anda. Mereka dapat mengklik opsi -> kembali -> kredit, atau kredit -> kembali -> memulai permainan secara berurutan. Jadi tidak ada strategi streaming yang masuk akal.

Dalam permainan dunia terbuka, Anda tahu pemain tidak akan bergerak lebih cepat daripada kecepatan tertentu, jadi Anda tahu Anda tidak perlu memuat versi detail dari lokasi yang jauh sampai mereka mendekatinya.


Mengapa tidak memprioritaskan memuat menu berat / sering diakses? Dalam RPG apa pun, jika saya membuka menu, 90% waktunya untuk melengkapi sesuatu yang saya temukan, atau menggunakan item. Anda bisa mulai dengan menu mereka. Atau mulai dengan menu yang membutuhkan waktu 5 menit untuk memuat, dan jatuhkan pemuatan jika pengguna keluar dari menu.
DrakaSAN

1
@DrakaSAN Tapi itu adalah sering dioptimalkan. Bahkan Diablo yang asli menunjukkan inventaris pada Anda. Pendekatan "tunggu segalanya" tampaknya memiliki kebangkitan besar dengan konsol modern, yang sangat terbatas dalam memori dibandingkan dengan PC. Dan karena begitu banyak game yang ada di PC dan konsol porting konsol-> PC, beberapa batasan konsol diwariskan dalam proses. Bandingkan Diablo III atau Divinity dengan Skyrim atau Dark Souls - perbedaannya cukup jelas.
Luaan

2
Apakah lambat memuat menu masalah nyata dalam bermain game? Tidak.
Alan B

@AlanB hanya jika satu-satunya cara untuk mengakses bahan habis pakai adalah melalui menu itu. Lihat Destiny di Xbox 360 / PS3 dan berapa lama untuk menggunakan Paket Ammo dibandingkan dengan versi XB1 / PS4.
SGR

1
@SGR Saya akan menggunakan Destiny di PS4 sebagai contoh menu dengan waktu pemuatan yang terlalu lama, saya tidak bisa membayangkan betapa lebih buruknya pada konsol gen terakhir.
IllusiveBrian

5

Faktor besar dalam kelayakan solusi semacam itu adalah kepastian dari apa yang perlu dimuat. Jika pemain memuat level yang sama sekali baru tanpa cara mengantisipasi apa yang akan mereka pilih, solusi yang sepenuhnya mulus tidak mungkin dilakukan. Misalnya, ketika pemain dapat memilih level apa saja dalam permainan untuk dimainkan, atau jika mereka memiliki kebebasan untuk berteleportasi ke area yang sepenuhnya berbeda dalam permainan dunia terbuka.

beberapa Halo game mulai memuat level yang dipilih di latar belakang saat menyiapkan game multi-pemain. Ini mengurangi waktu tunggu ketika pemain siap untuk memulai, dan mungkin yang terdekat bisa mendapatkan solusi seperti itu ketika pemain dapat dengan bebas memilih level yang berbeda dengan aset yang sama sekali berbeda.

Tentu saja, Anda mengatakan "tanpa mengubah lingkungan", tetapi saya hanya ingin membuka Halo contoh , karena itu sesuatu yang ingin saya lihat lebih banyak.

Dalam kampanye yang berkelanjutan, atau kapan pun pengembang memiliki banyak kendali atas lokasi pemain, solusi seperti itu tentu layak, seperti yang Anda katakan. Naughty Dog suka menghapus waktu pemuatan, dengan Jak dan Daxter yang terkenal tidak memiliki waktu pemuatan di PS2, dan game yang belum dipetakan memiliki waktu pemuatan tunggal di awal.

Namun, bagi banyak orang, memuat waktu bukanlah masalah yang perlu diselesaikan . Atau itu adalah masalah yang sangat rendah pada prioritas pengembang, ketika selalu ada lebih banyak yang bisa dilakukan antara sekarang dan tanggal rilis .


3
Jak dan Daxter memang memiliki waktu pemuatan. Mereka hanya tersembunyi di balik pintu, dengan metode yang mirip dengan elevator ME1 dan cara mereka menyembunyikan waktu pemuatan.
Nzall

2
Tetapi waktu pemuatan tersembunyi di balik ruang kurva-S dan tidak terasa seperti waktu pemuatan.
Almo

Jika saya mengerti benar, buka peta dunia seperti Skyrim tidak dimuat ke dalam memori, hanya potongan-potongan yang perlu dilihat pengguna dengan segera, jadi tidak bisakah Anda melakukan pra-muat dalam bagian awal yang kecil dari semua peta (20?)? Dengan optimalisasi data peta yang tepat sepertinya RAM yang sebenarnya digunakan tidak banyak masalah dalam hal jumlah RAM modern, bahkan pada ponsel. Ini adalah kekuatan rendering kartu video yang menghambat sebagian besar game, saya pikir .. Saya sepertinya Anda bisa memuat area awal semua peta halo untuk pengguna, lalu membuat yang dipilih sambil menjatuhkan sisanya dari memori.
Viziionary

1
Peta bukan yang perlu selamanya dimuat - itu adalah tekstur yang sangat besar, file model, program shader, dll yang khusus untuk level atau area.
Tom B

3

Waktu.

Anda perlu waktu untuk menghemat waktu. Atau Anda butuh uang untuk menebus kekurangan waktu. Bagaimanapun, "Tidak ada waktu pemuatan!" adalah fitur yang hanya dapat ditawarkan oleh mereka yang memiliki kemewahan untuk membelinya. Dibutuhkan perencanaan yang sangat hati-hati, dan Anda perlu memahami dengan baik apa yang Anda lakukan dan tidak semua pengembang game memiliki sumber daya untuk menggunakannya.


2

Pada akhirnya, ini sumber daya yang terbatas.

Game-game open-world dan khususnya MMO sangat dirancang untuk dapat diprediksi - Anda selalu tahu data apa yang perlu dimuat jauh sebelumnya. Anda dapat melihat ini dalam arsitektur dunia - kapan pun ada banyak sumber daya yang perlu dimuat, Anda memiliki beberapa cara untuk mencegah pengguna melihat hal-hal yang belum dimuat. Cara paling umum adalah gerbang dan pintu masuk yang menghalangi pandangan Anda ke area berikutnya untuk beberapa detik penting yang diperlukan untuk memuat. Sebagian besar MMO juga menggunakan model dan tekstur yang kurang rinci, yang mempersingkat waktu pemuatan.

Beberapa hal masih tidak dapat diprediksi, bahkan dengan desain yang cermat. Misalnya, mungkin ada spanduk khusus yang dikenakan oleh pemain, yang hanya ditampilkan setelah data yang relevan telah dikirim ke komputer Anda melalui jaringan. Tentu saja, sebagian besar gim mencoba membatasi ini agar lebih murah (mis. Spanduk Diablo III adalah komposisi sederhana, mudah dikirim karena hanya beberapa byte data). Tetapi pada akhirnya, kadang-kadang Anda hanya perlu menunggu data didapat. Dan Anda perlu menunjukkan sesuatu saat pemuatan sedang berlangsung - dalam banyak game, ini dapat menyebabkan jebol saat Anda melihat model abu-abu, detail rendah yang ditampilkan sambil menunggu data dimuat.

Dan dengan semua ini, memuat seperti ini adalah masalah yang diselesaikan (TM), tetapi itu tidak membuatnya mudah. Dibutuhkan banyak sumber daya dan waktu, baik dalam mengoptimalkan sumber daya dan pemanfaatannya untuk memastikan pengalaman bermain yang lancar, dan dalam kode itu sendiri - kode asinkron sulit. Ini juga bisa berarti pengalaman permainan yang berkurang bahkan jika semuanya berjalan dengan baik - itu berarti Anda harus memastikan Anda tidak melewati kemampuan bandwidth penyebut umum terendah Anda, jadi Anda perlu menurunkan kualitas model dan tekstur, atau membuatnya kurang bervariasi, dan geometri duniamu sangat terbatas. Jika tidak, gim ini akan sangat tidak dapat dimainkan - sementara saya ingat orang yang memainkan gim yang membutuhkan waktu 10 menit (atau bahkan lebih lama!) Untuk memuat peta, hanya karena komputer mereka tidak cukup untuk mengerjakan tugas, gim tersebut itu sendiri berjalan dengan baik setelah itu. Jika itu memuat mulus, gim hanya akan membekukan atau menampilkan tekstur dan model jelek sepanjang waktu sambil menunggu data untuk dimuat. Pemuatan yang ditangguhkan bukan merupakan win-win, ini merupakan trade-off karena sebagian besar hal dalam rekayasa :)


2

Salah satu alasan pemuatan dinamis tidak selalu merupakan solusi ideal yang menurut saya belum dipertimbangkan oleh jawaban lain juga merupakan pop-in dan artefak grafis lainnya.

Prediksi tentang apa yang dimuat dan apa yang tidak dimuat sering gagal, dan itu bisa menjadi pengalaman buruk ketika melakukannya. Salah satu contoh terburuk dari ini adalah di Rage by id Software. Setidaknya dalam versi awal, sistem megatexture membuatnya sehingga bahkan sesuatu seperti berputar terlalu cepat membuat sejumlah besar tekstur dan bahkan artefak geometri muncul sebelum perlahan memudar.

Masalah-masalah ini bukan masalah, semuanya sudah dimuat sebelumnya.

Sesuatu yang perlu dipertimbangkan bukan apa yang harus dimuat, tetapi apa yang harus dibongkar. Ketika Anda hanya punya begitu banyak anggaran untuk ruang, ketika Anda memuat hal-hal baru, apa yang lama untuk dihapus? Seberapa yakin Anda bahwa aset tersebut tidak akan digunakan dalam beberapa detik ke depan? Ini adalah masalah yang sulit dipecahkan.

Jika setiap kondisi permainan cukup kecil untuk masuk ke dalam anggaran sistem umum, maka setiap keuntungan jelas, alih-alih memuat, Anda langsung menuju ke tingkat dan hal-hal memudar saat Anda bermain. Namun, seperti yang disarankan oleh jawaban utama, waktu pemuatan untuk gim kecil tidak akan terlalu luas untuk dikhawatirkan.

Saya pikir layak untuk memikirkan alasan mengapa sistem pemuatan dinamis diciptakan pada awalnya, karena Anda tahu bahwa beberapa kondisi gameplay Anda mungkin terlalu besar untuk sistem umum dan permainan dengan ukuran seperti itu tidak mungkin untuk dimuat sebelumnya seluruhnya.


2

Satu alasan umum adalah tidak selalu sama mudahnya untuk menentukan apakah suatu sumber daya akan dibutuhkan dalam waktu dekat.

Karena Anda menggunakan paging medan sebagai contoh, saya akan melanjutkannya.

Sangat masuk akal jika Anda berada di kisi peta tertentu untuk memuat semua kisi peta yang bersebelahan di latar belakang. Anda tahu pengguna dapat, paling-paling, memasukkan salah satunya. Ketika mereka melakukannya, Anda dapat membongkar yang tidak lagi berdampingan dan memuat yang sekarang. Ini yang Anda catat.

Sekarang bayangkan perjalanan cepat. Sama sekali tidak ada cara untuk memprediksi ke mana pengguna dapat memilih untuk pergi. Mereka memiliki (biasanya) hampir seluruh peta untuk dipilih. Pra-memuat semua lokasi perjalanan cepat yang mungkin akan mengambil terlalu banyak memori (Anda mungkin juga memuat seluruh peta ke dalam memori di tempat pertama) dan terlalu banyak waktu (dengan asumsi Anda tidak memiliki seluruh peta yang dimuat sebelumnya). Kapan ini akan terjadi? Kapan mereka membuka dialog perjalanan cepat? Masalahnya hanya akan menjadi beberapa kali lebih buruk!

Inilah sebabnya mengapa sebagian besar game dengan halaman "tanpa beban" masih memiliki layar muat untuk perjalanan cepat. Itu juga mengapa, jika Anda bergerak cukup cepat, kadang-kadang Anda dapat memicu memuat layar di bahkan game tanpa peta tanpa beban (saya ingat pernah melakukan ini di TES Oblivion).

Sekarang bayangkan ini diterapkan pada sumber daya game secara umum, di mana hubungan sering tidak jelas. Anda akhirnya harus memuat semua opsi yang mungkin, atau mulai menebak apa yang akan dilakukan pengguna. Menebak itu mahal (baik dalam pengembangan dan CPU) dan kekacauan yang kompleks untuk program. Contoh spesifik:

  • Simpan file: Anda harus memuat setiap file simpan sebelum pengguna mencapai layar simpan, atau tebak file mana yang mungkin mereka muat (5 terbaru, dll.).
  • UI: Banyak game strategi mengubah UI mereka tergantung pada faksi Anda. Anda harus memuat setiap desain UI yang mungkin sebelum pengguna memulai permainan mereka.
  • Dunia permainan: dalam game yang dibuat secara prosedural, seperti Minecraft atau game RTS seperti Civilization, dunia tidak ada sebelum dilihat, hingga berbagai tingkatan. Pra-memuat ini tidak mungkin karena mereka tidak ada untuk memulai; pra-perhitungan mereka paling baik dapat dilakukan dengan cara yang sama dengan pra-muat, dan tidak berlaku dalam kasus RTS.

Mungkin ada beberapa cara untuk mengatasi beberapa masalah ini, tetapi itu membutuhkan biaya kehidupan nyata . Sebagian besar gamer menerima layar pemuatan yang masuk akal dan, jika ada, cenderung bersedia menghabiskan lebih banyak pada perangkat keras untuk memitigasi mereka. Ini dilihat sebagai masalah perangkat keras , bukan masalah permainan , kecuali terlalu berlebihan atau mengganggu (seperti memuat di tengah level).

Dan perlu diingat, pemuatan latar belakang tidak gratis. Biasanya ada dampak minimal dari penggunaan medan pemuatan latar belakang modern dan beberapa file model, tetapi jika Anda tiba-tiba menebak berbagai sumber daya yang berbeda, terutama jika Anda tidak memiliki metrik yang andal dan harus membongkar banyak sumber daya dan memuat yang berlebihan , Anda dapat menggiling sistem menjadi debu.

Gagasan memuat latar belakang adalah untuk menggunakan siklus mati untuk penggunaan yang lebih baik, tetapi hanya ada begitu banyak siklus mati untuk digunakan. Hal yang sama berlaku untuk memori - pre-loading secara substansial dapat meningkatkan penggunaan memori game. Dengan layar pemuatan, Anda bisa membuang sumber daya yang ada. Tidak ada kemewahan dengan pemuatan latar belakang, artinya bisa menggandakan kebutuhan memori gim pada hitungan itu saja.


1

Ini adalah masalah umum yang berasal dari kenyataan bahwa permainan adalah produk soft-realtime, di mana keterlambatan pengiriman konten tidak berguna seperti pengiriman tepat waktu (berbeda dengan hard-realtime, seperti mobil di komputer, di mana keterlambatan pengiriman bisa tidak lebih baik daripada tidak ada pengiriman sama sekali). Anda harus memutuskan apa yang memuat dan di mana.

Terkadang, pengiriman terlambat sangat buruk. Misalnya, jika Anda diizinkan untuk berlarian di dunia sebelum semua dinding dimuat, Anda bisa berada di belakang tembok yang tidak akan pernah bisa Anda lewati jika permainan memuat dinding sebelum membiarkan Anda bergerak. Tidak selalu mudah untuk mengatakan kapan Anda bisa pergi dengan memuat konten "malas", dan kapan Anda harus menjamin bahwa konten tersebut dimuat sepenuhnya.

Pemuatan dinamis juga jauh lebih rumit. Anda selalu harus mempertimbangkan apa yang harus dilakukan jika sumber daya belum dimuat. Ini menguras sumber daya pembangunan. Jauh lebih mudah untuk dikembangkan ketika Anda bisa mengandalkan sumber daya yang ada.

Latensi juga tidak selalu dapat diterima. Saya pernah mendengar kasus di Starcraft di mana Anda akan "menghangatkan" game Anda dengan memuat peta yang memiliki efek samping dari caching setiap model / gambar yang dimuat secara dinamis. Anda kemudian akan keluar, dan memainkan game secara normal. Untuk para gamer elit, ini meminimalkan kegagapan GUI yang sebenarnya mempengaruhi gameplay mereka. Mencoba membuktikan latensi mana yang dapat diterima pengguna dan mana yang tidak rumit.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.