Gamedev yaptığımdan bu yana uzun yıllar geçti ama güzel cevabın üstünde, eklemek ve ayrıntı vermek istediğim bazı şeyler var.
Daha önce bahsedilen, çıktının sıkı "FPS-kritik" kısıtlamalarına ve hesaplama / bellek bütçelerine karşı sadece görsel ve işitsel olduğudur. Sorular daha iyi olduğunda, doğruluk fikirleri bulanıklaşıyor, "İyi görünüyor mu? Kesintisiz olarak sorunsuz çalışıyor mu? Harika görünüyor mu?" tasarımcı / geliştirici işbirlikleri her hızlı yinelemede biraz farklı görünmeye ve ses çıkarmaya neden olurken, geliştiriciler ince ayar yapıyor ve ayarlıyor ve yaklaşıyor.
Bir diğeri, testçilerin harika olabileceğidir! Onlar beri, başka bir etki Test kullanıcıları daha adanmış bir grup asla buldum istiyorumyazılımı test etmek için. Onlar eğleniyorlar. Oyun bağımlısı ve oyunun her köşesini keşfederken bilgisayarın yanında uyuyorlar. İnsanların yazılımın her köşesini pratik olarak bağımlı hale getirirken her köşesini iyice test ettikleri zaman, en belirsiz hataları bile bulmak oldukça kolay hale geliyor. Mevcut endüstrimde, test cihazlarının çalışması biraz daha zordur, çünkü birçoğu geçim kaynaklarını yazılıma bağlayan profesyoneller olduğundan, işlerini yapmak için birkaç özelliğe güvenirler ve yorucu olmakla ilgilenmezler. her kuytu ve çatlak her zaman. Doğal olarak, insan test kullanıcılarına çok fazla güvenemediğimizde, daha otomatik testlere ihtiyacımız var.
Yine bir diğeri, bir oyunun kod tabanının tipik olarak yıllar ve yıllar boyunca korunmadığı ve değiştirilmediği ve genişletilmediğidir. İlk olarak 6502 montajında geliştiren Super Mario'nun geliştiricileri, oyunun gönderilmesinden çok sonra orijinal koda benzeyen herhangi bir şeyi korumak zorunda kalmışlar gibi değil. Doom 3 muhtemelen Doom 1'den sıfır kod satırı (veya yakın) kullanıyor. Devam eden bir franchise varsa, yeni oyunlar "yükseltmelerden" daha çok "devam ediyor". Çoğu oyun sadece bazı yamaları, DLC'leri gönderiyor ve serbest bırakıyor ve kod tamamlanıyor. Bu, onlarca yıldır taşınan ve sürdürülen Amiga günlerine dayanan kodları korumak için çalıştığım VFX endüstrimin büyük bir tezatıydı. Oyunlar genellikle don '
Oyun kod tabanlarının bu kısa ömürlü doğasının nedenlerinden biri, donanıma bu kadar bağlı olmalarıdır. En ileri nitelikleri ve FPS açısından kritik gereksinimleri ile birleştirildiklerinde, genellikle donanım ayrıntılarını soyutlayacak, hatta yakın bile olmayacak şekilde geliştirilemezler. Genellikle hedeflenen donanım üretimi için çok özel olarak yazılırlar ve PS3'ün yerini bir PS4 ile değiştirmesi, daha sonra artık eskimiş ve yerine bir PS5 vb. Donanım yetenekleri, oyunun tasarımında ve geliştirilmesinde çok önemli bir rol oynar, genellikle PSX için PS4 için yazılmış aynı kodun çoğunu korumaya değmez, örn. Nesiller boyu süren çoğu oyun serisi hala yeni nesil motorlarını yazıyor büyük ölçüde en yeni donanım için sıfırdan başlayarak.
Kısa ömürlü bir kod tabanı ile sınırlı bakım süresi gelir (yani, kodun değiştirilmesi gereken sınırlı bir süre). Her yükseltme ile motorun kapsamı gittikçe büyüyor ve oyunların görev açısından kritik bir yere yakın olmadığı gerçeğiyle birleştiğinde, kodun değiştirilmesi için sınırlı bir zamanla, kesinlikle böyle bir şey yok en kapsamlı birim ve entegrasyon testini uygulamak için kritik ihtiyaç. Gelecekte değişiklik yapılmayacaksa gelecekteki değişikliklerin bütünlüğünün sağlanmasında bunu yapmanın bir yararı yoktur ve eski kod tabanlarının birim testi ve yeniden düzenleme boyutu, ilk etapta "eski" değilse doğal olarak önemsizdir.
Her zaman alakalı olmayan bir diğer küçük oyun, herhangi bir masaüstü bağlantı noktası olmadan çok dar bir donanım aralığını hedefleyebileceğidir. Bu durumlarda, yazılımı radikal olarak farklı donanım ve sürücülerle çalıştıran kullanıcılar olan bu bağlamlarda öngörülemeyen büyük bir hata kaynağı ortadan kaldırılmıştır.
Bununla birlikte, en yüksek / en kaba düzeyde entegrasyon testi daha çabuk faydalı olma eğilimindedir. Örneğin, birçok oyun, "tekrarlar" için oyun durumunun zaman içinde nasıl değiştiğini kaydetmek için bir yol kullanabilir. Bu tür tekrar özellikleri, oyunun deterministik olmasını ve daha önce başka biri tarafından kaydedilmiş bir oyun oturumunu tekrar oynatmak için kendi başına bir test aracı olarak kullanılabilir.
Ayrıca, oyunları için bot yazmak gibi şeyler yapan ve botların oyunlarını maksimum hızda oynatıp bu simülasyonu çalıştıran, başlangıçta bir veya iki gün sonra belirsiz bir çökme ile karşılaşan, düzelttikten sonra küçük stüdyolarda çalışan gamedevlerle karşılaştım. simülasyonu tekrar çalıştırdı ve haftalarca çalıştırdıktan sonra bile şov durduran çökmeler kalmayana kadar tekrarladı. Dolayısıyla, gamedev'lerden yazılımlarını test etmeye kadar gördüğüm ilginç türden pragmatik yaklaşımlar var, ancak çoğu zaman en kaba entegrasyon testi seviyesine benzeyen ve oyuncuların oyunla gerçekte nasıl etkileşime girdiğine çok benzeyen şeyler.
Son olarak, bu büyük AAA oyun motorları tamamen farklı bir canavara benzemeye başlıyor: daha uzun ömürlü, donanımı biraz daha iyi bir şekilde soyutlama, daha büyük kod tabanları ve daha uzun bakım aralıkları ile seviye editörleri tam gelişmiş geliştirme ortamlarına benzemeye başlıyor. Bu büyük motorların muhtemelen daha kapsamlı bir test prosedürü gerektireceğini hayal ediyorum, özellikle kodlarının korunma süresi önemli ölçüde genişliyorsa. Hala birçok oyun stüdyosu büyük AAA oyun motorları yazmıyor: ya lisans alıyorlar ya da kapsamı oldukça küçük olan ve yıllarca korunmayacak küçük bir tescilli motor geliştiriyorlar.