Tüm oyunlar başlangıç ​​sonrası yüklemeden kaçınabilir mi?


23

Tıpkı dev açık dünya oyunlarının dinamik olarak devasa haritalar yüklediği gibi, ayrı haritalar, menüler ve aynı dinamik yükleme yöntemiyle neredeyse herhangi bir arabirim veya 3D ayarı yükleyemedik mi? Ortamı değiştirmeden, arayüzler ve oyun içindeki çeşitli yerlerin hepsi dinamik bir şekilde yüklenebildi, aynı şekilde büyük açık dünya haritalarının içinden geçerken yüklendiği gibi.

Bu neden yapılmıyor? Maç / harita / seviye yüklenirken bir dakika veya daha fazla beklemeniz gereken birçok modern oyun görüyorum. Akranları birbirine bağlamada gecikme olduğunu biliyorum, ancak bu benim deneyimimde birkaç dakikadan fazla sürmüyor. Harita / seviye / arayüz verilerini yükleme ile ilgili yükleme süresini ortadan kaldırmak için kullanılmasını önlemek için bu konseptte hangi sorunlar var?


16
Not birçok 'kesintisiz' açık dünya oyunlarda, oradaki olan yükleme süreleri zaman tahmin edilemez bir konuma oyuncu hareket eder. Biri New York'un bir ucundan diğerine The Division'da bir yükleme ekranını sermeden yürüyebilir - bir yere hızlı seyahat etmek için yükleme gerekir. Her şey bir sonraki ne yükleneceğini bilmekle ilgili.
Felsir

2
@ Felsir Dungeon Siege de aynı şekilde yaptı.
Mason Wheeler

Örnek olarak, Batman Arkham Origins kesik ekranlardan hemen önce ve tamamen yeni alanlara girerken yükleme ekranları kullanıyor. Hikaye odaklı, ilerici doğası kendisini iyi bir şekilde ödünç verir ve kullanıcıya doğal bir mola verir. Bu, özellikle çok yüksek tanımlı varlıkları olan çok geniş alanlar nedeniyle işe yarar. Bu özelliği çok az bir fayda için kodlamak ve test etmek çok zaman alabilir.
Casey Kuball

RAM'inizi 128GB'a yükseltin. 64 gb veya daha fazla RAM sürücü oluşturun, oyununuzu RAM sürücüye yükleyin. Yükleme süreleri o kadar hızlı olacaktır ki, onları farketmezsiniz Bir SSD'ye yükselttim ve çoğu yükleme süresi önemli ölçüde kısaldı. Ekran kartını, özellikle daha fazla video RAM'e yükseltme.
cybernard

Eşzamansız yükleme, CPU ve disk hızına bağlı olarak değişiklik gösterebilir. İhtiyacınız olduğunda işlerin yükleneceğinden her zaman emin olamazsınız.
Alan Wolfe

Yanıtlar:


31

Cevap evet, çoğu durumda en azından bir dereceye kadar yapılabilir.

Yapılmadığı sebepler çoktur:

  • Doğru yapmak için zaman ve para gerekiyor.
  • Testi geçen hataların miktarı daha yüksek olacaktır
  • Yükleme süreleri kullanıcılar tarafından kabul edilir.
  • Dengeleme sunucusu yükü gibi yükleme sürelerinin başka nedenleri olabilir.
  • Raftan alınabilecek genel çözümler "hepsini bir kerede yükle" ile daha uyumludur.

'Dengeleme sunucusu yükü' noktasını takiben, bugün piyasaya çıkan pek çok Online oyun, size özgü olan ve başkalarının erişemediği, merkezi bir 'hub' alanına sahiptir. Çok sık olarak, bu alanlar bir yük alanının veya yavaş bir yürüyüş alanının (örneğin, 'The Division' içindeki BOO) ardına yerleştirilir, böylece daha önce bulunduğunuz durumdan sizi emniyet altına alabilirler ve sizi kendi özel örneğinize yerleştirebilirler. .
SGR

