“Yükleme” ekranı sırasında neler oluyor?


19

Sadece tüm grafiklerimin dosyadan yüklenen belleğe örneklerini oluşturmam gerekiyor mu? Bununla başa çıkmanın en iyi yolu nedir? Yükleme ekranı sırasında bu grafik örneklerini oluşturan ve daha sonra atıfta bulunulan bir tür varlık yöneticisine ihtiyacım var mı?

Oyunlara önceden yüklenmesi gereken ortak şeyler nelerdir? Ne kadar ön yükleme yapmalıyım?

Bir tür ilerleme çubuğu göstermeye değer mi? Yükleme sürelerini nasıl kısa tutabilirim? Yükleme ekranı neye benzemelidir?

Ekran yüklemeye bazı iyi örnekler nelerdir? Kod örnekleri var mı?

Özellikle, oyunum Andriod (Java / mobil) için, ancak cevaplarınızı genel yapmaktan çekinmeyin.


2
Bunun özellikle istediğiniz şey olmadığını biliyorum, ancak yükleme ekranı sırasında neler olması gerektiğine dair tavsiyem: İlginç Bir Şey! :) Oyuncuya bir hikaye (bir cutscene gibi), bir mini oyun ya da mümkün olduğunca bir menü göstererek eğlenin.
Bart van Heukelom

Yanıtlar:


13

Ön yükleme için tipik şeyler, gerçek zamanlı olarak ihtiyaç duyacağınız bir şeydir. Küçük resimler ve megatextures gibi kavramlar için tasarruf edin (fikrin ihtiyacınız olan parçaları yüklemek ve dünyada hareket ederken tekrar tekrar güncellemek), seviyeniz / bölgeniz / herhangi bir şey için ihtiyacınız olan her şeyi tutmak isteyeceksiniz disk yerine bellekte. IO sloooow ve köşeyi döndüğünüzde dokularınızı yüklemek istemiyorsunuz ve görüntülenmek üzere. Ve her şeyden kastım, dokular, sesler, ağlar, meta veriler ... her şey.

Bir ilerleme çubuğu gösterebiliyorsanız (yani yükleme adımlarını yüzde olarak doğru bir şekilde eşlediyseniz), elbette gösterin. Değilse, en azından her adımdan sonra güncellenen kısa metin mesajı veya yükleme göstergesi gibi bir şey gösterin, böylece en azından bir şeyin olduğunu anlayabilirsiniz .

İhtiyacınız olacağını bildiğiniz bir şey varsa, ancak hemen değil, çok erken gerekiyorsa oyunu arka plana yükleyebilir ve oyunu durdurabilirsiniz (harika değil, ancak nadiren gerçekleştiğinden emin olun). Bu, yükleme süresini azaltmanıza yardımcı olacaktır. Android geliştirme hakkında fazla bir şey bilmiyorum, ya da cihazın oyunla başa çıkması çok fazla olacaksa, ancak genellikle CPU'da hafiftir, bu yüzden orada büyük bir sorun olmamalıdır.


19

"Şebeke Kıvılcımları" olmalı


2
Haha, güzel referans :)
Bryan Denny

Her ne kadar bu bir şaka olsa da, +1, oyuncuları yükleme sırasında meşgul tutma konusunda harika bir örnek. Saçma bir metin eklemekten daha fazla çaba gerektirmeyen basit bir teknik. "Açlıktan ölme", ​​bunu iyi yapan bir oyunun başka bir örneğidir ve aynı zamanda tesadüfen (ya da değil) "Retikülasyon" da içerir: dont-starve-game.wikia.com/wiki/World_Generation_Screen
twiz

3

Bir yükleme ekranı ve anlık seviye geçişleri mi yoksa birden fazla yükleme mi yapacağınıza bağlıdır.
İkincisinin hafızada daha iyi olacağını söyleyebilirim.
Gibi bir şey:
//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

Yüklerken, siyah bir ekrana sahip olmadığınızdan emin olun. Veya bu konuda, statik bir ekran. Birçok kez bir uygulamanın başında bir süredir statik bir görüntü gördüm ve hemen çöktüğünü düşündüm.
Oyuncuyu dahil etmenin iyi bir yolu, oyundaki bir sahnenin güzel çizilmiş bir arka planı veya bazı hikaye referansı olacaktır; statik bir 'Yükleme' olmadığı sürece yüzde olan / olmayan bir yükleme çubuğu; ve sonra belki biraz bilgi.


1
Yine de Pete için, yüzdeli bir hareketli yükleme çubuğunuz varsa, zamanın% 90'ı için% 10'da kalmak ve daha sonra% 100'e atlamak yerine kademeli ve doğru bir şekilde yukarı doğru hareket etmesini sağlayın. Yüzde olmayan bir yükleme animasyonunuz varsa, en azından yüklemeyi yok edecek şekilde yapın - bu şekilde yükleme bir nedenle çöktüğünde durdurabilirsiniz. Kendi iş parçacığında yükleme animasyonu canlandıran çok fazla oyun görüyorum ve yükleme iş parçacığı çöktüğünde animasyon mutlu bir şekilde oynuyor. Bu, yükleme animasyonunun amacını yener.
Kaj

Tamamen orada hemfikir olabilirim. Eğer bu şekilde zıplarsa iyi bir şey olacağını sanmıyorum.
Komünist Ördek

2

