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

İnşa etmek
Motor logo.png oluşturun
2D modunda derlemeyi gösteren ekran görüntüsü
2D modunda derlemeyi gösteren ekran görüntüsü
Geliştirici (ler)Ken Silverman
İlk sürüm30 Eylül 1995; 25 yıl önce (1995-09-30)
Depoadvsys.ağ/ ken/ buildsrc/
HalefYapı 2
LisansÖzel lisans (ticari olmayan kullanım için ücretsiz),[1] GNU Genel Kamu Lisansı v.2 (Duke Nukem 3D/Gölge savaşçısı kaynak kodu)[2][3]
İnternet sitesiadvsys.ağ/ ken/inşa etmek.htm

İnşa etmek bir birinci şahıs nişancı motoru tarafından yaratıldı Ken Silverman, yazar Ken'in Labirenti, için 3B Realms. Gibi Doom motor Build motoru, dünyasını bir iki boyutlu sektör adı verilen kapalı 2B şekilleri kullanan ızgara ve Sprite dünya geometrisini nesnelerle doldurmak için.

Yapı motoru, genellikle bir 2.5D temel dünya geometrisi iki boyutlu olduğundan, ek bir yükseklik bileşeni ile her sektörün farklı bir tavan yüksekliği ve zemin yüksekliğine sahip olmasını sağlar. Oyunu oynamak, bazı katların daha alçak ve bazılarının daha yüksek olabileceğini gösterir; tavanlarla aynı (birbirleriyle ilişkili olarak). Zeminler ve tavanlar, sektörün duvarlarından biri boyunca menteşelenerek bir eğime neden olabilir. Bu bilgilerle Build motoru, dünyayı görünüşü 3 boyutlu, gerçek 3B ortamlar oluşturan modern oyun motorlarının aksine.

Build motoru şöhretinin çoğunu, 1996 birinci şahıs Nişancı Duke Nukem 3D, diğer birçok oyun için de kullanıldı. "Dört Büyük" Yapım motoru oyunları genellikle Duke Nukem 3D, Gölge savaşçısı, Redneck Rampage, ve Kan.[4] [5]

Teknik özellikler

Sektörler

Sektörler, bir katın iki boyutlu bir düzeninden oluşan yapı taşlarıdır. çokgen yukarıdan bakıldığında üst ve alt kısımda anahat yüzler sektörün ayrı ayrı Rakımlar üç boyutlu bir alan yaratmak için. Bu nedenle, tüm duvarlar tamamen dikeydir - başka türlü görünen her şey teknik olarak eğimli bir zemin veya tavandır. Kelime oda Oyun dünyasındaki bir oda birçok sektörden oluşabilse de, anlamaya yardımcı olmak için gevşek bir alternatif olarak kullanılabilir ve paralakslı gökyüzü dışarıda olma yanılsamasını verebilir. Sektörler gerçek zamanlı olarak manipüle edilebilir; herşey şekil, yükseklik ve eğim gibi özelliklerinin daha önce olduğu gibi oyunlar tarafından "anında" değiştirilebilir. Doom motor. Bu, oyunlarda görülenler gibi yıkılabilir ortamlara sahip olmasına izin verdi. Kan. Bu teknik, daha önceki itme duvarlarının kullanımına benzer. Apogee Yazılımı Başlık Triad'ın Yükselişi benzer dinamik ortamlara sahip.