7
Bir de hafıza sorunu var. Mevcut olanı bellekte tutarken mevcut bir seviyeyi yüklemek mümkün olmayabilir (özellikle konsollar veya taşınabilir cihazlar için), bu nedenle bir yükleme ekranı kullanmanız gerekir
Jezzamon

@Jezzamon Skyrim haritasının tamamının hiçbir zaman belirli bir zamanda hiçbir zaman bellekte tutulmadığını düşünüyorum. Belki de ben hatalıyım? Ancak değilse, neden büyük açık dünya oyun haritalarının dinamik yükleme stratejileriyle başka bir durum uygulanamaz?
Viziionary

Neredeyse hiç kimse artık kendi oyun motorunu sıfırdan döndüremiyor. Bir motor (Unreal, Unity, CryEngine) ve bir sürü ara katman satın alıp birbirine yapıştırıyorlar. Temel motorlar genellikle sürekli olarak içeriğe giren içeriğe veya yeniden yükleme yapmadan çalışmaya başlamak üzere ayarlanmamış. Bir oyunda kaç kez öldüğünüzü, varlıklar ve seviyenin zaten yüklü olmasına rağmen, yalnızca 60 saniyelik bir yükleme süresiyle karşı karşıya kalabileceğinizi düşünün. @Peter'in nedenleri, hala varlıkları çok sık indirirken oynamaya başlamanıza izin veren oyunları görmeme nedenlerinizdir.
Tom B,

2
@Geçici Düzeyler normalde dokuları çok yeniden kullanır ve farklı bir seviye farklı dokular kullanır. Bir zindan seviyesi çok sayıda zindan duvar dokusu kullanacak, çöl seviyesi kum ve çöl kayası dokuları kullanacak, bir dağ seviyesi kaya, ot ve kar dokusu vb. Kullanacaktır. tüm seviyedeki dokular kullanıldığında, kullanılan hafızanın sadece küçük bir kısmını boşaltacaktır (ya da hala ihtiyacınız olan dokuları kaldıracaktır).
Peter - Unban Robert Harvey

10

Menülerinizde bir ton varlık varsa, bu varlıkların yüklenmesi zaman alır. Ayrıca, insanların menünüzde hangi sırada dolaşacağına dair hiçbir fikriniz yok. Seçenekler -> geri -> krediler veya krediler -> geri -> oyuna hızlı bir şekilde art arda başlayabilirler. Bu yüzden makul bir akış stratejisi yok.

Açık bir dünya oyununda oyuncunun belirli bir hızdan daha hızlı hareket etmeyeceğini biliyorsunuz, bu nedenle uzak konumların ayrıntılı versiyonlarını kendilerine yaklaşana kadar yüklemeniz gerekmediğini biliyorsunuz.


Neden ağır / sık erişilen menülere yüklenmeyi önceliklendirmiyorsunuz? Herhangi bir RPG'de, menüyü açarsam, bulduğum bir şeyi donatmak veya bir öğeyi kullanmak zamanın% 90'ını oluşturur. Menüden başlayabilirsin. Veya 5 dakika süren menüyle başlayın ve kullanıcı menüden çıkarsa yüklemeyi bırakın.
DrakaSAN

1
@DrakaSAN Ama edilir genellikle optimize. Orijinal Diablo bile size şapkayı düşüren envanteri gösterdi. "Her şeyi bekle" yaklaşımı, modern konsollarla, bellekte bir PC'ye kıyasla çok sınırlı bir şekilde yeniden canlandı. Hem PC'de hem de konsolda bulunan pek çok oyun konsol> PC'ye taşındığından, bazı konsol sınırlamaları bu işlemde kalıtsaldır. Diablo III veya Divinity ile Skyrim veya Dark Souls'ı karşılaştırın - farklılıklar oldukça açık.
Luaan

2
Yavaş yükleme menüleri oyun oynarken gerçek bir sorun mu? No.
Alan B,

