Құру (ойын қозғалтқышы) - Build (game engine)

Құру
Қозғалтқышты құрастыру logo.png
2D режимінде құрастыруды көрсететін скриншот
2D режимінде құрастыруды көрсететін скриншот
ӘзірлеушілерКен Сильвермен
Бастапқы шығарылым1995 жылғы 30 қыркүйек; 25 жыл бұрын (1995-09-30)
Репозиторийadvsys.желі/ кен/ buildsrc/
Ізбасар2. құрастыру
ЛицензияТапсырыстық лицензия (коммерциялық емес мақсатта пайдалану тегін),[1] GNU жалпыға ортақ лицензиясы v.2 (Duke Nukem 3D/Shadow Warrior бастапқы код)[2][3]
Веб-сайтadvsys.желі/ кен/ құру.htm

Құру Бұл бірінші адамға арналған мотор жасалған Кен Сильвермен, авторы Кеннің лабиринті, үшін 3D облыстары. Сияқты Ақырет қозғалтқыш, Build қозғалтқышы өзінің әлемін а екі өлшемді сектор деп аталатын жабық 2D кескіндерді қолданатын тор және қарапайым жалпақ нысандарды пайдаланады шприттер дүниежүзілік геометрияны заттармен толтыру.

Build қозғалтқышы әдетте a деп саналады 2.5D қозғалтқыш, өйткені негізгі әлемдік геометрия екі өлшемді, биіктігі компоненті қосылады, әр сектордың төбенің биіктігі мен еденінің биіктігі әр түрлі болады. Ойынды ойнау кейбір қабаттардың төмен, ал кейбіреулерінің биік болуы мүмкін екенін көрсетеді; төбелермен бірдей (бір-біріне қатысты). Едендер мен төбелер сектордың бір қабырғасында ілулі болуы мүмкін, нәтижесінде көлбеу болады. Осы ақпаратпен Build қозғалтқышы әлемді көрінетін етіп көрсетеді үш өлшемді, нақты 3D орталарын жасайтын қазіргі ойын қозғалтқыштарынан айырмашылығы.

Build қозғалтқышы өзінің атақ-даңқының көбіне қуат беру нәтижесінде жетті 1996 бірінші атысшы Duke Nukem 3D, ол көптеген басқа ойындар үшін де қолданылған. «Үлкен төрттік» құрастыру қозғалтқышы ойындары әдетте қарастырылады Duke Nukem 3D, Shadow Warrior, Redneck Rampage, және Қан.[4] [5]

Техникалық ерекшеліктері

Секторлар

Секторлар - бұл екі өлшемділіктен тұратын деңгей макетінің құрылыс материалы көпбұрышты жоғарыдан, астыңғы жағынан және төменгі жағынан қараған кезде құрылым жүздер секторы бөлек берілген биіктік үш өлшемді кеңістік құру. Демек, барлық қабырғалар мүлдем тік болып табылады - басқаша көрінетін нәрсе - бұл көлбеу еден немесе төбеге қатысты. Сөз бөлме ойын әлеміндегі бір бөлме көптеген секторлардан тұруы мүмкін, дегенмен, түсінуге көмектесетін бос алмастырғыш ретінде пайдалануға болады параллаксты аспан ашық ауада болу елесін бере алады. Секторлармен нақты уақыт режимінде манипуляциялауға болады; барлық олардың пішіні, биіктігі және көлбеуі сияқты атрибуттарын бұрынғыдай емес, «ұшу кезінде» ойындармен өзгертуге болады Ақырет қозғалтқыш. Бұл ойындарда бұзылатын орталарға ие болуға мүмкіндік берді, мысалы, Қан. Бұл әдіс ертеректе итергіш қабырғаларды қолдануға ұқсас Apogee бағдарламалық жасақтамасы тақырып Триаданың пайда болуы ұқсас динамикалық орталарды ұсынды.

Қозғалтқышқа негізделген ойын жасаушылар арнайы «спрайттарды» (ойын объектілері) қолданды, оларды көбінесе «сектор эффекторлары» деп атайды [sic ], арнайы тегтер (мағынасы анықталған сандар) берілген кезде деңгей дизайнеріне динамикалық әлем құруға мүмкіндік беретін; сектордың ерекше сипаттамаларын беру үшін ұқсас белгілерді сектордың қабырғалары мен алаңына беруге болады. Мысалы, белгілі бір сектордың эффекторы ойыншылар еденнен өтіп кетсе және басқа секторға телепортаж жасаса, еденнен құлап кетуі мүмкін; іс жүзінде бұл үлкен тесікке құлау немесе су астындағы зерттеуге секіруге болатын су қоймасын құру әсерін жасау үшін қолданыла алады. Секторға оны лифт немесе лифт сияқты ұстайтын белгіні беруге болады.

