Frostbite gibi bir motor erken ilk aşamalarda neye benziyor? [kapalı]


15

Battlefield'ı oynarken çok eğleniyorum ve her şeyin nasıl göründüğüne ve seslerine hayran kaldım. Sadece bir oyun motorunun hayata nasıl başladığını merak ediyordum. Kod yazmanın hangi noktasında nihayet bir şey yapar ve tüm dokuları, ışığı ve parçacıkları mükemmel bir şekilde oluşturmaya başlamadan önce ne yaptı?

Çevrimiçi olarak iyi makaleler veya başkalarının gördüğü örnekler var mı?


1
doğrudan bir yanıt değil, ancak bu videonun 5 bölümünün tamamını izlemek size youtube.com/watch?v=EN549g0GNgc#t=9m22
Stowelly

Yanıtlar:


25

Eğer gelen bahsediyorsan çok başlayan ve çok az sayıda büyük oyun motorları artık sıfırdan kodlandığını notu ve not bu bir örnektir ve mutlaka her zaman işliyor. . .

Rendering:

Düz gölgeli bir küp oluşturarak başlayın. Temel ışık efektleri ekleyin. Kamerayı hareket ettirmenin bir yolunu ekleyin. Artık sonsuz bir siyah boşlukta asılı olan sıkıcı bir küpün etrafında uçabilirsiniz. Yaşasın.

Sonra, muhtemelen bir modeli içe aktarmak istiyorsunuz. En azından, sanatçı bir demo modeli hazırlayabilir (bir çaydanlık şaşırtıcı derecede gelenekseldir), ancak size verebilecekleri gerçek bir oyun modeline sahip olabilirler. Şimdilik, düz gölgelendirmeye sadık kaldık, bu yüzden yapılmış gibi görünecek. . . Peki, gerçekçi bir madde yok, ama mat plastik ve porselen arasında bir tür çapraz. Bu , ama iyi bir aydınlatma olmadan. Ve hala tamamen hareketsiz olduğu noktadayız.