@AlanB yalnızca sarf malzemelerine erişmenin tek yolu bu menüden geçtiğinde. Xbox 360 / PS3'teki Destiny'ye ve XB1 / PS4 versiyonlarına kıyasla bir Ammo Paketi kullanmanın ne kadar sürdüğünü görün.
SGR

1
@SGR Kabul edilemez derecede uzun yükleme sürelerine sahip bir menü örneği olarak PS4'te Destiny kullanmak üzereydim, son nesil konsollarda ne kadar kötü olduğunu hayal edemiyorum.
IllusiveBrian

5

Böyle bir çözümün fizibilitesinde büyük bir faktör, neyin yüklenmesi gerektiğini tahmin edilebilirliğidir. Eğer oyuncu ne seçeceğini tahmin etmenin hiçbir yolu olmadan tamamen yeni seviyeler yüklerse, tamamen kusursuz bir çözüm mümkün değildir. Örneğin, oyuncu oyun oynamak için herhangi bir seviyeyi seçebildiğinde veya açık dünya oyunlarında tamamen farklı alanlara ışınlanma özgürlüğüne sahipse.

Bazı Halo oyunları, çok oyunculu oyunlar kurarken seçilen seviyeyi arka planda yüklemeye başlar. Bu, oyuncular başlamaya hazır olduklarında bekleme süresini azaltır ve oyuncu tamamen farklı varlıklar ile farklı seviyeleri serbestçe seçebildiği zaman böyle bir çözüme en yakın olanıdır.

Tabii ki, "çevreyi değiştirmeden" dedin, ama daha çok görmek istediğim bir şey olduğu için Halo örneğini ortaya koymak istedim .

Sürekli bir kampanya içinde veya geliştirici oyuncunun yeri üzerinde çok fazla kontrole sahip olduğunda, böyle bir çözüm sizin dediğiniz gibi kesinlikle uygulanabilir. Naughty Dog yükleme süreleri ile uğraşmayı seviyor, Jak ve Daxter PS2'de yükleme süresine sahip değil, Uncharted oyunları ise başlangıçta tek bir yükleme süresine sahip.

Ancak, birçok kişiye, yükleme süresi sadece çözülmesi gereken bir sorun değildir . Ya da şimdi ve çıkış tarihi arasında her zaman yapılabilecek daha çok şey olduğunda, geliştiricilerin öncelikleri konusunda çok düşük bir problemdir .


3
Jak ve Daxter'un yükleme süreleri var. Sadece ME1 asansörlerine benzer bir yöntemle ve yükleme sürelerini nasıl gizlediklerini kapıların arkasına gizlemişlerdir.
Nzall,

2
Ancak S eğrisi koridorlarının arkasına gizlenmiş yükleme süreleri ve bunlar yükleme süreleri gibi hissetmez .
Almo

Doğru anlarsam, Skyrim gibi açık dünya haritaları belleğe yüklenmemiş, sadece kullanıcının hemen görmesi gereken parçalar, bu nedenle tüm (20?) Haritaların küçük başlangıç ​​bölümlerine önceden yükleme yapamaz mıydınız? Harita verilerinin uygun şekilde optimizasyonuyla, kullanılan gerçek RAM, mobilde bile modern RAM miktarı açısından büyük bir problem teşkil etmiyor gibi görünüyor. Video kartı, sanırım çoğu oyunu sıkıntıya sokan render gücü. Görünüşe göre, tüm bu halo haritalarının başlangıç ​​alanlarını kullanıcı için yükleyebiliyor gibisin, sonra kalanını bellekten çıkarırken seçili olanı oluştur.
Viziionary

1
Haritalar, yüklenmesi sonsuza dek sürmeyecek bir şey değildir - bir seviyeye veya alana özgü muazzam dokular, model dosyaları, gölgelendirici programlar vb.
Tom B,

3

Zaman.