Егер бір уақытта көрінбейтін болса, секторлар бір-бірімен қабаттасуы мүмкін (егер бір уақытта екі қабаттасқан сектор көрінсе, бүлінген дисплей пайда болды). Бұл дизайнерлерге, мысалы, басқа бөлменің жоғарғы бөлігінде пайда болған ауа өткізгіштерін жасауға мүмкіндік берді (дегенмен, бұл өңдеу процесінің көп бөлігі үшін қолданылған 2D көзқарасқа байланысты дизайнерлер үшін қиын болуы мүмкін). Бұл дизайнерлерге физикалық тұрғыдан мүмкін болмайтын дүниелер жасауға мүмкіндік берді (мысалы, шағын ғимараттың есігі ғимараттың өзінен үлкен бөлмелер желісіне айналуы мүмкін). Мұның бәрі қозғалтқышты пайдаланып ойындар 3D болып көрінгенімен, кейінірек бірінші адам атқандар, мысалы, мүмкін емес Жер сілкінісі, қолданылған Жер сілкінісі қозғалтқыш, қозғалтқыш әлемдік геометрияны шынайы 3D ақпарат ретінде сақтап, бір аймақтың екінші картаға шоғырланған бір аймақты жасауды бір картаға енгізуге мүмкіндік береді.

Воксельдер

Ken Silverman's Build қозғалтқышының кейінгі нұсқалары таңдалған ойын плиткаларын 3D нысандарымен ауыстыруға мүмкіндік берді воксельдер. Бұл мүмкіндікті қолдану өте кеш пайда болды Duke Nukem 3D, бірақ кейінірек құрастыру қозғалтқышының кейбір ойындарында байқалды. Қан қару-жарақ пен оқ-дәрілерді алу, электр қуатын көтеру және кәмпиттер үшін воксельдерді пайдаланады (мысалы, «Бесікке дейін» деңгейіндегі құлпытастар, кейбір орындықтар және хрусталь шар «Қараңғы карнавалда»). Shadow Warrior қабырғаға орналастырылатын воксельдермен (ойынның барлық қосқыштары мен түймелері воксельдер) технологияны одан да жетілдіріп қолданады.

Бірнеше жыл бойы Кен толығымен воксельдерге негізделген заманауи қозғалтқышта жұмыс істеді Voxlap.

Бөлменің үстінде

Build қозғалтқышының бір шектеулері - оның деңгейлік геометриясы кез-келген қабырға үшін секторлар арасындағы бір байланысты көрсете алады. Осыған байланысты, үстіңгі және астыңғы кеңістігі бар сөре сияқты қарапайым құрылым мүмкін емес, бірақ кейде спрайттар мен воксельдерді ауыстыруға болады. Бірнеше қабатты ғимараттар техникалық жағынан мүмкін, бірақ мұндай ғимаратта басқа терезенің үстінде немесе астында сыртқы терезе болуы мүмкін емес. Сонымен қатар, баспалдақтармен, лифтілермен және әр қабатқа кірудің басқа әдістерімен бірге кейбір еркіндіктерді алу қажет болады.

Бірнеше құрастыру қозғалтқышы ойындары (атап айтқанда Shadow Warrior, Қан, және Redneck Rampage) қосымша көрініс беру арқылы басқа секторға «қарау портын» көрсету арқылы жұмыс істеді. Бұл техника деп аталады бөлме-бөлме (ROR), ойнатқышта жіксіз көрінеді. Тік конструкцияның кеңейтілген диапазонынан басқа, су қоймаларын беру үшін ROR жиі пайдаланылды мөлдір беттер. ROR ешқашан Build қозғалтқышының ерекшелігі болған жоқ, керісінше ойын жасаушылар жасаған «қулық». Қолданылған қулық Duke Nukem 3D мұнымен айналып өту, мысалы, су астындағы мөлдір емес учаскелерінде, ойыншыны картаның лифтілеріне ұқсас картаны имитациялау үшін жасалған басқа аймағына тез тасымалдау керек еді. Триаданың пайда болуы.