Iphone ve Android platformlarında, tüm dokuları ve sesleri yüklemelisiniz. İphone 2G, 3G veya G1 gibi eski telefonlarda doku ve ses yüklemek gerçekten yavaş. Oyunda yapamazsınız.


2

Diğerlerinin söylediği gibi, bir seviyenin tüm verilerini oynamaya başlamadan önce yükleyebiliyorsanız, çok daha iyi bir performansa sahip olursunuz. Oyun sırasında varlıkları yüklemek için çerçeve süresinde yaygın bir aksaklık kaynağıdır.

Yükleme ekranı sırasında yapılması gerekenler statik bir arka plan görüntüsü, çok basit bir düzey, nasıl oynanacağına dair bazı ipuçları ve püf noktaları, hızlı animasyonlar vb.

İşte APB için yükleme ekranı. Oldukça korkutucu. :) http://www.youtube.com/watch?v=p5STix1t_1E&feature=related

Yükleme ekranında bir ilerleme çubuğu göstermek için bazı sahte kodlar:



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, kullanmak zorunda kaldım! = Çünkü <


1
Vay be, APB yük ekranları gerçekten harika görünüyor :)
Bryan Denny

Kodunuzu <pre> <code> etiketlerini kullanmak yerine dört boşlukla girintilerseniz, biçimlendirmeyi bozmadan! = Yerine <= kullanabilirsiniz.
mmyers

bayan, evet, ama bu kıçından büyük bir acı. Neden sadece özel bir kod etiketi yok?
Srekel

1

Yükleme ekranları hemen hemen her şeyi gizlemek için kullanılabilir; varlıkların yüklenmesi, yapması gereken bağlantılar (tcp, vb.), haritaların oyun nesneleriyle doldurulması ve başlatılması.

Bir şeyleri ele alma eğilimim, bir çeşit varlık yöneticisine (veya her varlık türü için bir yöneticiye - sesler, grafikler vb.) Sahip olmak ve onları belleğe kullanılacakları yüklemelerini sağlamaktır. Daha sonra oyunun yöneticilerden referansları almasını sağla.

Bir ilerleme çubuğu göstermek, neyin önceden yükleneceğini belirlemek vb. Projenize, yükleme sürelerine ve zevklerinize bağlı gibi görünüyor. İlerleme çubukları doğruysa güzel ve uzun bir yük (ne kadar beklemeniz gerektiğini bilmek güzel).

Bununla birlikte, android telefonumda kendi özel, zevkle yapılan yükleme ekranına sahip uygulamaları tercih etme eğilimindeyim. Bir çubuğa gerek yoktur, ancak animasyon kullanıcıya çalışan programları söyler. Android'in kullanabileceğiniz varsayılan bir çubuğu olduğunu düşünüyorum, bu da işi iyi yapıyor.

İşte ilginizi çekebilecek bir SO sorusu.


1

Kalite kontrol gereksinimleri olan platformların (örn. X360, PS3, DS, vb.) Hepsinin yükleme ekranınızda (veya aslında birkaç saniyeden fazla statik kalan herhangi bir ekranda bir tür animasyona sahip olmanız gerektiğini) belirtmek gerekir. ).

Bunun nedeni, aksi takdirde kullanıcı, oyunun yüklenmesi uzun sürdüğü zaman oyununuzun çöktüğünü düşünebilmesidir. Bu bir gereklilik olmasa bile, kesinlikle tavsiye ediyorum.

Herhangi bir animasyon şekli iyidir, ancak yükleme işlemindeki herhangi bir büyük adım ilerleme çubuğunun bir süre hareket etmemesine neden olabileceğinden, basit bir ilerleme çubuğu en iyisi olmayabilir, yani ekran sanki olduğu kadar statiktir bar yok. İlerleme göstergesine ek olarak, dönen bir simge gibi sürekli hareket eden bazı görüntüleri göstermek daha iyidir.


1
Tabii ki, yükleyici eşzamansız olarak yükleniyor, yüzdesini daha doğru bir şekilde güncelleyebilmeniz için ilerlemesini yoklayabilmelisiniz. Bu şekilde oyuncu, bunun yüzde şeye takılıp yoksa bilir olduğunu aslında yanlış. Ayrıca, başka yerlerde söylediğim gibi, lütfen hala çalışıp çalışmadığını yükleme iş parçanızla kontrol etmeden animasyonu güncellemeyin, yoksa oyun etkili bir şekilde çöktüğünde mutlu bir şekilde döneceksiniz.
Kaj

1

Conquest'teki yükleme ekranları için, biraz görev açıklaması (hangi oyun türüydü, görev için biraz hikaye) ve komutlar hakkında bazı temel yardımlarla gittim.

Arka planda sesler yükliyordum. Grafiklerin hepsi talep üzerine yüklendi ve bu bizim oyunumuz için oldukça iyi çalışıyor gibiydi, ama sesler bir ayıydı, bu yüzden görev için gerekli olan tüm sesleri önceden yükledim. Yükleme / Başlat düğmesi her şey yüklenene kadar devre dışı bırakılır, ancak herhangi bir animasyon türüm yok (eklemek için iyi bir şey olurdu).

Bu bizim ilk oyunumuz, bu yüzden hala çok şey öğreniyoruz, ama bu bizim için şimdiye kadar iyi çalıştı.

Conquest'in yükleme ekranı

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.