Zaman kazanmak için zamana ihtiyacın var. Ya da zaman yetersizliğini telafi etmek için paraya ihtiyacınız var. Her durumda, "Yükleme süresi yok!" yalnızca karşılayabilecek kadar lüksü olanların sunabileceği bir özelliktir. Çok dikkatli bir planlama yapmak gerekiyor ve ne yaptığınızı çok iyi anlamanız gerekiyor ve tüm oyun geliştiricilerin kullanacak kaynakları yok.


2

Sonuçta, kaynakları sınırlı.

Açık dünya oyunları ve özellikle de MMO'lar öngörülebilirliğe yönelik yoğun bir şekilde hazırlanmıştır - önceden hangi verileri önceden yüklemeniz gerektiğini her zaman bilirsiniz. Bunu dünyaların mimarisinde görebilirsiniz - ne zaman yüklenmesi gereken çok fazla kaynak varsa, kullanıcının henüz yüklenmemiş olan şeyleri görmesini engellemenin bir yolu var. En yaygın yol, yükleme için gereken çok önemli birkaç saniye boyunca görüşünüzü bir sonraki alana çeken kapılar ve girişlerdir. Ayrıca çoğu MMO, yükleme sürelerini önemli ölçüde kısaltan daha az ayrıntılı modeller ve dokular kullanır.

Dikkatli bir tasarıma rağmen, bazı şeyler hala tahmin edilemez. Örneğin, oyuncular tarafından giyilen ve yalnızca ilgili veriler bilgisayarınıza ağ üzerinden gönderildikten sonra gösterilen özel pankartlar olabilir. Elbette, çoğu oyun bunu daha ucuz hale getirmek için bunu sınırlamaya çalışır (örneğin, Diablo III'ün pankartları basit baytlardır, birkaç bayt veri göndermesi kolaydır). Ama nihayetinde, bazen verilerin gelmesi için beklemeniz gerekir. Yükleme devam ederken bir şey göstermeniz gerekir - birçok oyunda, verilerin yüklenmesini beklerken gösterilen gri renkli, düşük detaylı bir model gördüğünüz için bu durum suya batırılabilir.

Tüm bunlarla birlikte, bunun gibi bir yükleme, çözülmüş bir problemdir (TM), fakat bu kolay değildir. Hem kaynakları optimize etmek hem de sorunsuz bir oyun deneyimi sağlamak için kullanımı ve kodun kendisinde - zaman uyumsuz kod zordur. Aynı zamanda, her şey yolunda olsa bile, daha düşük bir oyun deneyimi anlamına gelebilir - bu, en düşük ortak paydaşınızın bant genişliği özelliklerini geçmemeniz gerektiği anlamına gelir, bu nedenle modellerin ve dokuların kalitesini düşürmeniz veya bunları yapmanız gerekir. daha az çeşitlilik gösterir ve dünyalarınızın geometrisi ciddi şekilde sınırlıdır. Bunu yapmazsanız, oyun oldukça oynanamaz olacak - bir bilgisayarın yüklenmesi 10 dakika (hatta daha uzun!) Süren oyunları oynayan insanları hatırlıyorum, çünkü sadece bilgisayarları bu görev için yeterli değildi. bundan sonra kendisi iyi koşar. Bunun yerine kesintisiz bir yükleme olsaydı, oyun verilerin yüklenmesini beklerken, her zaman sadece çirkin dokuları ve modelleri dondurur ya da gösterirdi. Ertelenmiş yükleme bir kazan-kazan değil, bir çok mühendislikte olduğu gibi bir takas olur :)


2

Bunun bir nedeni dinamik yükleme her zaman diğer cevapların gerçekten göz önünde bulundurmadığı bir çözüm değil, aynı zamanda pop-in ve diğer grafik eserleri.

Neyin yükleneceği ve neyin yüklenmeyeceği ile ilgili öngörü sıkça başarısız oluyor ve bu, ne zaman yaptığını daraltan bir deneyim olabilir. Bunun en kötü örneklerinden biri id Software tarafından Rage oldu. En azından ilk versiyonlarda, megatexture sistemleri onu çok hızlı bir şekilde döndürmek gibi bir şeyin bile yavaşça kaybolmadan önce muazzam miktarda doku ve hatta geometri artefaktları ortaya çıkmasını sağladı.