2011 жылы EDuke32 деп аталатын функция қосылды бөлме үстіндегі шынайы бөлме (TROR), бұл бірнеше секторларды тігінен қабаттастыруға мүмкіндік береді, осылайша әр сектордың қабырғалары тігінен шектеусіз құрылымдарға мүмкіндік беретін өзіндік байланысқа ие болады. ROR мен TROR арасындағы айырмашылық мынада: TROR секторлары физикалық түрде карта деректері мен редакторында қабаттасады (оңай жасауға және визуалдауға мүмкіндік береді). шын бөлме үстінде. TROR - бұл ойын ерекшелігі немесе қулық емес, EDuke32 бастапқы портының ерекшелігі.

Қозғалтқыш ойындарын құру

Тікелей Build қозғалтқышына салынған ойындар
Негізіндегі ойындар Duke Nukem 3D код
Шығарылмаған қозғалтқыш ойындары

Ақпарат көзін шығару және одан әрі дамыту

2000 жылы 20 маусымда (оның сайтына сәйкес) Кен Силвермэн Build қозғалтқышын шығарды бастапқы код.[9]

Ерте күндер

Мэтт Сеттлердің 2.0 нұсқасы EDuke, жақсарту жобасы Duke Nukem 3D үшін моддерлер, Build көзі шыққаннан кейін көп ұзамай 3D Realms-қа буып-түюге жіберілді, Duke Nukem 3D-де 3D Realms бастапқы герцогпен бірге қолданған алдын-ала салынған кітапханалар қалды. (Екеуі де Duke Nukem 3D және EDuke бұл кезде әлі де жабық көздер болған.)

2.1 жекеменшік бета нұсқалары, Сэттлер Сильверменнің қайнар көзін Дьюктың бастапқы кодына енгізу жолында жұмыс істеді, бірақ жоба кейбір қате жеке беталардан гөрі ештеңе шығармастан бұрын жүзеге асты. Build ойындарына арналған бірнеше конверсиялық топтар Silverman's Build кодынан тікелей жұмыс істеуге шешім қабылдады, сонымен қатар Mapster деп аталатын Build редакторының жетілдірілген нұсқасы жасалды.

Ол кезде 3D Realms форумдарының көпшілігі Build-ті көп тапсырмалы ОЖ-ге ауыстыру мүмкін емес деп мәлімдеді, өйткені оған көп жұмыс жағдайында қол жетімді болмайтын үлкен шектес жады блогы қажет. Бұл мәлімдеме барлық заманауи операциялық жүйелер қолданатындықтан, тексеруге төзбеді виртуалды жад бұл қолданбаларға іргелес физикалық жадты пайдаланбай-ақ сабақтас логикалық жадыны алуға мүмкіндік береді, бірақ сол кездегі әдеттегі даналық Build-ті осындай ОС-ға көшіру мүмкін болмады.

Duke Nukem 3D дереккөзді шығару

2003 жылдың 1 сәуірінде, бірнеше жыл бойы керісінше шағымдардан кейін, 3D Realms бастапқы кодын шығарды Duke Nukem 3D. Көп ұзамай екеуі де Райан С. Гордон және Джонатон Фаулер ойынның бастапқы порттарын, соның ішінде Build қозғалтқышын құрды және шығарды. Ойнауға болатын еді Duke Nukem 3D Windows жүйесінде (Windows 2000 / XP-де) және т.б. Linux және басқа да Unix операциялық жүйелер мен бастапқы порттарға деген қызығушылық артты.

icculus.org порты

Райан С. Гордон (icculus) басқалардың көмегімен қозғалтқыштың бірінші портын пайдаланып жасады SDL. Порт бірінші болды Linux, содан кейін Cygwin, және ақыр соңында Watcom C ++ түпнұсқалық DOS құрастыру үшін қолданылған компилятор (Watcom C ++ көмегімен құрастырылғанына қарамастан, қарапайым C). Мэтт Сэттлердің мұны портқа қолданғаны туралы біраз әңгімелер болды EDuke Windows-қа, бірақ одан ештеңе шықпады.

JonoF порты

Джонатон Фаулер (JonoF) екінші бастапқы портты Windows-қа, ал кейінірек Linux және Mac OS X-ге жасады. Бұл портта JFDuke3D бастапқыда желілік ойынға қолдау көрсетілмеген, дегенмен бұл кейінірек дамуда қосылды.

Полимост

Build қозғалтқышын шынайы 3D рендереріне дейін жаңарту міндетін Сильверменнің өзі алды. Ішінде жазбаларды шығару JFDuke3D үшін ол былай деп жазды:

