Yapı (oyun motoru) - Build (game engine)

Yapı
Motor logosu oluşturun.png
Motor ekran görüntüsü oluşturun.png
2D modunda Derleme'yi gösteren ekran görüntüsü
Geliştirici(ler) Ken Silverman
İlk sürüm 30 Eylül 1995 ; 26 yıl önce ( 1995-09-30 )
depo advsys .net /ken /buildsrc /
Varis 2. yapı
Lisans tescilli
İnternet sitesi advsys .net /ken /build .htm

Build , Ken's Labyrinth'in yazarı Ken Silverman tarafından 3D Realms için oluşturulan birinci şahıs nişancı motorudur . Gibi Doom motoru , Yapı motoru üzerindeki dünyayı temsil iki boyutlu kapalı 2D kullanarak ızgara sektörleri denilen şekiller ve sade düz denilen nesnelerin kullandığı sprite nesnelerle Dünya geometriyi doldurmak için.

Temel dünya geometrisi, eklenen yükseklik bileşeniyle iki boyutlu olduğundan, her sektörün farklı bir tavan yüksekliğine ve zemin yüksekliğine sahip olmasına izin verdiğinden, Build motoru genellikle bir 2.5D motoru olarak kabul edilir . Oyunu oynamak, bazı katların daha alçak, bazılarının ise daha yüksek olabileceğini gösteriyor; tavanlarla aynı (birbirlerine göre). Zeminler ve tavanlar, sektörün duvarlarından biri boyunca menteşelenebilir ve bu da bir eğime neden olabilir. Bu bilgilerle, Build motoru, gerçek 3B ortamlar yaratan modern oyun motorlarının aksine , dünyayı üç boyutlu görünecek şekilde işler .

Build motoru, şöhretinin çoğunu 1996 birinci şahıs nişancı Duke Nukem 3D'ye güç vermenin bir sonucu olarak elde etmesine rağmen, diğer birçok oyunda da kullanıldı. "Üç Büyük" Yapı motor oyunları genellikle Duke Nukem 3D , Shadow Warrior ve Blood olarak kabul edilir .

Teknik özellikler

sektörler

Sektörler, yukarıdan bakıldığında iki boyutlu çokgen bir anahattan oluşan, sektörün üst ve alt yüzlerine üç boyutlu bir alan oluşturmak için ayrı yükseklikler verilen bir seviye düzeninin yapı taşlarıdır . Bu nedenle, tüm duvarlar tamamen dikeydir - aksi halde görünen her şey teknik olarak eğimli bir zemin veya tavandır. Kelime oda oyunu dünyada bir oda birçok sektörde oluşabilir olsa yardım anlayışına gevşek bir yedek olarak kullanılabilir ve parallaxed gökyüzü olmanın açık havada yanılsamasını verebilir. Sektörler gerçek zamanlı olarak manipüle edilebilir; şekil, yükseklik ve eğim gibi tüm özellikleri, önceki Doom motorunun aksine, oyunlar tarafından "anında" değiştirilebilir . Bu, oyunların Blood'da görülenler gibi yok edilebilir ortamlara sahip olmasına izin verdi . Bu teknik, benzer dinamik ortamlara sahip olan daha önceki Apogee Software başlıklı Rise of the Triad'daki itme duvarlarının kullanımına benzer.

Motora dayalı oyun geliştiricileri, genellikle "sektör efektörleri" [ sic ] olarak adlandırılan özel ayrılmış "sprites" (oyun nesneleri) kullandılar ; bu, özel etiketler (belirlenmiş anlamları olan sayılar) verildiğinde, seviye tasarımcısının dinamik bir yapı oluşturmasına izin verir. Dünya; sektöre özel özellikler kazandırmak için sektör duvarlarına ve taban alanına benzer etiket bilgileri verilebilir. Örneğin, belirli bir sektör efektörü, üzerinde yürürlerse ve onları başka bir sektöre ışınlarlarsa, oyuncuların zeminden düşmesine izin verebilir; pratikte bu, bir delikten daha büyük bir odaya düşme etkisi yaratmak veya su altı keşfetmek için içine atlanabilecek bir su kütlesi yaratmak için kullanılabilir. Bir sektöre asansör veya asansör gibi davranmasını sağlayan bir etiket verilebilir.