Bu sorunlar sadece bir sorun değil, her şey önceden yüklenmiştir.

Dikkate alınacak bir şey, neyin yükleneceği değil, neyin boşaltılması gerektiğidir. Yalnızca alan için çok fazla bütçeniz olduğunda, yeni şeyler yüklediğinizde, kaldırılacak eskiler nelerdir? Bu varlıkların önümüzdeki birkaç saniye içinde kullanılmayacağından nasıl eminsiniz? Bunları çözmek zor problemlerdir.

Eğer her oyun durumu ortak bir sistem bütçesine sığacak kadar küçükse, o zaman her avantaj bellidir, yükleme yerine, doğrudan bir seviyeye girersiniz ve oyun oynarken işler kaybolur. Ancak, ana cevapların önerdiği gibi, küçük bir oyun için yükleme süresi zaten endişelenmek için çok geniş olmazdı.

Dinamik yükleme sistemlerinin neden orijinal olarak yaratıldığının nedenini düşünmeye değiyor, oyun durumlarınızın birçoğunun ortak bir sistem için çok büyük olabileceğini ve bu boyutta bir oyunun tamamen ön yüklemesinin mümkün olmadığını bildiğinize inanıyorum.


2

Yaygın bir sebep, yakın gelecekte bir kaynağa ihtiyaç olup olmayacağını belirlemek her zaman eşit derecede kolay olmamaktır.

Örnek olarak arazi disk belleği kullandığınız için buna devam edeceğim.

Tüm bitişik harita ızgaralarını arka plana yüklemek için belirli bir harita ızgarasındaysanız, bu tamamen mantıklıdır. Kullanıcı en iyi şekilde bunlardan birini girebilir. Onlar yaptıklarında, artık bitişik olmayanları kaldırabilir ve şu anda olanları yükleyebilirsiniz. Bunu not ettiniz.

Şimdi hızlı seyahat etmeyi hayal edin. Kullanıcının nereye gitmeyi seçebileceğini tahmin etmenin kesinlikle bir yolu yoktur. Neredeyse seçim için neredeyse tüm haritaya sahiptirler. Tüm olası hızlı seyahat konumlarının önceden yüklenmesi çok fazla hafıza gerektirecektir (tüm haritayı ilk başta hafızaya da yükleyebilirsiniz) ve çok fazla zaman alacaktır (tüm haritayı önceden yüklediğinizi varsayarak). Bu ne zaman olacak? Hızlı seyahat diyalogunu ne zaman açıyorlar? Sorun sadece birkaç kez daha kötüleşecekti!