«3D Realms Duke Nukem 3D бастапқы кодын шығарғанда, мен біреу OpenGL немесе Direct3D портын жасайды деп ойладым. Бірнеше ай өткен соң, мен шынымен жеделдетілген Build портында жұмыс істейтін біреудің белгісін көрмедім, жай адамдар Бұл мүмкін емес екенін айтып, ақыр соңында мен мұны өзім жасауым керек екенін түсіндім ».

Polymost рендерері 3D аппаратурамен жеделдетілген графиканы пайдалануға мүмкіндік берді OpenGL. Сондай-ақ, ол ойынның түпнұсқа текстурасын әртүрлі форматтағы жоғары ажыратымдылықты ауыстырулармен ауыстыруға мүмкіндік беретін «биіктік» енгізді. Полимост Джонатон Фаулердің JFBuild, JFDuke3D, JFShadowWarrior және олардың кодтық негіздерінен алынған бастапқы порттарда қолданылған.

EDuke32

Кейін EDuke 2.0 көзі, содан кейін соңғы жеке бета нұсқасы шығарылды EDuke 2.1 (бұл ешқашан шығарылым нұсқасына жете алмады). Ричард Гобейл (TerminX) жасау үшін EDuke 2.0 көзін JFDuke3D-пен біріктірді EDuke32. Басқа порт, Уиндуке, icculus кодына негізделген, содан кейін өліп, EDuke32 жалғыз EDuke порты әлі дамуда.

EDuke32 ойындарды қолдайды NAM және Екінші дүниежүзілік соғыс, өйткені EDuke сол ойындардың кодына негізделген.

Полимер

2009 жылы 1 сәуірде EDuke32 үшін OpenGL shader моделінің 3.0 рендерері жасалғандығы анықталды. Полимер Кен Сильвермендікінен ажырату Полимост. Алдымен бұл сәуірдің ақымақтарының қалжыңы деп ойлаған, бірақ кейінірек оны жеткізуші көпшілікке жария етілді. Бұл нақты уақыт режимінде динамикалық түрлі-түсті жарықтандыру және көлеңкелі картаға түсіру, көзілдірік және қалыпты картаға түсіру, және полимостқа көптеген жылдар бойы қосылған көптеген мүмкіндіктерге қосымша, басқа көлеңкеге негізделген ерекшеліктер. Полимер толығымен пайдалануға жарамды болғанымен, техникалық жағынан толық емес және оптимизацияланбаған, әлі де дамуда. EDuke32 әзірлеушілері Полимерді жылдамдықпен қайта жазғаннан кейін, ол полимостты толығымен ығыстырып шығарады, өйткені ол жоғары рендерер болып табылады және оны полимостпен бірдей етіп жасауға болады деп мәлімдеді.

Басқа ойын порттары

BuildGDX
ӘзірлеушілерАлександр «[M210]» Макаров
Бастапқы шығарылым2018 жылғы 12 қаңтар; 2 жыл бұрын (2018-01-12)
Тұрақты шығарылым
1.04 / 13 қыркүйек, 2019 жыл; 14 ай бұрын (2019-09-13)
Репозиторийgitlab.com/ м210/ BuildEngine
ПлатформаJava
ТүріОйын қозғалтқышы
ЛицензияКлиенттік лицензия (коммерциялық емес мақсатта пайдалану тегін)
Веб-сайтм210.duke4.желі

The Shadow Warrior бастапқы код 2005 жылдың 1 сәуірінде, ал JonoF 2005 жылдың 2 сәуірінде JFShadowWarrior портының бастапқы портын шығарды. Алайда ол өзінің Shadow Warrior шыққанға дейін шамамен бір апта бұрын бастапқы код.[10] Бұл портты кейінірек ProASM SWP портына жіберді.[11]

The Трансфузия қайта құруға бағытталған жоба Қан DarkPlaces қозғалтқышында, бірақ 2006 жылғы жағдай бойынша бұл жоба аяқталуға жақын, дегенмен ол толық ойыншыға ие; ұқсас жоба BloodCM барлық монолитті қайта құратын ойыншылар деңгейлерін бір деңгейге көтерді Қан EDuke32 үстінде, сонымен қатар ZBlood ол кейбір порттар Қан активтер мен деңгейлер ZDoom.

Витчавен, Витчавен II: Қан кек, Уильям Шатнердің TekWar және дәліз 8: Галактикалық соғыстардың бастапқы коды да пайда болды. Алайда олардың құқықтық мәртебесі түсініксіз. Альфа нұсқасының толық бастапқы коды Қан ақпараттар шығарылды және басқаша сілтеме ретінде қолданылды кері инженерлік порт Java қолдану LibGDX деп аталады BloodGDX 2017 жылдың мамырында.[12]