Sektörler, aynı anda görülmemeleri koşuluyla üst üste gelebilir (eğer örtüşen iki sektör aynı anda görülürse, bir aynalar salonu etkisi ortaya çıkar). Bu, tasarımcıların, örneğin, başka bir odanın üst kısmına doğru uzanıyormuş gibi görünen hava kanalları oluşturmalarına olanak sağladı (ancak, düzenleme sürecinin çoğunda kullanılan 2D bakış açısı nedeniyle bunu yapmak tasarımcılar için zor olabilir). Bu, tasarımcıların fiziksel olarak imkansız olan dünyalar yaratmasına izin verdi (örneğin, küçük bir binanın kapısı, binanın kendisinden daha büyük bir oda ağına yol açabilir). Tüm bunlar, motoru kullanan oyunların 3D gibi görünmesini sağlarken, daha sonra Quake motorunu kullanan Quake gibi birinci şahıs nişancı oyunlarına kadar , motor aslında dünya geometrisini gerçek 3D bilgi olarak sakladı. tek bir haritada başka bir alanın üzerine yığılmış bir alan oluşturmak çok mümkün.

vokseller

Ken Silverman'ın Build motorunun sonraki sürümleri, oyunda seçilen sanat karolarının voksellerden yapılmış 3D nesnelerle değiştirilmesine izin verdi . Bu özellik Duke Nukem 3D'de kullanılamayacak kadar geç göründü , ancak daha sonraki Build motor oyunlarının bazılarında görüldü. Blood , silah ve cephane toplama, güçlendirme ve göz şekerleme için vokseller kullanır ("Beşikten Mezara" seviyesindeki mezar taşları, bazı sandalyeler ve "Karanlık Karnaval"daki bir kristal top gibi). Shadow Warrior , duvarlara yerleştirilebilen voksellerle (oyunun tüm anahtarları ve düğmeleri vokseldir) teknolojiyi daha da ileri düzeyde kullanır.

Ken birkaç yıl boyunca tamamen Voxlap olarak bilinen voksellere dayalı modern bir motor üzerinde çalıştı .

Oda üzerinde oda

Build motorunun bir sınırlaması, seviye geometrisinin herhangi bir duvar için sektörler arasında yalnızca bir bağlantıyı temsil edebilmesidir. Bu nedenle, hem üstünde hem de altında boşluk bulunan bir raf kadar basit bir yapı imkansızdır, ancak bazen sprite veya voksel ikame edilebilir. Birkaç katlı binalar teknik olarak mümkündür, ancak böyle bir binanın doğrudan başka bir pencerenin üstünde veya altında bir dış pencere içermesi mümkün değildir. Ayrıca, her kat için merdivenler, asansörler ve diğer erişim yöntemleri ile bazı özgürlüklerin alınması gerekecektir.

Birkaç Build motor oyunu (yani Shadow Warrior , Blood ve Redneck Rampage ), ek bir işleme geçişi aracılığıyla başka bir sektöre bir "görünüm penceresi" göstererek bu sorunu çözdü . Room over-room (ROR) adı verilen bu teknik, oyuncuya kusursuz görünür. Genişletilmiş bir dikey yapı yelpazesine ek olarak, ROR genellikle su kütlelerine yarı saydam yüzeyler vermek için kullanıldı . ROR, asla Build motorunun bir özelliği değildi, daha çok oyun geliştiricileri tarafından yaratılmış bir "hile" idi. Duke Nukem 3D'de bunu aşmak için kullanılan bir hile , opak su altı bölümlerinde olduğu gibi, oyuncuyu Rise of the Triad'daki asansörlere benzer şekilde, onu taklit etmek için yapılmış haritanın başka bir bölgesine hızlı bir şekilde taşımaktı .

