Build Engine — це рушій гри для шутерів від першої особи, створений Кеном Сільверманом для 3D Realms. Як і в грі Doom, рушій Build Engine проєктує ігровий світ на двомірну сітку з замкнутих фігур на площині, званих секторами, і використовує найпростіші плоскі об'єкти — спрайт, для заселення геометричного світу об'єктами.
Build Engine | |
---|---|
Рушій гри (Список) | |
Ключовий програміст | Кен Сільверман |
Підтримувана ОС | DOS |
Ліцензія | код від автора — під власницької BUILDLIC.TXT |
http://advsys.net/ken/build.htm |
Build Engine належить до класу так званих «2,5-мірних рушіїв», оскільки в основі ігрового світу лежить площина з доданою компонентою висотою. Кожний сектор може мати різну висоту підлоги та стелі, а також різний нахил підлоги та стелі. В результаті рендерингу світ виглядає тривимірним. Обрахування перспективи ґрунтується тільки на горизонтальній відстані — тому вертикальні лінії, відповідні вершинам, вертикальні незалежно від кута зору. Це викликає значні спотворення перспективи при погляді вгору або вниз на великі кути в більшості ігор на рушії Build.
Технічні характеристики
Сектори
Сектори — основна складова геометрії рівня. З секторами можна працювати в реальному часі. Їх параметри (висоти, форма, кути нахилу) не вимагають перерахунку при зміні. Це дозволяє робити оточення в грі більш інтерактивним, наприклад, руйнівним, як в грі . Розробники використовували зарезервований спрайт (секторефектори), яким присвоювалися спеціальні верхні (hi-tags) і нижні (lo-tags) теги (числа з певним змістом), які дозволяли робити світ динамічнішим (наприклад, двері, вибухи бочок і т. ін.). Такі ж теги можуть бути задані підлозі та стелі сектора для додання особливих властивостей. Наприклад, гравець, що проходить по підлозі зі спеціальними тегами, провалювався вниз і випадав з іншого боку стелі зі спеціальними тегами. На практиці це застосовувалося для створення водойм. Сектору можуть бути присвоєні теги, які перетворюють його в двері або ліфт. Сектори можуть перекривати один одного, якщо в такій ситуації видно одразу два сектори, то з найсильнішими спотвореннями. Це дозволяло створювати, наприклад, вентиляційні шахти, що знаходяться над приміщеннями (правда це значно ускладнювало подальшу роботу з цією частиною рівня, оскільки майже весь час розробник проводить в двомірному режимі). Також це дозволяє створювати неможливі з точки зору фізики, світи (наприклад, система приміщень в будівлі, яка більше самої будівлі). Всі ці ефекти робили світ схожим на тривимірний.
Портали
Для сортування площин в [en] рушій Doom використовував BSP-дерево, яке будувалося щоразу при збереженні WAD' а. На відміну від Doom, Build використовував механізм .
Відрізки, що розділяють два сектори, оголошуються «порталами». Рушій спочатку малює сектор, в якому знаходиться глядач, запам'ятовуючи всі портали. Після цього він рекурсивно запускає рендеринг секторів, які видно крізь портали (не чіпаючи того, що вже намальовано).
У 2,5-мірному рушії цей метод виявився кращим за BSP-дерева з таких причин:
- Сектора можна рухати та обертати. Нехай цей рух дуже обмежено (рух можливий тільки в межах одного сектора) — навіть це прогрес порівняно з Doom' ом. Що привело до дуже «живого» світу — горизонтальні «ліфти» (повсюдно в 2 частини Duke Nukem 3D — Lunar Apocalypse), вагон метрополітен (Duke Nukem 3D — рівень Rabid Transit), руйновані об'єкти (Blood) і т. д.
- Doom розбиває стіни (linedefs) на сегменти (segs). Портальний рушій ніколи не ділить стіни на частини — що призводить до більш високої швидкості рендеринга на складних сценах. До того ж, складність невидимих частин рівня жодним чином не впливає на продуктивність рендерера. На машинах класу Pentium-100 можна вільно запускати Duke Nukem 3D в роздільності 640×480.
- Нарешті, в портальному рушії попередні обчислення мінімальні — а значить, користувач може редагувати рівень в тривимірному режимі.
Вокселі
Пізніші версії рушію дозволяли замінювати зображення в грі на тривимірні об'єкти, зроблені з вокселів. Ця можливість з'явилася надто пізно для того, щоб використовувати її в Duke Nukem 3D, але була використана в інших іграх. [en] використовує воксели для зброї, патронів, поліпшень, і різних прикрас (таких як надгробки на рівні Cradle to Grave).
Кілька років Кен працював над рушієм , який бере за основу воксельні технології.
Кімната над кімнатою
Деякі ігри на рушії Build engine використовували трюк з об'єднанням підлоги та стелі у двох секторів. Створення таких конструкцій під час редагування рівня було ускладнене, тому часто сектора переміщалися під час завантаження рівня (що спрощувало розрахунки, що виконуються рушієм для відтворення). Технологія кімната-над-кімнатою застосовувалася в (зсув секторів під час завантаження карти) та Blood (без зміщення). Сама технологія не була закладена в рушій, до неї додумались творці рівнів.
Подальший розвиток
20 червня 2000 року Кен Сільверман відкрив джерельний код рушія Build Engine.
Версія 2.0 (перший та єдиний офіційний реліз) від Метта Сетлера (порт для запуску Duke Nukem 3D під сучасними операційними системами) був відісланий в 3D Realms (сирці Duke Nukem 3D та були як і раніше в закритому доступі). Працюючи з бета-версією 2.1, Метт намагався вбудувати сирці Build в сирці Duke, але проєкт був закритий, перш ніж з'явилися налагоджені публічні версії. Кілька команд, які займалися тотальною конверсією ігор на Build, вирішили працювати прямо з сирцями Build Engine Кена, а не сирцями Duke. Пізніше, в результаті роботи з'явився редактор mapster. Довгий час портування рушія Build на багатозадачні операційні системи ускладнено через необхідність дуже великих ділянок пам'яті комп'ютера, яких не було в багатозадачних ОС. Проблема вирішувалася підключенням віртуальної пам'яті.
Вихідні коди Duke Nukem 3D
1 квітня 2003 року 3D Realms опублікували вихідні коди рушія Duke Nukem 3D, попри те що протягом тривалого часу стверджували, що цього ніколи не станеться. Після цього дуже скоро з'явилися порти та . Стало можливо без проблем грати в Duke Nukem 3D на GNU/Linux, Windows NT та інших платформах, і інтерес до портів посилився.
Порт icculus.org
Райан Гордій (icculus) зі сторонньою допомогою створив перший порт рушія з використанням SDL. Спочатку це був порт для Linux, після для Cygwin і ще пізніше для чистого Windows API (при складанні використовувався компілятор [en], який використовувався і для оригінальної DOS збірки (з точністю до того, що для Windows використовувався Watcom C++, а Build написаний на звичайному C). Йшли чутки про портуванні EDuke на Windows, але нічого не відбулося.
Порт JonoF
Другий порт на Windows та пізніше, на Linux від Джонатана Фаулера (JonoF). На відміну від icculus порту, цей порт використовує DirectDraw замість SDL на Windows та працює значно швидше. Довгий час рушій не підтримував багатокористувацькі ігри, потім з'явилася підтримка мультиплеєра тільки для двох гравців.
Система Polymost (Полімен)
Автор рушія взявся за задачку поновлення Build Engine до повноцінного тривимірного рушія. В Сильверман пише:
Коли 3D Realms опублікували сирцеві коди Duke Nukem 3D, я думав, хто-небудь зробить OpenGL-або DirectX-порт. Через кілька місяців я зрозумів, що ніхто не працює над використанням цього апаратного прискорення в Build, люди просто говорять, що це неможливо. Пізніше я усвідомив, що єдиний спосіб чогось добитися, — це зробити все самому.
Система відтворення поліме використовує OpenGL для апаратного 3D прискорення. Також введена технологія хайтайл (hightile), що дозволяє замінювати стандартні ігрові ресурси якіснішими в різних форматах.
Полімен був використаний в JFBuild від Джонатана Флауер, JFDuke3D, JFSW, та інших портів заснованих на цій кодової бази.
Інші порти
Публікація вихідних кодів EDuke 2.0 дозволила додати до EDuke можливості порту JonoF та рушія Build Engine 2.1, незабаром з'явився EDuke32, але на сьогоднішній день в розробці знаходиться лише EDuke.
Джерело останньої особистої бета-версії EDuke 2.1 (яка ніколи не була доведена до релізу) був також опублікований після вихідних кодів EDuke 2.0. Також з'явився порт, оснований на Icculus, що має кодову назву wineduke, розробка якого на сьогоднішній день не ведеться.
EDuke містив елементи вихідних кодів [en] та [en], що, можливо, спростило розробку. Також була спроба відтворити Blood на рушії DarkPlaces та назвати , але на 2006 рік цей порт перебуває ще на стадії ранньої розробки. Існує ще недороблений порт Blood TC [ 14 квітня 2012 у Wayback Machine.].
Вихідні коди [en] були опубліковані 1 квітня 2005 року, і JonoF опублікував порт на гру 2 квітня 2005 року. Правда, він стверджує, що мав доступ до вихідного коду Shadow Warrior за тиждень до їх публікації.
Вихідні коди [en], [en], [en] та були також опубліковані, проте, легальність їх публікації знаходиться під питанням.
Список ігор на рушії Build Engine
- Ігри, написані на первинному Build Engine.
- [en] (1997)
- Duke Nukem 3D (1996)
- [en] (Exhumed в Європі) (1996)
- [en] (1997)
- [en] (1995)
- [en] (1995)
- [en] (1996)
- (2001)
- (2002)
- (2002)
- Ігри, написані на кодах Duke Nukem 3D
- [en] (1998)
- [en] (1998)
- [en] (1997)
- [en] (1997)
- [en] (1998)
- [en] (1999)
- Ігри, які не були випущені
- (закінчена, але ніколи не видавалася, оскільки використовувала рушій Build engine нелегально)
- (існує тільки демо)
- (доступні вихідні коди)
Примітки
- Ліцензія на сайті icculus.org
- [en] [@lazygamereviews] (11 червня 2017). As a result, Legends of the Seven Paladins (illegally) became the first Build Engine game, using code they didn't have the rights to (Твіт). Процитовано 16 вересня 2022 — через Твіттер.
- TWIM. A History of Korean Gaming. Hardcore Gaming 101. Процитовано 1 липня 2017.
Посилання
- Офіційний сайт рушія [ 11 листопада 2019 у Wayback Machine.] (англ.)
- Сайт порту Icculus [ 11 травня 2012 у Wayback Machine.] (англ.)
- Php ?p=build Сайт Джонатана Фаулера, присвячений Build Engine[недоступне посилання з червня 2019] (англ.)
- Php ?p=jfduke3d JonoF's Duke Nukem 3D порт (JFDuke3D)[недоступне посилання з червня 2019] (англ.)
- Категорія на ODP [ 23 червня 2012 у Wayback Machine.] (англ.)
- Php ?id=games: fate Сторінка з інформацією про неопублікованою грі 'Fate'[недоступне посилання з червня 2019] (англ.)
- Порт c ProAsm, оснований на JonoF's JFSW [ 14 червня 2012 у Wayback Machine.] (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Build Engine ce rushij gri dlya shuteriv vid pershoyi osobi stvorenij Kenom Silvermanom dlya 3D Realms Yak i v gri Doom rushij Build Engine proyektuye igrovij svit na dvomirnu sitku z zamknutih figur na ploshini zvanih sektorami i vikoristovuye najprostishi ploski ob yekti sprajt dlya zaselennya geometrichnogo svitu ob yektami Build EngineRushij gri Spisok Klyuchovij programistKen SilvermanPidtrimuvana OSDOSLicenziyakod vid avtora pid vlasnickoyi BUILDLIC TXThttp advsys net ken build htm Build Engine nalezhit do klasu tak zvanih 2 5 mirnih rushiyiv oskilki v osnovi igrovogo svitu lezhit ploshina z dodanoyu komponentoyu visotoyu Kozhnij sektor mozhe mati riznu visotu pidlogi ta steli a takozh riznij nahil pidlogi ta steli V rezultati renderingu svit viglyadaye trivimirnim Obrahuvannya perspektivi gruntuyetsya tilki na gorizontalnij vidstani tomu vertikalni liniyi vidpovidni vershinam vertikalni nezalezhno vid kuta zoru Ce viklikaye znachni spotvorennya perspektivi pri poglyadi vgoru abo vniz na veliki kuti v bilshosti igor na rushiyi Build Tehnichni harakteristikiSektori Sektori osnovna skladova geometriyi rivnya Z sektorami mozhna pracyuvati v realnomu chasi Yih parametri visoti forma kuti nahilu ne vimagayut pererahunku pri zmini Ce dozvolyaye robiti otochennya v gri bilsh interaktivnim napriklad rujnivnim yak v gri Rozrobniki vikoristovuvali zarezervovanij sprajt sektorefektori yakim prisvoyuvalisya specialni verhni hi tags inizhni lo tags tegi chisla z pevnim zmistom yaki dozvolyali robiti svit dinamichnishim napriklad dveri vibuhi bochok i t in Taki zh tegi mozhut buti zadani pidlozi ta steli sektora dlya dodannya osoblivih vlastivostej Napriklad gravec sho prohodit po pidlozi zi specialnimi tegami provalyuvavsya vniz i vipadav z inshogo boku steli zi specialnimi tegami Na praktici ce zastosovuvalosya dlya stvorennya vodojm Sektoru mozhut buti prisvoyeni tegi yaki peretvoryuyut jogo v dveri abo lift Sektori mozhut perekrivati odin odnogo yaksho v takij situaciyi vidno odrazu dva sektori to z najsilnishimi spotvorennyami Ce dozvolyalo stvoryuvati napriklad ventilyacijni shahti sho znahodyatsya nad primishennyami pravda ce znachno uskladnyuvalo podalshu robotu z ciyeyu chastinoyu rivnya oskilki majzhe ves chas rozrobnik provodit v dvomirnomu rezhimi Takozh ce dozvolyaye stvoryuvati nemozhlivi z tochki zoru fiziki sviti napriklad sistema primishen v budivli yaka bilshe samoyi budivli Vsi ci efekti robili svit shozhim na trivimirnij Portali Dlya sortuvannya ploshin v en rushij Doom vikoristovuvav BSP derevo yake buduvalosya shorazu pri zberezhenni WAD a Na vidminu vid Doom Build vikoristovuvav mehanizm Vidrizki sho rozdilyayut dva sektori ogoloshuyutsya portalami Rushij spochatku malyuye sektor v yakomu znahoditsya glyadach zapam yatovuyuchi vsi portali Pislya cogo vin rekursivno zapuskaye rendering sektoriv yaki vidno kriz portali ne chipayuchi togo sho vzhe namalovano U 2 5 mirnomu rushiyi cej metod viyavivsya krashim za BSP dereva z takih prichin Sektora mozhna ruhati ta obertati Nehaj cej ruh duzhe obmezheno ruh mozhlivij tilki v mezhah odnogo sektora navit ce progres porivnyano z Doom om Sho privelo do duzhe zhivogo svitu gorizontalni lifti povsyudno v 2 chastini Duke Nukem 3D Lunar Apocalypse vagon metropoliten Duke Nukem 3D riven Rabid Transit rujnovani ob yekti Blood i t d Doom rozbivaye stini linedefs na segmenti segs Portalnij rushij nikoli ne dilit stini na chastini sho prizvodit do bilsh visokoyi shvidkosti renderinga na skladnih scenah Do togo zh skladnist nevidimih chastin rivnya zhodnim chinom ne vplivaye na produktivnist renderera Na mashinah klasu Pentium 100 mozhna vilno zapuskati Duke Nukem 3D v rozdilnosti 640 480 Nareshti v portalnomu rushiyi poperedni obchislennya minimalni a znachit koristuvach mozhe redaguvati riven v trivimirnomu rezhimi Vokseli Piznishi versiyi rushiyu dozvolyali zaminyuvati zobrazhennya v gri na trivimirni ob yekti zrobleni z vokseliv Cya mozhlivist z yavilasya nadto pizno dlya togo shob vikoristovuvati yiyi v Duke Nukem 3D ale bula vikoristana v inshih igrah en vikoristovuye vokseli dlya zbroyi patroniv polipshen i riznih prikras takih yak nadgrobki na rivni Cradle to Grave Kilka rokiv Ken pracyuvav nad rushiyem yakij bere za osnovu vokselni tehnologiyi Kimnata nad kimnatoyu Deyaki igri na rushiyi Build engine vikoristovuvali tryuk z ob yednannyam pidlogi ta steli u dvoh sektoriv Stvorennya takih konstrukcij pid chas redaguvannya rivnya bulo uskladnene tomu chasto sektora peremishalisya pid chas zavantazhennya rivnya sho sproshuvalo rozrahunki sho vikonuyutsya rushiyem dlya vidtvorennya Tehnologiya kimnata nad kimnatoyu zastosovuvalasya v zsuv sektoriv pid chas zavantazhennya karti ta Blood bez zmishennya Sama tehnologiya ne bula zakladena v rushij do neyi dodumalis tvorci rivniv Podalshij rozvitok20 chervnya 2000 roku Ken Silverman vidkriv dzherelnij kod rushiya Build Engine Versiya 2 0 pershij ta yedinij oficijnij reliz vid Metta Setlera port dlya zapusku Duke Nukem 3D pid suchasnimi operacijnimi sistemami buv vidislanij v 3D Realms sirci Duke Nukem 3D ta buli yak i ranishe v zakritomu dostupi Pracyuyuchi z beta versiyeyu 2 1 Mett namagavsya vbuduvati sirci Build v sirci Duke ale proyekt buv zakritij persh nizh z yavilisya nalagodzheni publichni versiyi Kilka komand yaki zajmalisya totalnoyu konversiyeyu igor na Build virishili pracyuvati pryamo z sircyami Build Engine Kena a ne sircyami Duke Piznishe v rezultati roboti z yavivsya redaktor mapster Dovgij chas portuvannya rushiya Build na bagatozadachni operacijni sistemi uskladneno cherez neobhidnist duzhe velikih dilyanok pam yati komp yutera yakih ne bulo v bagatozadachnih OS Problema virishuvalasya pidklyuchennyam virtualnoyi pam yati Vihidni kodi Duke Nukem 3D 1 kvitnya 2003 roku 3D Realms opublikuvali vihidni kodi rushiya Duke Nukem 3D popri te sho protyagom trivalogo chasu stverdzhuvali sho cogo nikoli ne stanetsya Pislya cogo duzhe skoro z yavilisya porti ta Stalo mozhlivo bez problem grati v Duke Nukem 3D na GNU Linux Windows NT ta inshih platformah i interes do portiv posilivsya Port icculus org Rajan Gordij icculus zi storonnoyu dopomogoyu stvoriv pershij port rushiya z vikoristannyam SDL Spochatku ce buv port dlya Linux pislya dlya Cygwin i she piznishe dlya chistogo Windows API pri skladanni vikoristovuvavsya kompilyator en yakij vikoristovuvavsya i dlya originalnoyi DOS zbirki z tochnistyu do togo sho dlya Windows vikoristovuvavsya Watcom C a Build napisanij na zvichajnomu C Jshli chutki pro portuvanni EDuke na Windows ale nichogo ne vidbulosya Port JonoF Drugij port na Windows ta piznishe na Linux vid Dzhonatana Faulera JonoF Na vidminu vid icculus portu cej port vikoristovuye DirectDraw zamist SDL na Windows ta pracyuye znachno shvidshe Dovgij chas rushij ne pidtrimuvav bagatokoristuvacki igri potim z yavilasya pidtrimka multipleyera tilki dlya dvoh gravciv Sistema Polymost Polimen Avtor rushiya vzyavsya za zadachku ponovlennya Build Engine do povnocinnogo trivimirnogo rushiya V Silverman pishe Koli 3D Realms opublikuvali sircevi kodi Duke Nukem 3D ya dumav hto nebud zrobit OpenGL abo DirectX port Cherez kilka misyaciv ya zrozumiv sho nihto ne pracyuye nad vikoristannyam cogo aparatnogo priskorennya v Build lyudi prosto govoryat sho ce nemozhlivo Piznishe ya usvidomiv sho yedinij sposib chogos dobitisya ce zrobiti vse samomu Sistema vidtvorennya polime vikoristovuye OpenGL dlya aparatnogo 3D priskorennya Takozh vvedena tehnologiya hajtajl hightile sho dozvolyaye zaminyuvati standartni igrovi resursi yakisnishimi v riznih formatah Polimen buv vikoristanij v JFBuild vid Dzhonatana Flauer JFDuke3D JFSW ta inshih portiv zasnovanih na cij kodovoyi bazi Inshi porti Publikaciya vihidnih kodiv EDuke 2 0 dozvolila dodati do EDuke mozhlivosti portu JonoF ta rushiya Build Engine 2 1 nezabarom z yavivsya EDuke32 ale na sogodnishnij den v rozrobci znahoditsya lishe EDuke Dzherelo ostannoyi osobistoyi beta versiyi EDuke 2 1 yaka nikoli ne bula dovedena do relizu buv takozh opublikovanij pislya vihidnih kodiv EDuke 2 0 Takozh z yavivsya port osnovanij na Icculus sho maye kodovu nazvu wineduke rozrobka yakogo na sogodnishnij den ne vedetsya EDuke mistiv elementi vihidnih kodiv en ta en sho mozhlivo sprostilo rozrobku Takozh bula sproba vidtvoriti Blood na rushiyi DarkPlaces ta nazvati ale na 2006 rik cej port perebuvaye she na stadiyi rannoyi rozrobki Isnuye she nedoroblenij port Blood TC 14 kvitnya 2012 u Wayback Machine Vihidni kodi en buli opublikovani 1 kvitnya 2005 roku i JonoF opublikuvav port na gru 2 kvitnya 2005 roku Pravda vin stverdzhuye sho mav dostup do vihidnogo kodu Shadow Warrior za tizhden do yih publikaciyi Vihidni kodi en en en ta buli takozh opublikovani prote legalnist yih publikaciyi znahoditsya pid pitannyam Spisok igor na rushiyi Build EngineIgri napisani na pervinnomu Build Engine en 1997 Duke Nukem 3D 1996 en Exhumed v Yevropi 1996 en 1997 en 1995 en 1995 en 1996 2001 2002 dzherelo 2002 Igri napisani na kodah Duke Nukem 3D en 1998 en 1998 en 1997 en 1997 en 1998 en 1999 Igri yaki ne buli vipusheni zakinchena ale nikoli ne vidavalasya oskilki vikoristovuvala rushij Build engine nelegalno isnuye tilki demo dostupni vihidni kodi PrimitkiLicenziya na sajti icculus org en lazygamereviews 11 chervnya 2017 As a result Legends of the Seven Paladins illegally became the first Build Engine game using code they didn t have the rights to Tvit Procitovano 16 veresnya 2022 cherez Tvitter TWIM A History of Korean Gaming Hardcore Gaming 101 Procitovano 1 lipnya 2017 PosilannyaOficijnij sajt rushiya 11 listopada 2019 u Wayback Machine angl Sajt portu Icculus 11 travnya 2012 u Wayback Machine angl Php p build Sajt Dzhonatana Faulera prisvyachenij Build Engine nedostupne posilannya z chervnya 2019 angl Php p jfduke3d JonoF s Duke Nukem 3D port JFDuke3D nedostupne posilannya z chervnya 2019 angl Kategoriya na ODP 23 chervnya 2012 u Wayback Machine angl Php id games fate Storinka z informaciyeyu pro neopublikovanoyu gri Fate nedostupne posilannya z chervnya 2019 angl Port c ProAsm osnovanij na JonoF s JFSW 14 chervnya 2012 u Wayback Machine angl