Sonraki üç büyük adım herhangi bir sırayla yapılabilir.

  • İlk olarak, arazi isteyeceksiniz. Çoğu modern oyun, görüntüyü "statik geometri" ve "aktörler" e böler; burada statik geometri değişmeyen şeyler içerir (duvarlar, zemin, sokak lâmbası direği) ve aktörler değişmeyen şeyler içerir (oyuncular, araçlar, yıkılabilir sokak direkleri.) temel oluşturma kavramı her ikisi için de aynıdır, statik geometri için aktörler için yapamayacağınız optimizasyonlar vardır. Sen edeceğiz gerek onlar azından temel arazi oluştururken en teçhizat kadar, sana 's zaman bekliyoruz eğer öyleyse, gerçekten gitmem oyun mühendisleri için arazi.

  • İkincisi, tekstüre etmek istersiniz. Bu çok büyük bir konudur ve bir kilometre taşına ulaşma, daha kritik bir şey yapma ve daha sonra tekrar tekrar geri dönme şansınız vardır. İlk geçişiniz modele doku ekleyebilir. İkinci geçişiniz iyileştirilmiş aydınlatma ve yüzey davranışı ekleyebilir. Üçüncü geçişiniz gölgeler ekleyebilir (gölgeler hakkında konuşurken tüm bir yanıtı doldurabilirim). Ne tür bir oyun yaptığınıza bağlı olarak, bu keyfi olarak karmaşık olabilir. Burada bir yerde tüm oyun motorunuzu ertelenmiş görüntülemeye geçirebilirsiniz.

  • Üçüncü olarak, animasyon isteyeceksiniz. Animatörleriniz (1995'te yaşamadığınızı varsayarsak) modelleri için modelden geçen kemikler ve belirli animasyonlar sırasında kemiklerin nasıl hareket ettiği hakkında bilgilerden oluşan modelleri için animasyon donanımları ayarlamış olacaklar. Muhtemelen animasyonları istek üzerine oynatabilme, ardından animasyonları bir araya getirme yeteneği ile başlayacaksınız.

Tüm bunlar yapıldıktan sonra, uyumluluk üzerinde çalışma zamanı. Bir AAA oyunu üzerinde çalışıyorsanız, kodunuzu birçok farklı donanım türünde test etmenin bir yolu var - belki de şirket içi, belki de bir test firmasına sözleşme yaparsınız. Kodunuzun birçoğu belirli grafik kartlarına veya belirli sürücü sürümlerine zarar verir ve mümkün olduğunca çok düzeltme yapabilirsiniz.

Ayrıca optimizasyonu düşünmenin zamanı geldi. Rendering büyük, büyük bir hız sorunudur, bu yüzden şimdi mümkün olduğunca hızlı çalışmak için donanımdan en derin düzeyde nasıl yararlanacağınızı anlamanız gerekir. Bunun "uyumluluk" ile çakışabileceğini düşünüyorsanız, haklısınız! Tamamen öyle! Bulacağınız en iyi optimizasyonlar, bazı kartlarda çalışmaz. Tüm bu faktörleri dengelersiniz.

Bu noktada, sanatçılarınız yeni doku araçları veya yeni animasyon özellikleri talep edecek ve seviye tasarımcılarınız yeni arazi oluşturma teknikleri isteyecekler. "Sonraki üç büyük adım herhangi bir sırayla yapılabilir" e geri dönün ve oyun bitene kadar tekrarlayın.

Oynanış:

Görsel olarak fark edilmeyen parçaları atlayacağım. Öncelikle, o zamana kadar yapabileceğiniz çok sayıda arka uç öğesi olmasına rağmen, arazi oluşturma işlemi gerçekleşene kadar beklemek zorundasınız.

Bunu aldıktan sonra, bazı temel çarpışmalar kuracaksınız. Bu muhtemelen oyun içinde bir yere uçmak ve daha sonra bir küp düşüren bir düğmeye basmak şeklinde olacaktır. Küp düşer ve yere çarpar. Küp sürekli yere düştüğünde, oyuncu hareketini ayarlamaya başlayabilirsiniz, böylece bir oyuncunun yaptığı gibi dünyayı dolaşabilirsiniz.

Temel hareket fiziği çalıştıktan sonra, yine "bunlar aynı anda yapılabilir" segmentlerinden birindesiniz:

  • Savaşın uygulanması gerekiyor. Bir şeylere bir şeyler vurabilecek şeylere ihtiyacınız var ve tüm bu şeylerin uygun şekilde davranması gerekiyor.

  • Fizik uygulanmalıdır. Çarpışmalarınız var, ancak çarpışmalar fiziğin sadece küçük bir bölümü. Birisi bir tanktan bir cip fırlattığında, her şeyin amaçlandığı gibi kabaca davranması gerekir.

  • Oyun mekaniği uygulanmalıdır. Ne zaman kazandığınızı veya kaybettiğinizi nasıl anlarsınız? Şeyler ne sıklıkla ortaya çıkar ve bunu ne kontrol eder? Komünistler bir yumurtlama noktası ele geçirirse, neden Anarşist araçları yumurtlamaya devam ediyor? Bu tür bir şey.

Tüm bunlar, tasarımcılarınızın ne kadar şey yapmanızı istediğinize bağlı olarak, yine de keyfi bir zaman alabilir. Ayrıca böcekleri takip etmek için tonlarca zaman harcayacaksınız ("hey, bakın bu jet avcı uçağının kanadına bir tank sürdüğümde ne olacak"). Bunun iyi olmayan bir dünya veya karakter teçhizat pozisyonunda dolaşan modellerde veya "TANK" kelimesi ile beceriksizce sprey boyayla boyanmış büyük kutular olan tanklarda gerçekleşeceğini unutmayın.

Kullanıcı arayüzü:

Kullanıcı arabirimi ve oyun dünyası oluşturma işlemi tamamen farklı kod yolları kullanma eğiliminde olduğundan, kullanıcı arayüzü ana oluşturma kodu girmeden önce başlayabilir. Bir küple başlamak yerine, bir kutu ile başlayacak, daha sonra kutuya doku ekleyecek ve kutuya metin ekleyeceksiniz.

Bu noktada, hayatınız genel amaçlı widget'lar yazmak için yeterli zaman almaya çalışırken, tasarımcıların ve oyun mekaniği geliştiricilerinin oyunu belirsiz bir gerçekçilik benzeşiminde test edebilecekleri yeterli UI süresi koymaya harcanıyor. Bir noktada UI sanatçılarınız UI için tutarlı bir his bulacak ve daha sonra anlaşılabilir ve kullanılabilir olduklarından emin olmak için bu UI öğelerini gerçek oyuncular üzerinde test ederken, nihai UI öğeleri üzerinde çalışmaya başlayacaksınız.

Gerektiğinde bunlar hakkında daha fazla konuşabilirim, ancak yaparsam bir megaresponse dönüşecek, bu yüzden şimdilik, yapmayacağım :)


4
Harika .. zaman ayırdığınız için ve büyüleyici bir fikir için teşekkürler!
Djave

If the Communists conquer a spawn point, why does it keep spawning Anarchist vehicles?İspanyol İç Savaşı ile ilgili bir oyun üzerinde mi çalışıyorsunuz?
Peter Taylor

1
Kötü değil, ancak yayınınız yalnızca temel oyunlar için geçerlidir, AAA oyunlar için geçerli değildir. Şimdi bir gün teknik savaşın sadece yarısı, araçlar diğeri. Sadece UDK'ya bakın ve içine kaç farklı fonksiyonun yerleştirildiğini göreceksiniz.
Peter Ølsted

1
Ayrıca, dokular ve gölgelendiricilerin basit konsepti, yaygın, speküler, çevre ve emisive (diğerlerinin yanı sıra) kullanımı ile bir gün daha çok daha havalıdır. Bir gün içinde malzemelerin nasıl oluşturulduğuna bakın. udk.com/elements/img/galleries/features-shaders-hero.jpg
Peter

1
Bu harika bir yanıttı.
jcora
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.