Oyun endüstrisi oyunların / görüntülemenin görsel bölümleri için otomatik test kullanıyor mu? Nasıl?


10

Bir oyunun bazı bölümlerini otomatik olarak test etmek kolaydır (mantık, matematik, giriş işleme); ancak tamamen görsel olan ve kolayca test edilemeyen çok şey var.

Oyun endüstrisi tüm bunları manuel testlere bırakırsa şaşırırdım; İçinde oyunların en azından bazı görsel yönlerini regresyon testi yapabilmek için çaba harcandığını tahmin edeceğim kadar para var.

Bu doğru mu? Öyleyse, oyunların oluşturulmasının test edilmesinin olası yolları nelerdir? Çıktı yakalama ve görüntüleri karşılaştırma (bu güvenilir olabilir mi?)? Grafik kartındaki verileri düşük seviyede mi engelliyorsunuz? Yolunda tepe bilgilerini (vs) yakalama için grafik kartı? Görünüşe göre pek çok olasılık var; ama bu konuda hiçbir bilgi bulamıyorum :(

Not: Bu soru bir dupe olarak işaretlenmiş bu bir , ama bunun nasıl belirli teknoloji / çerçeveler / araçlar hakkında sormuyorum ama bu uygulama, ve ne fiili oyunları endüstrisi yapmak etrafında daha geniş fikirler (eğer yaparlar).


Muhtemelen sadece iyi test edilmiş bir grafik kütüphanesi kullandıklarını söyleyebilirim (üçüncü taraf veya evde geliştirilmiş). Bir oyun seviyesi tasarlamaya başladıklarında, her nesnenin tam olarak X, Y, Z koordinatlarında olup olmadığını veya perspektifin doğru olup olmadığını kontrol etmezler , ancak nesnelerin orada olduğundan ve duvarlarla engellenmediğinden emin olmak için daha basit şeyler. Grafik kitaplığı şirket içinde geliştirildiyse, testler otomatik ve daha basittir.
SJuan76

@ SJuan76 Sanırım bir motorun üstüne inşa ediyorsanız, soru motorun testi için geçerlidir
Danny Tuppeny

Bu soru, kapsamı kopya olarak işaretlendiğinden biraz daha geniş değil mi? OP, C ++ veya OpenGL'den bahsetmedi. Oyun endüstrisi bundan daha büyük.
toniedzwiedz

Grafik API'lerinin hatasız olduğu göz önüne alındığında, kodun doğru olduğunu resmi olarak kanıtlamak muhtemelen donanımın işini yaptığını test etmekten daha kolaydır. AMD ve NVidia sürücüleri tescilli olduğu için, grafik kartı ile iletişimde hangi protokolün 1) tescilli, 2) değişikliğe tabi olduğunu ve 3) karttan karta değiştiğini hayal ediyorum. Ayrıca, grafik kartına gönderilen veriler doğru olsa bile, grafik kartının donanım hatası olmadığını nasıl anlarsınız?
Doval

2
Dupe hedefi OpenGL grafiklerinin otomatik olarak test edilmesindeki stratejilerle ilgili olduğu için bunu yeniden açmayı denedim. Bu benim uzmanlık alanım değil, ancak oyun endüstrisini çok iyi bilen başkalarının geri bildirimlerine güveniyorum, bu yüzden başka bir şans vermek istiyorum. Benzer soruya referans için buraya bakın: programmers.stackexchange.com/questions/150688/…
maple_shaft

Yanıtlar:


1

Herhangi bir şirket farklı şekillerde yapacak, hatta farklı oyunlar farklı test edilecektir.

  • Belki de grafiklerle ilgili bilgi eksikliği, renderleme işleminin gerçekten "tekrarlayıcı" (daha iyi bir kelime düşünemiyorum, özür dilerim) ve tipik bir karmaşık sahnede yeterli sayıda ilkel kombinasyonlar olacağı için çoğu insan genellikle aksaklıkların çoğunu kolayca görebilir ( daha az kullanılan gölgelendiriciler hariç, ancak bir stres gölgelendirici özel seviye / demo kullanılabilir). İnsanların binlerce yıldır avcı olduğunu unutmayın :) bu yüzden muhtemelen hataları görmek için tasarlandık.
  • Ayrıca, çoğu oyunda mevcut hareket özgürlüğü ve onu daha "gerçekçi" hissettiren tipik bir oyundaki diğer öğelerin randomizasyonu genellikle saf otomatik testlerin uygulanması için bir kabustur: aslında bir insan test cihazı daha hızlı ve daha fazlasını bulacaktır herhangi bir otomatik testten daha fazla hata. Bir test cihazı her oynatıldığında kayıt zamanlamaları, istatistikler ve konumlar / açılar / diğer değişkenler için bir mantık kodlayabilirsiniz ... böylece otomatik olmayan testlerde bile otomatik testler gibi geri bildirim alacaksınız. Genellikle herhangi bir beta test cihazı kaydedilmiş oturumu oynatma yeteneğine sahip olmak yararlıdır (ve genellikle son oyun için de iyi bir özelliktir).
  • Örneğin, oluşturma istatistikleri hakkında şunları alabilirsiniz: gölgelendiricilerin her biri için çekiliş sayısı istatistikleri (aramaları yapacağınız için, bazı sayaçları korumak yeterlidir), yükleme sayıları (aynı, ne zaman kontrol edeceğiniz gpu arabellekleri güncellenir), zamanlamaları (sadece fps değil, aynı zamanda her çağrı arasındaki turlar), vb. Gerekirse (ancak belirli bir hata için avlanma dışında tavsiye edilmediğine inanıyorum) grafik kartının kendisinden istatistikler alabilirsiniz (örneğin, oklüzyon sorgularını kullanarak doldurma oranlarını ve diğerlerini alabilirsiniz).
  • Son olarak, beta test cihazlarını kullanmanın diğer bir nedeni, farklı grafik kartlarının muhtemelen farklı davranışlara sahip olacağıdır ... o_O test makineleri grubuna ihtiyacınız olabilir. Sevgili insan beta testçileri tüm bu karışıklığı yumuşatacak.

Umarım yardımcı olur!

Feragatname: Ben bir betatester değilim, ben bir geliştirici XDDD.


İnsanların kalıpları, aksaklıkları, etrafı görmek için tasarlandığına tamamen katılıyorum ... Gerçekten görsel varlıklarız.
Trilarion
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.