2011 yılında, EDuke32'ye gerçek oda üzerinden oda (TROR) adı verilen , birden fazla sektörün dikey olarak istiflenmesine izin veren, böylece her sektörün duvarının kendi bağlantısına sahip olmasını sağlayan ve dikey olarak sınırsız yapılara olanak tanıyan bir özellik eklendi . ROR ve TROR arasındaki fark, TROR sektörlerinin, görünüm portalları kullanılarak ayrı konumlardan çizilmek yerine, harita verileri ve düzenleyicide (kolay oluşturma ve görselleştirmeye izin vererek) fiziksel olarak örtüşmesidir, dolayısıyla gerçek oda odadan fazladır . TROR, bir oyun özelliği veya hilesi değil, Eduke32 kaynak bağlantı noktasının bir özelliğidir.

Motor oyunları oluşturun

Doğrudan Build motorunda oluşturulan oyunlar
Duke Nukem 3D kodunu temel alan oyunlar
Yayınlanmamış Yapı motoru oyunları

Gelişim

Build motoru esasen Ken Silverman için tek kişilik bir projeydi, ancak projenin başlarında rehberlik için John Carmack'a danıştı .

Kaynak sürümü ve daha fazla gelişme

20 Haziran 2000'de (web sitesine göre) Ken Silverman, Build motorunun kaynak kodunu özel bir lisans altında yayınladı .

Erken günler

Matt Saettler en Sürüm 2.0 EDuke , geliştirmek için bir proje Duke Nukem 3D için modifikasyoncuları , 3D Realms orjinali ile kullandığını Duke Nukem 3D önceden oluşturulmuş kütüphaneler bırakarak Yapı kaynağının yayımlanmasından sonra kısa bir süre paketlemek için 3D Realms gönderildi Dük. (Hem Duke Nukem 3D hem de Eduke bu noktada hala kapalı kaynaklıydı.)

2.1 özel betaları ile Saettler, Silverman'ın yapı kaynağını Duke kaynak koduna entegre etmeye çalıştı, ancak proje bazı çok hatalı özel betalardan daha fazlasını üretmeden önce başarısız oldu. Build oyunları için birkaç toplam dönüşüm ekibi doğrudan Silverman'ın Build kodundan çalışmaya karar verdi ve Build editörünün Mapster olarak bilinen geliştirilmiş bir sürümü de geliştirildi.

O zamanlar 3D Realms forumlarındaki birçok kişi, çoklu görev ortamında kullanılamayacak büyük bir bitişik bellek bloğuna ihtiyaç duyduğu için Build'i çok görevli bir işletim sistemine taşımanın imkansız olacağını iddia ediyordu. Tüm modern işletim sistemleri , uygulamaların bitişik fiziksel bellek kullanmadan bitişik mantıksal bellek almasına izin veren sanal bellek kullandığından, bu ifade incelemeye dayanamadı , ancak zamanın geleneksel bilgeliği, Build'in böyle bir işletim sistemine taşınmasının mümkün olmadığıydı.

Duke Nukem 3D kaynak sürümü

1 Nisan 2003'te, yıllarca aksi yönde iddiaların ardından, 3D Realms kaynak kodunu Duke Nukem 3D'ye GPL-2.0 veya üstü lisans altında yayınladı . Kısa bir süre sonra, hem Ryan C. Gordon hem de Jonathon Fowler, Build motoru da dahil olmak üzere oyunun kaynak bağlantı noktalarını oluşturdu ve yayınladı. Duke Nukem 3D'yi Windows'un NT satırında (Windows 2000/XP dahil) ve Linux ve diğer Unix işletim sistemlerinde iyi bir şekilde oynamak mümkündü ve kaynak bağlantı noktalarına olan ilgi arttı.