Motoru temel alan oyun geliştiricileri, genellikle "sektör efektörleri" olarak adlandırılan özel ayrılmış "sprite" (oyun nesneleri) kullandılar [sic ], özel etiketler verildiğinde (tanımlanmış anlamlara sahip sayılar), seviye tasarımcısının dinamik bir dünya inşa etmesine izin verir; benzer etiket bilgileri, bir sektöre özel karakteristikler vermek için sektör duvarlarına ve taban alanına verilebilir. Örneğin, belirli bir sektör efektörü, oyuncuların üstünden geçip başka bir sektöre ışınlanmaları durumunda zeminden düşmelerine izin verebilir; Pratikte bu, bir delikten daha büyük bir odaya düşme veya su altını keşfetmek için içine atlanabilecek bir su kütlesi oluşturma etkisi 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ülememeleri koşuluyla birbirleriyle örtüşebilir (aynı anda iki üst üste binen sektör görüldüğünde, bozuk bir görüntü oluşur). Bu, tasarımcıların, örneğin, başka bir odanın tepesine uzanıyor gibi görünen hava kanalları oluşturmalarına izin verdi (ancak, bunu yapmak, düzenleme işleminin çoğunda kullanılan 2B bakış açısı nedeniyle 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 3 boyutlu görünmesine neden olsa da, daha sonraki birinci şahıs nişancı oyunlarına kadar olmayacaktı. Deprem, kullanılan Deprem motor, motorun aslında dünya geometrisini gerçek 3B bilgisi olarak sakladığı ve tek bir haritada başka bir alanın üzerine yığılmış bir alanın oluşturulmasını çok uygun hale getirdiği.

Vokseller

Ken Silverman'ın Build motorunun sonraki sürümleri, oyunda seçilen sanat karolarının, şunlardan yapılmış 3B nesnelerle değiştirilmesine izin verdi. vokseller. Bu özellik kullanım için çok geç göründü Duke Nukem 3D, ancak daha sonraki Build motor oyunlarının bazılarında görüldü. Kan silah ve cephane alımları, güçlendiriciler ve göze hitap eden vokseller ("Beşikten Mezara" seviyesindeki mezar taşları gibi, bazı sandalyeler ve Kristal top "Karanlık Karnaval"). Gölge savaşçısı duvarlara yerleştirilebilen voksellerle teknolojiyi daha da gelişmiş bir şekilde kullanır (oyunun tüm anahtarları ve düğmeleri vokseldir).

Ken, birkaç yıl boyunca tamamen voksellere dayanan modern bir motor üzerinde çalıştı. Voxlap.

Oda oda üzerinde

Yapı motorunun bir sınırlaması, seviye geometrisinin herhangi bir duvar için sektörler arasındaki 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 başka bir pencerenin hemen üstünde veya altında bir dış pencere içermesi mümkün değildir. Ek olarak, her kat için merdivenler, asansörler ve diğer erişim yöntemlerinde bazı özgürlüklerin alınması gerekecektir.

Birkaç Yapı motoru oyunu (yani Gölge savaşçısı, Kan, ve Redneck Rampage), ek bir işleme geçişi aracılığıyla başka bir sektöre bir "görüntü alanı" görüntüleyerek bu sorunu çözdü. Bu teknik denilen oda üzeri oda (ROR), oynatıcıya sorunsuz görünür. Genişletilmiş bir dikey yapı aralığına ek olarak, ROR genellikle su kütleleri vermek için kullanılmıştır. yarı saydam yüzeyler. ROR hiçbir zaman Build motorunun bir özelliği değil, oyun geliştiricileri tarafından yaratılan bir "numara" idi. Kullanılan bir numara Duke Nukem 3D opak su altı bölümlerinde olduğu gibi bunun üstesinden gelmek, oyuncuyu haritanın onu taklit etmek için yapılmış başka bir bölgesine hızlı bir şekilde taşımaktı. Triad'ın Yükselişi.

2011 yılında EDuke32'ye adı verilen bir özellik eklendi odanın üzerinde gerçek oda (TROR), birden fazla sektörün dikey olarak istiflenmesine izin vererek, her sektörün duvarının kendi bağlantısına sahip olmasını sağlayarak dikey olarak kısıtlamasız yapılar sağlar. ROR ve TROR arasındaki fark, TROR sektörlerinin, görünüm portalları kullanılarak ayrı konumlardan çizilmek yerine harita verisi ve düzenleyicide fiziksel olarak örtüşmesidir (kolay oluşturma ve görselleştirmeye izin verir). doğru oda üzerinde oda. TROR, bir oyun özelliği veya hile değil, EDuke32 kaynak bağlantı noktasının bir özelliğidir.

Motor oyunları geliştirin

Doğrudan Yapı motorunda oluşturulan oyunlar
Temel alınan oyunlar Duke Nukem 3D kodu
Yayınlanmamış Yapı motoru oyunları

Kaynak yayınlama ve diğer gelişmeler

20 Haziran 2000'de (web sitesine göre) Ken Silverman Build motorunu piyasaya sürdü kaynak kodu.[9]

Erken günler

Matt Saettler'in 2.0 Sürümü EDukegeliştirilecek bir proje Duke Nukem 3D için modcular, Build kaynağının yayınlanmasından kısa bir süre sonra paketleme için 3D Realms'e gönderildi ve Duke Nukem 3D'nin orijinal Duke ile 3D Realms'in kullandığı önceden oluşturulmuş kütüphaneleri bıraktı. (Her ikisi de Duke Nukem 3D ve EDuke bu noktada hala kapalı kaynaktı.)

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

O zamanlar, 3D Realms forumlarındaki birçok kişi tarafından, çok görevli bir ortamda bulunmayan büyük bir bitişik bellek bloğuna ihtiyaç duyduğundan, Build'i çok görevli bir işletim sistemine taşımanın imkansız olacağı iddia edilmişti. Bu ifade, tüm modern işletim sistemlerinin kullandığı için incelemeye dayanmadı. sanal bellek Bu, uygulamaların bitişik fiziksel bellek kullanmadan bitişik mantıksal belleğe sahip olmasına izin verir, ancak zamanın geleneksel kanı, Build'i böyle bir işletim sistemine taşımanın olanaksız olduğuydu.

Duke Nukem 3D kaynak sürümü

1 Nisan 2003'te, birkaç yıl aksini iddia ettikten sonra, 3D Realms kaynak kodunu yayınladı. Duke Nukem 3D. Çok geçmeden, ikisi de Ryan C. Gordon ve Jonathon Fowler, Build motoru da dahil olmak üzere oyunun kaynak bağlantı noktalarını oluşturup yayınladı. Oynamak mümkündü Duke Nukem 3D Windows'un NT satırında (Windows 2000 / XP dahil) ve Linux ve diğeri Unix işletim sistemleri ve kaynak bağlantı noktalarına olan ilgi hızla arttı.

icculus.org bağlantı noktası

Ryan C. Gordon (icculus), başkalarının yardımıyla motorun ilk portunu kullanarak yaptı. SDL. Liman ilk oldu Linux, sonra Cygwin ve son olarak yerel bir Windows derlemesine Watcom C ++ Orijinal DOS derlemesi için kullanılan derleyici olan derleyici (Watcom C ++ ile derlenmiş olmasına rağmen, Derleme düz C'dir) Matt Saettler'ın bunu bağlantı noktası için kullanmasından söz edildi. EDuke Windows'a, ama hiçbir şey gelmedi.

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ştirmede eklendi.

Polimost

Build motorunu gerçek bir 3B oluşturucuya güncelleme görevi Silverman tarafından üstlenildi. İçinde sürüm notları JFDuke3D için şunları yazdı:

"3D Realms, Duke Nukem 3D kaynak kodunu yayınladığında, birisinin bir OpenGL veya Direct3D bağlantı noktası yapacağını düşündüm. Birkaç ay geçtikten sonra, gerçek bir donanım hızlandırmalı Build bağlantı noktasında çalışan birinin izini görmedim, sadece insanlar bu mümkün değildi. Sonunda bunun gerçekleşmesinin tek yolunun bunu kendim yapmam olduğunu fark ettim. "

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

EDuke32

EDuke 2.0 kaynağı daha sonra yayınlandı ve ardından son özel beta kaynağı yayınlandı. EDuke 2.1 (hiçbir zaman yayın sürümüne geçmedi). Richard Gobeille (TerminX), EDuke 2.0 kaynağını JFDuke3D ile birleştirdi EDuke32. Başka bir liman, Winedukeicculus kodunu temel alan, o zamandan beri öldü ve EDuke32'yi hala geliştirilmekte olan tek EDuke portu bıraktı.

EDuke32 ayrıca oyunları destekler NAM ve İkinci Dünya Savaşı GI, çünkü EDuke bu oyunların koduna dayanıyordu.

Polimer

1 Nisan 2009'da, bir OpenGL gölgelendirici modeli 3.0 oluşturucunun EDuke32 için geliştirildiği ortaya çıktı. Polimer Ken Silverman'dan ayırt etmek için Polimost. İlk başta bunun bir 1 Nisan şakası olduğu düşünülüyordu, ancak daha sonra oluşturucu halka açıldı. Gerçek zamanlı dinamik renkli aydınlatma ve gölge haritalama, speküler ve Normal haritalama ve Polymost'a yıllar içinde eklenen özelliklerin çoğuna ek olarak diğer gölgelendirici tabanlı özellikler. Polimer tamamen kullanılabilir olmasına rağmen, teknik olarak eksiktir ve optimize edilmemiştir ve hala geliştirme aşamasındadır. EDuke32'nin geliştiricileri, Polymost'un hız için yeniden yazıldıktan sonra, Polymost'un tamamen yerini alacağını, çünkü üstün bir renderer olduğunu ve Polymost ile aynı görünmesi sağlanabileceğini belirtti.

Diğer oyun bağlantı noktaları

BuildGDX
Geliştirici (ler)Alexander "[M210]" Makarov
İlk sürüm12 Ocak 2018; 2 yıl önce (2018-01-12)
Kararlı sürüm
1.04 / 13 Eylül 2019; 14 ay önce (2019-09-13)
Depogitlab.com/ m210/ BuildEngine
PlatformJava
TürOyun motoru
LisansÖzel lisans (ticari olmayan kullanım için ücretsiz)
İnternet sitesim210.duke4.ağ

Gölge savaşçısı kaynak kodu 1 Nisan 2005'te yayınlandı ve JonoF, bunun bir kaynak bağlantı noktası olan JFShadowWarrior'u 2 Nisan 2005'te yayınladı. Ancak, Gölge savaşçısı kaynak kodu yayınlanmadan yaklaşık bir hafta önce.[10] Bu bağlantı noktası daha sonra ProASM tarafından SWP bağlantı noktası için çatallandı.[11]

Transfüzyon yeniden yaratmayı amaçlayan proje Kan DarkPlaces motorunda, ancak 2006 itibariyle bu proje tamamlanmış olmaktan uzak, ancak tam bir deathmatch çok oyunculu oyununa sahip; benzer bir proje BloodCM Monolith'in tüm tek oyunculu seviyelerini yeniden oluşturan Kan EDuke32'nin yanı sıra ZKan bazı bağlantı noktaları Kan varlıklar ve seviyeler ZDoom.

Witchaven, Witchaven II: Blood Vengeance, William Shatner'ın TekWar'ı ve Corridor 8: Galactic Wars'un kaynak kodu da gün yüzüne çıktı. Ancak bunların hukuki statüsü belirsizdir. Alfa sürümünün tam kaynak kodu Kan ayrıca sızdırıldı ve aksi takdirde referans olarak kullanıldı ters mühendislik limana Java kullanma LibGDX aranan BloodGDX Mayıs 2017'de.[12]

Bunu yazarın önceki bağlantı noktasından takip etti. TekWar Ocak 2016'da piyasaya sürüldü ve şu tarihler için limanlar tarafından takip edildi: Cadı, Redneck Rampage, Duke Nukem 3D, Powerslave, Yedi Paladin Efsaneleri ve Gölge savaşçısışimdi hepsi toplu olarak aradı BuildGDX.

Başka bir liman Kan, aranan NKan, Ocak 2019'da EDuke32 ve içerik oluşturucunun önceki sürümlerine göre yayınlandı Rednukem bağlantı noktası Redneck Rampage.[13] İçin bir EDuke32 bağlantı noktası PowerSlave, aranan PCExhumed, 21 Kasım 2019'da yayınlandı.

Kaynak bağlantı noktası Parçala çatallar EDuke32 ve ilişkili bağlantı noktaları, NKan, Rednukem, ve PCExhumedve bunu temel alan yeni bir arka uca bağlar GZDoom.[14]

Halef

Build'in halefi tasarlamak için yapılan birçok denemeden sonra, Silverman 2006'da böyle bir fikri denemeye yeniden başladı. Bu çalışmayı kullandı - şimdi adı Yapı 2 - 2007'den 2009'a kadar bir yaz kampında çocuklara 3D oyun programlamayı öğretirken ve projeye ilgisini kaybettiği 2011 yılına kadar çalışmalar devam etti. Daha gelişmiş bir aydınlatma sistemi, varlıklar için voksel işleme ve oda üzerinden gerçek 3B alanlar ve en azından kısmen orijinal Yapı ile geriye dönük uyumluluk korunmuştur. Silverman taslaklarını 7 Mart 2018'de kamuoyuna açıkladı.[15][16] Kaynak kodu 8 Haziran 2019'da yayınlandı.[17]

Notlar

  1. ^ Kaynak kodunun BUILDLIC.TXT'sinden
  2. ^ Duke Nukem 3D - GitHub
  3. ^ Gölge savaşçısı - GitHub
  4. ^ Wilson, Hamish (23 Haziran 2015). "GOG'da Üç Büyük Motor Yapma Oyunu". GamingOnLinux. Alındı 23 Haziran 2015.
  5. ^ Zak, Robert (13 Nisan 2016). "Build Engine'in Güzelliği". RockPaperShotgun.
  6. ^ "TWIM". Kore Oyunlarının Tarihi. Hardcore Oyun 101. Alındı 2017-07-01.
  7. ^ Euijeok: Im Kkeokjeong DOS için (1994) -de MobyGames
  8. ^ a b c "3D Realms". Gelecek nesil. 10 numara. Medyayı hayal edin. Ekim 1995. s. 99–102.
  9. ^ "Ken Silverman'ın Derleme Motoru Kaynak Kodu Sayfası". Alındı 7 Temmuz 2008.
  10. ^ Fowler, Jonathon (3 Nisan 2005). "JFShadowWarrior". JonoF's. s. 1. Alındı 3 Ağustos 2011. … Ben [JonoF] bir haftalık avantajlı bir başlangıç ​​yaptım…
  11. ^ ProASM'nin SWP bağlantı noktası
  12. ^ Alex Walker. "Orijinal Kanı Şimdi Java Kullanarak Oynayabilirsiniz". Kotaku. Alındı 2020-08-15.
  13. ^ Liam Dawe. "NBlood, EDuke32 kullanan klasik FPS 'Blood' açık kaynaklı bir bağlantı noktası". GamingOnLinux. Alındı 2020-08-15.
  14. ^ Liam Dawe. "Raze - GZDoom teknolojisi tarafından desteklenen yeni bir açık kaynak çatalı EDuke32". GamingOnLinux. Alındı 2020-08-15.
  15. ^ Tarason, Domonic (9 Mart 2018). ""Ken Silverman'ın uzun süredir kayıp olan BUILD2 motoru piyasaya sürüldü"". Taş, Kağıt, Av Tüfeği. s. 1. Alındı 23 Haziran 2018.
  16. ^ Wawro, Alex (9 Mart 2018). ""Artık Build motor halefi ile etrafta dolaşabilirsiniz: Build"". Gamasutra. s. 1. Alındı 23 Haziran 2018.
  17. ^ "BUILD2 Demo ve Araçlar". advsys.net. Alındı 2019-08-22.

Dış bağlantılar