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 :)