icculus.org bağlantı noktası

Ryan C. Gordon (icculus), başkalarının da yardımıyla SDL kullanarak motorun ilk portunu yaptı . Bağlantı noktası önce Linux'a , sonra Cygwin'e ve son olarak orijinal DOS derlemesi için kullanılan derleyici olan Watcom C++ derleyicisini kullanan yerel bir Windows derlemesine (Watcom C++ ile derlenmiş olmasına rağmen, Build düz C'dir) vardı. Matt Saettler'ın bunu EDuke'u Windows'a taşımak için kullandığından bahsediliyor , ancak hiçbir şey çıkmadı.

JonoF bağlantı noktası

Jonathon Fowler (JonoF) tarafından Windows'a ve daha sonra Linux ve Mac OS X'e ikinci bir kaynak bağlantı noktası yapıldı. Bu bağlantı noktası, JFduke3D, başlangıçta ağ oyun desteğine sahip değildi, ancak bu daha sonra geliştirme sırasında eklendi.

polimost

Build motorunu gerçek bir 3D oluşturucuya güncelleme görevi Silverman'ın kendisi tarafından üstlenildi. Polymost'un sürüm notlarında şunları yazdı: "3D Realms, Duke Nukem 3D kaynak kodunu yayınladığında, birinin OpenGL veya Direct3D bağlantı noktası yapacağını düşündüm. Birkaç ay geçtikten sonra, birinin üzerinde çalıştığına dair hiçbir iz görmedim. Gerçek donanım hızlandırmalı Build limanı, sadece insanlar bunun mümkün olmadığını söylüyor. Sonunda, bunun gerçekleşmesinin tek yolunun kendim yapmak olduğunu anladım."

Polymost oluşturucu, OpenGL kullanarak 3D donanım hızlandırmalı grafiklere izin verdi . Ayrıca oyunun orijinal dokularını çeşitli biçimlerde yüksek çözünürlüklü değiştirmelerle değiştirmeyi mümkün kılan bir özellik olan "hightile"ı da tanıttı. Polymost, Jonathon Fowler'ın JFBuild, JFduke3D, JFShadowWarrior ve kod tabanlarından türetilen kaynak portlarında kullanılmıştır.

EDuke32

Eduke 2.0 için kaynak daha sonra yayınlandı, ardından Eduke 2.1'in son özel betasının kaynağı (hiçbir zaman yayınlanma sürümüne ulaşmadı). Richard Gobeille (TerminX) yapmak için JFDuke3D ile EDuke 2.0 kaynağını birleşti EDuke32 . icculus koduna dayanan bir başka liman olan Wineduke , o zamandan beri öldü ve EDuke32'yi hala geliştirilmekte olan tek EDuke limanı olarak bıraktı.

EDuke32 ayrıca NAM ve WWII GI oyunlarını da destekler , çünkü EDuke bu oyunların kodunu temel alır.

Polimer

1 Nisan 2009'da, EDuke32 için Ken Silverman'ın Polymost'undan ayırt etmek için Polymer adlı bir OpenGL gölgelendirici modeli 3.0 oluşturucunun geliştirildiği ortaya çıktı . İlk başta bunun bir 1 Nisan şakası olduğu düşünüldü, ancak daha sonra oluşturucu halka açıldı. Polymost'a yıllar içinde eklenen özelliklerin çoğuna ek olarak gerçek zamanlı dinamik renkli aydınlatma ve gölge haritalama, aynasal ve normal haritalama ve diğer gölgelendirici tabanlı özellikler gibi daha modern efektlere izin verir . Polimer tamamen kullanılabilir olmasına rağmen, teknik olarak eksik ve optimize edilmemiş ve halen geliştirme aşamasındadır. EDuke32'nin geliştiricileri, Polymer'in hız için yeniden yazıldığında, üstün bir oluşturucu olduğu ve Polymost ile aynı görünecek şekilde yapılabileceği için Polymost'un tamamen yerini alacağını belirtti.

Diğer oyun bağlantı noktaları

BuildGDX
Geliştirici(ler) İskender "[M210]" Makarov
İlk sürüm 12 Ocak 2018 ; 3 yıl once ( 2018-01-12 )
kararlı sürüm
1.04 / 13 Eylül 2019 ; 2 yıl önce ( 2019-09-13 )
depo gitlab .com /m210 /BuildEngine
platformu Java
Tip oyun motoru
Lisans tescilli
İnternet sitesi m210 .duke4 .net

Gölge Savaşçı kaynak kodu altında, 1 Nisan 2005 tarihinde serbest bırakıldı GPL 2.0 veya sonraki lisans ve JonoF bunun bir kaynak bağlantı noktasını serbest, JFShadowWarrior, 2 Nisan 2005 tarihinde Ancak o erişimi olduğunu itiraf etti Shadow Warrior kaynak kodu, yayınlanmasından yaklaşık bir hafta önce. Bu bağlantı noktası daha sonra SWP bağlantı noktası için ProASM tarafından çatallandı.

Transfüzyon amaçladık proje yeniden oluşturmak Blood içinde Darkplaces motorunu ancak 2006 yılı itibarıyla bu proje tamamlanmadan deathmatch çok oyunculu sahip olsa, tam olmaktan uzaktır; Benzer bir projedir BloodCM Monolith tamamı için tek oyuncu seviyelerini yapılan yeniden Blood yanı sıra EDuke32 üstünde ZBlood hangi portları bazı Kan varlıklarını ve seviyeleri üzerine zDoom .

Witchaven , Witchaven II: Blood Vengeance , William Shatner's TekWar ve Corridor 8: Galactic Wars'ın kaynak kodu da ortaya çıktı. Ancak bunların yasal statüsü belirsizdir. Bir alfa sürümüne tam kaynak kodu Blood da sızdırıldı ve bir başka için bir referans olarak kullanılmıştır ters mühendislik için bağlantı Java kullanılarak LibGDX adı BloodGDX Mayıs 2017'de.

Bu, yazarın Ocak 2016'da piyasaya sürülen önceki TekWar limanından sonra geldi ve ardından Witchaven , Redneck Rampage , Duke Nukem 3D , Powerslave , Legends of the Seven Paladins ve Shadow Warrior , şimdi hepsi toplu olarak BuildGDX olarak adlandırılıyor .

NBlood adlı başka bir Blood limanı, EDuke32'ye ve yaratıcının Redneck Rampage için önceki Rednukem limanına dayalı olarak Ocak 2019'da piyasaya sürüldü . İçin bir EDuke32 portu Powerslave denilen PCExhumed , 21 Kasım 2019 tarihinde serbest bırakıldı.

Kaynak bağlantı noktası Raze , JFduke3D , SWP , NBlood , Rednukem ve PCExhumed dahil olmak üzere çeşitli Build motor bağlantı noktalarını çatallar ve onu GZDoom tabanlı yeni bir temel arka uca bağlar .

Varis

Build'in halefi tasarlamak için birçok denemeden sonra, Silverman 2006'da yine böyle bir fikri denemeye başladı. Şimdi Build 2 olarak adlandırılan bu çalışmayı 2007'den 2009'a kadar bir yaz kampında çocuklara 3D oyun programlama öğretirken kullandı ve çalışmaya devam etti. 2011 yılına kadar projeye olan ilgisini kaybetti. Daha gelişmiş bir aydınlatma sistemi, varlıklar için voksel oluşturma ve gerçek oda üzerinde oda 3D alanları ve en azından kısmen orijinal Build ile geriye dönük uyumluluk korunur. Silverman, taslaklarını 7 Mart 2018'de kamuoyuna yayınladı. Kaynak kodu, 8 Haziran 2019'da tescilli bir lisans altında yayınlandı.

Referanslar

Dış bağlantılar