Bu nedenle, "yüksüz" arazi çağrısı olan çoğu oyunun bile hızlı yolculukta yükleme ekranları olmasına rağmen. Bu nedenle, yeterince hızlı hareket ederseniz, bazen yüksüz haritaları olan oyunlarda bile yükleme ekranlarını tetikleyebilirsiniz (bunu TES Oblivion'da yaptığımı hatırlıyorum).

Şimdi bunun genel olarak oyun kaynaklarına uygulandığını, bunun da ilişkilerin genellikle açık olmadığı hayal edin. Olası tüm seçenekleri yüklemek zorunda kalacaksınız veya kullanıcının ne yapacağını tahmin etmeye başlayacaksınız. Tahmin etmek pahalı (hem geliştirme hem de CPU olarak) ve programlamak için karmaşık bir karışıklık. Özel örnekler:

  • Dosyaları kaydet: Kullanıcı kaydetme ekranına ulaşmadan önce her kaydetme dosyasını yüklemeniz veya hangi dosyayı yükleyebileceğini tahmin etmeniz gerekir (en son 5, vb.).
  • Kullanıcı Arayüzü: Birçok strateji oyunu sizin hizipinize bağlı olarak kullanıcı arayüzünü değiştirir. Kullanıcı oyuna başlamadan önce tüm olası UI tasarımlarını yüklemeniz gerekir.
  • Oyun dünyası: Minecraft veya Medeniyet gibi RTS oyunları gibi usule göre üretilmiş oyunlarda, dünya farklı boyutlara bakana kadar var olmaz. Bu ön yükleme , başlamak için var olmadıklarından imkansızdır ; ön hesaplamaları en iyi ön yüklemeye benzer şekilde yapılabilir ve RTS durumunda geçerli değildir.

Bu sorunların bazılarını çözmenin yolları olabilir, ancak bu, çözülmesi gereken gerçek hayat parasına mal olur. Çoğu oyuncu makul yükleme ekranlarını kabul eder ve bir şey varsa, bunları azaltmak için donanım için daha fazla harcamaya istekli olma eğilimindedir. Alışılmadık derecede aşırı veya aksini bozmadıkça (seviyelerin ortasındaki yükleme gibi) bir oyun sorunu değil donanımsal bir sorun olarak görülür .

Ve unutmayın, arka plan yükleme ücretsiz değildir. Arka plan yükleyen arazinin ve bazı model dosyalarının modern kullanımından genellikle en az etki söz konusudur, ancak aniden birçok farklı kaynağı tahmin ediyorsanız, özellikle de güvenilir ölçümleriniz yoksa ve birçok kaynağı boşaltmanız ve gereksiz olanları yüklemeniz gerektiğinde sistemi toz haline getirebilirsiniz.

Arka plan yükleme fikri, ölü döngüleri daha iyi bir kullanım için kullanmaktır, ancak kullanılacak çok fazla ölü döngü vardır. Aynı şey hafıza için de geçerli - ön yükleme bir oyunun hafıza kullanımını önemli ölçüde artırabilir. Bir yükleme ekranı ile mevcut kaynakları atmanız gerekir. Arka plan yükleme ile böyle bir lüks yok, bu sadece oyunun hafıza gereksinimini iki katına çıkarabileceği anlamına geliyor.


1

Bu, oyunların yumuşak bir gerçek zamanlı ürünler olduğu ve içeriğin bir geç teslimatının bir zamanında teslimat kadar yararlı olmadığı gerçeğinden kaynaklanan yaygın bir sorundur (geç teslimatın yapıldığı bilgisayarlardaki arabalarda olduğu gibi, gerçek zamanlı olarak karşıt) hiç teslimat olmamasından daha iyi olamaz). Ne ve nereye yükleneceğine karar vermelisin.

Bazen, geç teslimatlar özellikle kötüdür. Örneğin, tüm duvarlar yüklenmeden önce bir dünyada dolaşmanıza izin verilirse, oyun harekete geçmeden önce duvarları yüklerse, arkasına asla sahip olamayacağınız bir duvarın arkasına geçebilirsiniz. İçeriğin ne zaman "tembel" bir şekilde yüklenebileceğinden ve içeriğin tam olarak yüklendiğini garanti etmeniz gerektiğinde bunu söylemek her zaman kolay değildir.

Dinamik yükleme de çok daha karmaşık. Kaynak henüz yüklenmediyse, ne yapacağınızı sürekli olarak düşünmelisiniz. Bu, kalkınma kaynaklarının tahliyesi. Var olan kaynaklara güvenebileceğiniz zaman, geliştirilmesi çok daha kolaydır.

Gecikmeler de her zaman kabul edilebilir değildir. Starcraft'ta, dinamik olarak yüklenmiş her model / görüntüyü önbelleğe almanın yan etkisi olan bir harita yükleyerek oyununuzu "ısıtmak" istediğiniz durumları duydum. Daha sonra çıkar ve oyunu normal oynarsınız. Seçkin oyuncular için bu, oyunun gerçekte etkilendiği GUI'nin kekemesini en aza indirdi. Hangi gecikmelerin kullanıcılar için kabul edilebilir olacağını ve hangilerinin zor olmayacağını kanıtlamaya çalışmak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.