Бұл автордың алдыңғы портынан шыққан TekWar 2016 жылдың қаңтарында шығарылды және оны порттар қадағалады Витчавен, Redneck Rampage, Duke Nukem 3D, Пауэрслав, Жеті паладин туралы аңыздар және Shadow Warrior, қазір барлығы жиналды BuildGDX.

Бұдан әрі порты Қан, деп аталады NBlood, 2019 жылдың қаңтарында EDuke32 және автордың алдыңғы нұсқасы негізінде шығарылды Реднукем порт Redneck Rampage.[13] Үшін EDuke32 порты PowerSlave, деп аталады PCExumed, 2019 жылдың 21 қарашасында шығарылды.

Бастапқы порт Raze қоса, EDuke32 және онымен байланысты порттар NBlood, Реднукем, және PCExumed, және оны негізге алынған жаңа негізге байланыстырады GZDoom.[14]

Ізбасар

Құрылыстың ізбасарын жобалауға бірнеше рет тырысқаннан кейін, Силверман 2006 жылы тағы да осындай идеямен тәжірибе жасай бастады. Ол бұл жұмысты қолданды - қазір ол 2. құрастыру - 2007 жылдан бастап 2009 жылға дейін жазғы лагерьде балаларға 3D ойын бағдарламалауды үйрету кезінде және ол 2011 жылға дейін жобаға деген қызығушылығын жоғалтқанға дейін жалғасты. Онда жетілдірілген жарықтандыру жүйесі, нысандар үшін вокселді көрсету және бөлмедегі «бөлмеден тыс» 3D кеңістіктері бар, сонымен қатар, түпнұсқалық құрастырумен ішінара кері үйлесімділік сақталады. Сильвермен өзінің жобаларын 2018 жылдың 7 наурызында көпшілікке ұсынды.[15][16] Бастапқы код 2019 жылдың 8 маусымында жарияланған.[17]

Ескертулер

  1. ^ Бастапқы кодтың BUILDLIC.TXT
  2. ^ Duke Nukem 3D - GitHub
  3. ^ Shadow Warrior - GitHub
  4. ^ Уилсон, Хамиш (23 маусым 2015). «Үлкен үштік GOG-та қозғалтқыш ойындарын жасайды». GamingOnLinux. Алынған 23 маусым 2015.
  5. ^ Зак, Роберт (13 сәуір 2016). «Құрылыс қозғалтқышының сұлулығы». RockPaperShotgun.
  6. ^ «TWIM». Корей ойындарының тарихы. 101. Қатерлі ісік. Алынған 2017-07-01.
  7. ^ Euijeok: Im Kkeokjeong DOS үшін (1994) кезінде MobyGames
  8. ^ а б c «3D патшалығы». Келесі ұрпақ. №10. Медианы елестетіп көріңіз. Қазан 1995. 99–102 бб.
  9. ^ «Ken Silverman's Engine қозғалтқышының бастапқы коды». Алынған 7 шілде, 2008.
  10. ^ Фаулер, Джонатон (3 сәуір 2005). «JFShadowWarrior». JonoF's. б. 1. Алынған 3 тамыз 2011. … Мен [JonoF] бір апта басталдым ...
  11. ^ ProASM SWP порты
  12. ^ Алекс Уокер. «Сіз Java-ны қолдана отырып түпнұсқа қанды ойнай аласыз». Котаку. Алынған 2020-08-15.
  13. ^ Лиам Дау. «NBlood, EDuke32 қолданатын классикалық FPS 'Blood' бастапқы көзі». GamingOnLinux. Алынған 2020-08-15.
  14. ^ Лиам Дау. «Raze - GZDoom tech қолдауы бар EDuke32-тің жаңа ашық көзі». GamingOnLinux. Алынған 2020-08-15.
  15. ^ Tarason, Domonic (9 наурыз 2018). ""Кен Сильверменнің көптен бері жоғалып келе жатқан BUILD2 қозғалтқышы шығарылды"". Тас, қағаз, мылтық. б. 1. Алынған 23 маусым 2018.
  16. ^ Вавро, Алекс (9 наурыз 2018). ""Енді сіз қозғалтқышты құрастыру мұрагерімен айналыса аласыз: құрастыру"". Гамасутра. б. 1. Алынған 23 маусым 2018.
  17. ^ «BUILD2 демо және құралдар». advsys.net. Алынған 2019-08-22.

Сыртқы сілтемелер