Építsd meg a motort | |
---|---|
Típusú | Játék motor |
Fejlesztő | Ken Silverman |
Beírva | Xi |
Operációs rendszer | DOS |
Hardver platform | MS-DOS |
Engedély | kód a szerzőtől - a védett BUILDLIC.TXT [1] alatt |
Weboldal | advsys.net/ken/build.htm |
Médiafájlok a Wikimedia Commons oldalon |
A Build Engine egy első személyű lövöldözős játékmotor , amelyet Ken Silverman készített a 3D Realms számára . A Doom játékhoz hasonlóan a Build Engine is zárt síkformákból álló, szektoroknak nevezett 2D-s rácsra vetíti a játékvilágot , és a legegyszerűbb lapos objektumokat, úgynevezett sprite -okat használja a geometriai világ objektumokkal való feltöltésére.
A Build Engine az úgynevezett " 2,5-dimenziós motorok" osztályába tartozik, mivel a játék világa egy síkon alapul, hozzáadott magassági komponenssel. Minden szektornak eltérő lehet a padló- és belmagassága, valamint eltérő a padló és a mennyezet lejtése. A renderelés eredményeként a világ háromdimenziósnak tűnik. A perspektíva számítása csak vízszintes távolságon alapul - ezért a csúcsoknak megfelelő függőleges vonalak szigorúan függőlegesek, függetlenül a látószögtől. Ez jelentős perspektíva torzulást okoz, amikor felfelé vagy lefelé nézünk nagy szögből a legtöbb Build engine játékban .
A szintgeometria fő alkotóelemei a szektorok. Valós időben dolgozhat a szektorokkal. Paramétereik (magasságok, alak, dőlésszögek) változtatáskor nem igényelnek újraszámítást. Ez lehetővé teszi, hogy a játék környezetét interaktívabbá, például elpusztíthatóvá tegye (mint a Blood esetében ).
A fejlesztők fenntartott sprite-okat ( szektoreffektorokat ) használtak, amelyekhez speciális top ( hi-tags ) és bottom ( lo-tags ) címkéket (bizonyos jelentésű számokat) rendeltek, amelyek lehetővé tették a világ dinamikusabbá tételét (pl. ajtók, felrobbanó hordók stb.) Ugyanazok a címkék adhatók a szektor padlójára és mennyezetére, hogy különleges tulajdonságokat adjunk. Például egy játékos, aki a padlón sétál speciális címkékkel, leesik, és kiesik egy másik, speciális címkékkel ellátott mennyezetről. A gyakorlatban ezt használták tározók létrehozására. Egy szektor kaphat címkéket, amelyek ajtóvá vagy liftté varázsolják. A szektorok átfedhetik egymást úgy, hogy az egyik a másik miatt nem látható (ha ilyen helyzetben két szektor látható egyszerre, akkor súlyos torzítással). Ez lehetővé tette például a helyiségek felett elhelyezett szellőzőaknák létrehozását (bár ez jelentősen megnehezítette a további munkát a szint ezen részével, mivel a fejlesztő szinte minden idejét kétdimenziós módban tölti). Lehetővé teszi olyan világok létrehozását is, amelyek a fizika szempontjából lehetetlenek (például egy épület helyiségrendszere, amely nagyobb, mint maga az épület). Mindezek a hatások háromdimenziósnak tették a világot, egészen a Quake motor megjelenéséig .
A gépek Z-rendbe rendezéséhez a Doom egy BSP fát használt , amelyet minden WAD elmentésekor felépítettek. A Doomtól eltérően a Build a portálmechanizmust használta .
A két szektort elválasztó szegmenseket „portáloknak” nevezzük. A motor először megrajzolja azt a szektort, amelyben a néző található, és megjegyzi az összes portált. Ezt követően rekurzívan elkezdi megjeleníteni a portálokon keresztül látható szektorokat (anélkül, hogy megérintené a már megrajzolt).
A 2,5 dimenziós motorban ez a módszer jobb volt, mint a BSP fa a következő okok miatt:
A motor későbbi verziói lehetővé tették a játék képeinek voxelekből készült 3D-s objektumokkal való helyettesítését . Ez a funkció túl későn tűnt fel ahhoz, hogy a Duke Nukem 3D -ben használhassa, de más játékokban használták. A Blood voxeleket használ fegyverekhez, lőszerekhez, fejlesztésekhez és különféle dekorációkhoz (például sírkövekhez a Cradle to Grave-ben).
Ken évek óta dolgozik a voxel technológián alapuló Voxlap motoron.
A Build motor egyes játékai azt a trükköt alkalmazták, hogy két szektor padlóját és mennyezetét kombinálták. Az ilyen struktúrák létrehozása a szintszerkesztés során nehézkes volt, ezért a szint betöltésekor gyakran elmozdultak a szektorok (ami leegyszerűsítette a renderelő motor által végzett számításokat). A szoba feletti technológiát a Shadow Warrior (a szektorok eltolása a térkép betöltése közben) és a Blood (nincs eltolás) esetén használták. Maga a technológia nem volt beépítve a motorba, erre gondoltak a pályaalkotók.
2000. június 20-án Ken Silverman nyílt forráskódú a Build Engine-t.
Matt Setler EDuke -jának (a Duke Nukem 3D-t modern operációs rendszereken futtatható port ) 2.0-s verziója (az első és egyetlen hivatalos kiadás) el lett küldve a 3D Realms -nak ( a Duke Nukem 3D és az EDuke forrásai továbbra is nyilvánosak voltak). A 2.1-es bétaverzióval dolgozva Matt megpróbálta beágyazni a Build forrásokat a Duke forrásokba, de a projektet leállították, mielőtt a hibakereső nyilvános kiadások elérhetőek lettek volna. Számos Build konverziós csapat úgy döntött, hogy közvetlenül Ken Build Engine forrásaival dolgozik, nem pedig Duke forrásaival. Később a munka eredményeként megjelent a térképész szerkesztő. A Build motor többfeladatos operációs rendszerekre történő portolása sokáig nehéz volt, mert nagyon nagy számítógépmemória-területre volt szükség, ami a többfeladatos operációs rendszerekben nem volt elérhető. A problémát a virtuális memória csatlakoztatása oldotta meg .
2003. április 1-jén a 3D Realms kiadta a Duke Nukem 3D motor forráskódját , annak ellenére, hogy régóta hangoztatták, hogy ez soha nem fog megtörténni. Ezt követően hamarosan megjelentek az Icculus és a JonoF portjai . Lehetővé vált a Duke Nukem 3D zökkenőmentes lejátszása GNU / Linux , Windows NT és más platformokon, és megnőtt a portok iránti érdeklődés.
Ryan Gorden (icculus) külső segítséggel létrehozta a motor első portját SDL segítségével . Kezdetben a Linux , később a Cygwin és még később a tiszta Win32 portja volt (az építés során a Watcom C ++ fordítót használták, amelyet az eredeti DOS - összeállításhoz is használtak (olyan pontossággal, mint a Watcom C ++ ). for Windows , és a Build sima C ) -ben volt írva. Voltak pletykák az EDuke Windows-ra való portolásáról, de nem történt semmi.
Jonathan Fowler (JonoF) második portja Windowson és később Linuxon. Az icculus porttal ellentétben ez a port a DirectDraw-t használja SDL helyett a Windows rendszeren, és lényegesen gyorsabb. A motor sokáig nem támogatta a többjátékos módot , aztán a többjátékost csak két játékosnak támogatta.
A motor szerzője vállalta a Build Engine frissítését egy teljes értékű 3D-s motorra. A JFDuke3D kiadási megjegyzéseiben Silverman ezt írja:
Amikor a 3D Realms kiadta a Duke Nukem 3D forráskódját, arra gondoltam, hogy valaki készít egy OpenGL - vagy Direct3D - portot. Néhány hónap múlva rájöttem, hogy senki sem dolgozik valódi hardveres gyorsításon a Buildben, az emberek csak azt mondják, hogy ez nem lehetséges. Később rájöttem, hogy az egyetlen módja annak, hogy bármit elérj, ha mindent magad csinálsz.
A polybridge renderelő rendszer OpenGL -t használ a hardveres 3D gyorsításhoz. Bevezették a Hightile technológiát is , amely lehetővé teszi a szabványos játékerőforrások jobbra cseréjét különböző formátumokban.
A Polybridge-et a JFBuildben Jonathan Flower, JFDuke3D, JFSW és más, ezen a kódbázison alapuló portok használta.
Az EDuke 2.0 forráskód megjelenése a JonoF port és a Build Engine 2.1 motor képességeivel egészítette ki az EDuke-ot, hamarosan megjelent az EDuke32, de egyelőre csak az EDuke van fejlesztés alatt.
Az EDuke 2.1 legújabb személyes bétaverziójának forráskódja (amely soha nem jelent meg) szintén megjelent az EDuke 2.0 forráskódjai után. Létezik egy Icculus alapú kikötő is, a windeduke kódnéven, ami jelenleg nincs fejlesztés alatt.
Az EDuke a Nam és a WW2 GI forráskód elemeit tartalmazta , ami megkönnyíthette a fejlesztést. Kísérlet történt a Blood on the DarkPlaces motor újraalkotására is, és a Transfusion nevet kapta , de 2006-ban ez a port még fejlesztés alatt áll.
A Shadow Warrior forráskódja 2005. április 1-jén jelent meg, a JonoF pedig 2005. április 2-án tette közzé a játék portját. Igaz, azt állítja, hogy egy héttel megjelenésük előtt hozzáfért a Shadow Warrior forráskódjaihoz.
Megjelent a Witchaven , a Witchaven II , a Tekwar és a Corridor 8 forráskódja is. Az igazság megkérdőjelezhető a közzétételük jogszerűsége.
Build Engine játékok | |
---|---|
|