Doom engine («рушій Doom»), також відомий як id Tech 1 — псевдотривимірний гральний рушій, розроблений американською компанією id Software і застосовуваний у комп'ютерних іграх Doom, Heretic, , , та інших іграх, створених за ліцензією. Створений Джоном Кармаком, допоміжні функції були написані [en], Джоном Ромеро, [en] і (англ. Paul Radek). Спочатку написаний на комп'ютерах NeXT, потім, для першого релізу Doom був портований під DOS, а пізніше ще на кілька ігрових консолей і операційних систем.
id Tech 1 | |
---|---|
Рушій гри (Список) | |
Частина серії рушіїв | id Tech |
Попередній рушій серії | |
Наступний рушій серії | Quake Engine |
Ліцензія | до 1997 року — Комерційне ПЗ з 1997 року — Вільне ПЗ: ліцензія GNU GPL |
Перша гра на рушію | / 10.12.1993 |
Остання гра на рушію | / 31.05.1996 |
Відмінності від Wolfenstein 3D engine
- Підлога і стеля можуть мати будь-яку висоту.
- Стіни не обов'язково орієнтовані у напрямку «північ-південь» або «захід-схід».
- Змінювана освітленість, що підвищує реалістичність графіки.
- Ліфти, двері, що дистанційно відчиняються, стелі, що опускаються і придушують, сходи, що піднімаються, та інші рухомі елементи.
- Персонажі можуть стрибати, падати з дахів і літати по повітрю (втім, пройти під ворогом, який летить, або пролетіти зверху в стрибку все одно неможливо).
- Звукова підсистема підтримувала стереозвук і [ru] до 8 ефектів одночасно.
- Персонаж під час руху погойдувався вгору-вниз, що створило більшу ілюзію ходьби (у Wolfenstein точка огляду перебувала на постійній висоті приблизно на рівні живота, гравець немов їхав у інвалідному візку).
- Дозволялося (хоч і не заохочувалося) підключення додаткових модулів ([ru]) з рівнями, графікою і звуками. Ідея розширюваності пішла від Джона Кармака, який сам модифікував ігри і хотів, щоб інші це робили.
Обмеження
- Лабіринт має горизонтальну підлогу зі стелею і вертикальні стіни.
- Дві кімнати не можуть знаходитися одна над іншою. Таким чином, карта рівня є абсолютно двовимірної.
- У всій грі масштаб спрайтів і текстур постійний. Тому, наприклад, неможливо встановити високодеталізований плакат на менш детальній стіні.
- Автори так і не пропрацювали вертикальні зіткнення об'єктів. Тому не можна, наприклад, пробігти під какодемоном, що летить, або, розігнавшись на якомусь даху, перестрибнути через факел. (Виправлено в Heretic і , оскільки в них це було необхідно через магічну можливість польоту гравця.)
- Гра не робила й інших перевірок по осі Z — наприклад, імп, що блукав у підвалі, цілком міг завдати пошкодження гравцеві, який знаходиться на декілька сотень метрів вище, на горищі, а ракета, що вибухнула біля основи будівлі, завдавала шкоди монстрові на даху. Гравець міг використовувати перемикачі незалежно від висоти (наприклад, все ще можна активувати зниклий під землею вимикач на рівні
MAP01
Entryway в Doom 2). - Особлива структура рівня (так зване бінарне розбиття простору) вимагала збирання перед випробуванням рівня. Збирання відбувається автоматично, на комп'ютерах того часу менш ніж за хвилину — проте, це заважало переглядати рівень в реальному часі прямо по ходу редагування (на відміну від Build Engine). До того ж двійкове розбиття ділило стіни на «відрізки» (англ. segs) — це ускладнювало геометрію рівня. Duke Nukem 3D версії 1.3 успішно працював на комп'ютерах класу Pentium-100 на роздільності 640×480 — жоден порт Doom не здатний на таке. Через це рух об'єктів можливий, але по горизонтальній площині рух обмежено, на відміну від Build Engine.
- Висота текстури, якщо та повторюється по вертикалі, повинна завжди дорівнювати 128 текселям. Для неповторюваних текстур (щаблів, ґрат і т. д.) це не потрібно. Виправлено в численних портах Doom.
- Перегляд вгору-вниз, реалізований в Heretic, був псевдотривимірним, вертикальні лінії завжди залишалися вертикальними.
Технічні особливості
Рушій був написаний на Сі на робочих станціях NeXT в операційній системі NEXTSTEP. Спочатку використовувався компілятор , але в подальшому був використаний [ru]. Утиліти були написані під NeXT на Objective-C. Рушій Doom був прогресивним для свого часу. Незважаючи на те, що Сі — мова процедурного програмування, рушій Doom написаний в явно вираженому об'єктному стилі.
Будова рівнів
Всі рівні в Doom насправді двовимірні, що вказує на одне з обмежень рушія: неможливо мати кімнату (сектор) над іншою кімнатою. Однак, з іншого боку, це дозволяє без особливих проблем малювати карту рівня з відображенням всіх стін і об'єктів, на відміну від інших ігор цього жанру.
Рівень складається з десяти блоків .WAD
-файла; з них п'ять (VERTEXES
, LINEDEFS
, SIDEDEFS
, СЕКТОРІВ
і THINGS
) безпосередньо редагуються користувачем, ще п'ять (SEGS
, SSECTORS
, NODES
, REJECT
і BLOCKMAP
) — обчислюються BSP-побудовником.
Рівні будуються за субтрактивним принципом: весь простір заповнений непрохідною матерією, і автор рівня «прорубує» в цій матерії тунелі. Основою рівня є вершини (англ. vertices) — точки у плоскому просторі. Між вершинами проводяться відрізки (англ. linedefs). Відрізок може мати одну або дві сторони (англ. sidedefs). Текстури задаються не для відрізків, а для сторін, так що відрізок може бути покритий з різних боків різними текстурами.
Вершини і відрізки утворюють плоский граф; кожна його грань може бути або непрохідним простором (наприклад, колоною), або сектором (англ. sector). Іноді структуру секторів навмисно порушують — на цьому засновані спецефекти на зразок невидимих мостів. Кожен сектор має в плані довільну форму (не обов'язково опуклу або однозв'язну). У сектора завжди горизонтальні підлога зі стелею і постійна освітленість. Односторонні відрізки є глухими стінами, двосторонні — утворюють переходи між секторами.
Щоб забезпечити найвищу на той час інтерактивність, застосовані так звані теги. Відрізок і сектор мають особливе ціле поле — «тег». Щоб зробити вимикач, який опускає ліфт, відрізку-вимикачу задаються код дії «вимикач, опускає ліфт» і який-небудь тег (наприклад, 5). Цей тег присвоюється сектору-ліфта. При активації відрізок буде виконувати вказану дію на всіх секторах з цим тегом.
Нарешті, на рівні розставляються об'єкти (things). При цьому набір характеристик об'єкта в Doom виявився досить бідний: наприклад, не було Z-координати, наземний об'єкт на початку гри завжди стояв на підлозі, а повітряний — висів під стелею. Не можна зробити, щоб об'єкт був тільки в одиночній грі, або тільки в deathmatch, або тільки в кооперативній (був лише прапор «тільки в мережевих іграх»).
Гра
Всі обчислення проводяться з нерухомою комою 16,16, з машинною одиницею, що дорівнює одному текселю (зріст гравця 56 текселів — отже, 1 тексель приблизно дорівнює 3 см). Для кутових величин застосовується нерухома кома, в якій 232 = 360°. Втім, більшість кутових розрахунків були грубіші — наприклад, повороти гравця розраховуються з точністю до 360° = 216 = 65536, а тригонометрична таблиця складалася всього з 8192 (213) величин.
Запис демо-роликів і мережева гра засновані на тому, що на цифровій ЕОМ один і той самий код з однаковими даними призводить до одного і того ж результату, а поведінка цілочисельної арифметики жорстко специфікована і не залежить від моделі процесора. Гра записує демо-ролик (і передає по мережі) команди керування; якщо в грі немає грубих помилок, різні машини, інтерпретуючи одні й ті самі команди керування, отримують однаковий результат. Втім, помилки, що призводять до розсинхронізації, в грі все-таки є: зокрема, якщо в одиночній грі зайти в меню, гра зупиняється, але ролик продовжує писатися. Недолік такого підходу — неможливість перемотати ролик; його можна тільки програти з початку.
В режимі запису демо-роликів точність поворотів знижувалася до 256 на 360 градусів; уважний гравець може помітити, що в режимі демозапису наведення стає грубішим. Це служить виключно для економії пам'яті в демо-роликах.
Кожен ігровий такт (1/35 секунди) гра проводить цикл керування кожним монстром. Щоб заощадити процесорні такти, існує бітова матриця REJECT
: для будь-яких двох секторів, якщо з жодної точки сектора А не видно ніяку точку сектора Б, на цьому місці в матриці ставиться одиниця. Якщо на перетині рядка, що відповідає сектору гравця, і стовпця, відповідного сектору монстра, стоїть 0, проводиться перевірка, чи бачить монстр гравця; якщо 1 — монстр гарантовано не бачить гравця. Матриця REJECT
дуже складна для побудови, і більшість користувацьких редакторів заповнювали її нулями (існувало дуже мало утиліт, які будували її; основні — RMB
і ZENNODE
).
Структура BLOCKMAP
застосовується фізичним рушієм, щоб прискорити перевірку зіткнень об'єктів з відрізками.
Побудова зображення
Для прискорення відображення використовується BSP-дерево (на відміну від в Duke Nukem 3D). Об'єкти зображуються у вигляді спрайтів, на відміну від Quake.
Рушій рекурсивно проходить по BSP-дереву, вимальовуючи стіни від ближніх до дальніх:
функція ПрохідПоДереву(вузол) якщо ОхоплювальнийПрямокутник(вузол) не в конусі видимості то вихід якщо вузол є розвилкою то // вузол є розвилкою - рекурсивно пройти якщо камера ліворуч від січної площини то ПрохідПоДереву(вузол.лівий); ПрохідПоДереву(вузол.правий) інакше ПрохідПоДереву(вузол.правий); ПрохідПоДереву(вузол.лівий) інакше // вузол є підсектором намалювати(вузол)
Тут і задіяні три блоки, що залишились. Сектори розбиваються січними на опуклі елементи, іменовані підсекторами (SSECTORS
), відрізки — на сегменти (SEGS
). Сама структура дерева (охоплювальні прямокутники, січні, вказівники на «синів») зберігається в блоці NODES
. У цьому циклі малюються тільки глухі стіни (тобто, середні текстури для односторонніх стін, і верхні і нижні — для двосторонніх). Об'єкти, підлоги і решітки записуються в окремі масиви і вимальовуються на пізніших стадіях. Масив, у якому зберігаються підлоги, зроблений досить малим, і в самодіяльних конструкторів досить часто траплялося переповнення і вихід з повідомленням «No more visplanes!».
Після того, як вималювано стіни, порядково малюються підлоги, записані у visplanes.
В кожному секторі тримається зв'язаний список об'єктів, які знаходяться в ньому. На етапі вимальовування стін видимі об'єкти разом з точками відсічення складаються в масив. Після того, як рушій намалює підлоги і стелі, масив сортується, і найближчі 128 об'єктів малюються від далеких до ближніх з допомогою тих самих процедур, що використовуються для малювання стін. На цьому ж етапі малюються і решітки («середні» текстури на двосторонніх стінах).
Текстури стін і спрайт зберігаються .WAD-файлі за стовпцями, текстури підлоги і стелі — простий масив 64×64.
Doom для DOS працював у режимі VGA 320×200 з [ru], для Linux — використовував звичайний режим VGA 13h. При цьому величина роздільності була закодована в асемблерних процедурах у двох місцях; версії гри, які використовували змінну роздільність, або мали кілька функцій під різні роздільності, або динамічно модифікували код, підставляючи потрібну роздільність. Втім, у частинах гри, які до рушія не відносяться, зустрічалося вкрай багато магічних чисел, пов'язаних з роздільністю екрану і екранними координатами різних об'єктів, тому перші порти Doom страждали «розповзанням» графіки меню в SVGA-режимах.
Тривале завантаження
Doom відомий своїм тривалим завантаженням (більше хвилини на комп'ютерах свого часу). Основна частина часу витрачалася на ініціалізацію «демона перемальовування Doom» (англ. Init Doom refresh daemon).
Doom поширювався на дискетах і через BBS, тому важливим був кожен байт. Щоб зменшити розмір, зробили такий механізм. Кожна з текстур для стін складалася з фрагментів (англ. patches): наприклад, стіна з вимикачем може складатися з картинки стіни і картинки вимикача, або плиткова стіна — з трьох-чотирьох плиток, хаотично розкиданих по великій текстурою. Текстури, як сказано вище, малюються по стовпцях. Doom проходився по всіх стовпцях всіх текстур і перевіряв, які фрагменти покривають той чи інший стовпець; будувалася відповідна структура даних. Цю структуру можна було закешувати, або будувати при завантаженні рівня, добудовуючи динамічно в міру потреби — в цьому випадку Doom завантажувався б набагато швидше.
Крім того, Doom мав спеціалізований метод кешування даних під назвою «зонна пам'ять». Інструкція радила відключити дискові кеші на зразок [ru] — в Doom є більш ефективний кеш.
Мережевий код
Doom заснований на моделі «рівний з рівним». Як було сказано вище, синхронність гри на всіх машинах забезпечується тим фактом, що один і той самий код з однаковими даними повертає однаковий результат. З кожним пакетом передається «згортка синхронізації» — зазвичай координата одного з гравців; якщо отримана з пакетом згортка не збігається з локально обчисленою, гра припиняє роботу з повідомленням про розсинхронізацію. Ніяких засобів протистояння затримкам передачі немає; якщо середній пінг перевищує 1/35 секунди, сповільнюється реакція гри на керування. Гра може запитувати втрачені пакети і дублювати їх, щоб запити повторної передачі йшли якомога рідше. Входу в розпочату гру немає.
Підтримка того чи іншого мережевого протоколу не включена в Doom. Для того, щоб запустити гру по мережі, гравці викликають зовнішню програму — мережевий драйвер, який налагоджує зв'язок між машинами і викликає .EXE-файл Doom. Така конструкція дозволяє писати зовнішні драйвери для інших мережевих протоколів — або програми запуску Doom по мережі, більш зручні, ніж наявні.
Кожен з гравців має свій колір: перший — зелений, другий сірий, третій — коричневий, четвертий — червоний. Номери гравців (і, відповідно, кольору) роздаються мережевим драйвером, а не грою. У грі IPX через програму IPXSETUP
кольори, що надаються гравцям, залежать від MAC-адрес мережевих плат, в грі через модему або кабель через SERSETUP
— від випадкових факторів.
Цікавою недокументованою функцією версій 1.0 і 1.1 була одиночна гра на тримоніторній системі: один показує те, що спереду від гравця, другий — те, що ліворуч, третій — те, що праворуч. Оскільки відеоплат з можливістю приєднувати таку кількість моніторів на той час не існувало, для такої гри потрібні були три комп'ютери, з'єднані мережею. Втім, ця функція існувала лише в зародку: щоб завантажитися з збереження, потрібно на всіх трьох комп'ютерах перезапустити гру.
Список ігор, що використовують Doom engine
Рушій Doom продавався іншим компаніям. На ньому було зроблено низку ігор. Серед них:
Назва гри | Дата виходу | Розробник/и | Платформи |
---|---|---|---|
Doom | 1993 | id Software | MS-DOS, Windows, Mac OS, Linux, Acorn Archimedes, SNES, Sega 32X, Sega Saturn, 3DO, PlayStation, Game Boy Advance, Atari Jaguar, Xbox, Xbox 360, PlayStation 3, iOS, Android |
Doom II: Hell on Earth | 1994 | id Software | MS-DOS, Windows, Mac OS, Game Boy Advance, Sega Saturn, [ru], PlayStation, Xbox 360, PlayStation 3, Android |
Heretic | 1994 | Raven Software | PC, PSX,Mac OS, Amiga, GNU/Linux |
1995 | Raven Software | MS-DOS, Mac OS, Linux, PlayStation, Nintendo 64, Sega Saturn | |
Final Doom | 1996 | id Software, Team TNT, брати Касали | MS-DOS, PlayStation, PlayStation 3, Mac OS |
1996 | Rogue Entertainment | MS-DOS, Microsoft Windows, Linux, macOS | |
1996 | [en] | MS-DOS, Microsoft Windows | |
[en] | 1997 | Digital Café | MS-DOS, Microsoft Windows |
Doom 64 | 1997 | Midway Games | Nintendo 64 |
1997 | Banjo Software | MS-DOS, Microsoft Windows | |
[en] | 2001 | [en] | Game Boy Advance |
[en] | 2002 | Graphic State | Game Boy Advance |
Також фанатами гри створювалися користувацькі модифікації, які повністю перетворювали гру. Перша з них — Alien Doom — була зроблена за фільмом «Чужий». Згодом з'явилися модифікації й за іншими фільмами: «Мисливці за привидами», «Бетмен» і «Секретні матеріали».
Відкриття сирцевого коду
У 1994 році відкрили тексти сирців мережевих драйверів. Ентузіасти почали розробляти власні драйвери: наприклад, для LPT-кабелю (PARSETUP
) і навіть для ланцюжка [ru] (HX8
).
У грудні 1997 року повний сирцевий текст Doom для Linux був опублікований під невільною безкоштовною ліцензією (версія для DOS не публікувалася через платну звукову бібліотеку DMX). Вже в січні 1998 року з'явився перший порт цього коду для DOS — DosDoom.
Піонерами розширення Doom були Лі Кіллоу (Boom — розширена версія Doom, в якій були виправлені численні помилки оригінальної гри), Деніс Фабріс і Борис Перейра (Doom Legacy з підтримкою високих роздільностей), а також Брюс Льюїс (, перший порт Doom під OpenGL).
Після півроку розробки поламка жорсткого диска комп'ютера Льюїса поставила хрест на glDoom: резервної копії не було. Через це Кармак переліцензував сирці під GNU General Public License: якби ліцензія не була такою обмежувальною, текст сирців обов'язково знайшовся б у когось. Решта ресурсів так і залишаються платними. Через 12 років сирцевий код знайшовся — у друга, до якого Льюїс ходив з диском.
В Doom було знайдено величезну кількість помилок. Фізичний рушій і рендерер по-різному визначали, є площина «небесною» чи ні: ракета могла вдарити в небо і вибухнути, і навпаки, могла «полетіти», не вибухаючи, через глуху стіну. Монстри застрягали в дверях, а Arch-Vile, воскрешаючи роздавлений труп, одночасно робив його невразливим і здатним проходити через стіни. Зазвичай порти перевіряли версію демо-ролика: помилки вмикалися, якщо ролик записаний вихідною версією гри, і вимикалися, якщо портом. Подібні помилки на деяких користувацьких рівнях були критичні для проходження — тому в Boom і похідних портах їх можна було увімкнути через меню.
Зараз існує кілька десятків розширених версій Doom — від простих до надзвичайно потужних. Вони дозволяють грати з більш високою роздільною здатністю, ніж оригінальний Doom, мають додаткові можливості (огляд вгору-вниз, перехрестя прицілу), а також розширену мережеву гру. Найбільш відомі з цих версій:
- Похідні Boom, наприклад, Smack My Marine Up, prBoom. Мають потужні засоби розробника: скриптова мова FraggleScript, додаткові типи об'єктів, мова редагування властивостей об'єктів (BEX) і т. д. Як правило, у похідних Boom сумісність з вихідною грою гранична — аж до того, що демо-ролики, записані в Doom, під Boom ніколи не розсинхронізовуються.
- Doom Legacy — має якісний інтерфейс, портований на DOS, Windows і Linux. Останні версії обмежено підтримують багатоповерхові лабіринти. Є гра удвох на одній машині двома мишами (для другої, що підключається по COM-порту, в грі є вбудований драйвер). Багато що взято з нині замороженого Smack My Marine Up. Згідно з описом проекту, в ньому ставиться завдання максимально глибокої зворотної сумісності всіх нововведень, тобто можливості повернення до оригіналу шляхом вибору відповідних налаштувань.
- [ru] — на відміну від більшості розширень Doom, які написані на чистому Сі, гра повністю переписана на . Фокусується на мультиплеєрні можливості, реалізоване навіть захоплення прапора. У проекті не ставиться мета глибокої зворотної сумісності, досвідчений гравець відчуває значну різницю з оригіналом в геймплеї буквально відразу ж, але зате багато багів, які використовувалися авторами модифікацій як джерела недокументованих ефектів, можна увімкнути за необхідності з меню. Більше не розробляється, був поглинений GZDoom.
- ZDaemon — порт для мережевої гри. В даний час втрачає свою популярність, поступаючись більш просунутому порту Skulltag. Заснований, у свою чергу, на порті ZDoom.
- GZDoom — порт, заснований на ZDoom. Підтримка OpenGL3D-підлог, динамічного освітлення, розширені можливості редагування вже наявних об'єктів і створення нових, підтримка 3D-моделей. Офіційний сайт GZDoom [1] [ 9 серпня 2019 у Wayback Machine.].
- SkullTag — порт для мережевої гри. Відрізняється більш якісним мережевим кодом і розширеними можливостями. Заснований на портах ZDoom і GZDoom. Підтримує OpenGL.
- jDOOM — переводить Doom на тривимірний рушій: графіка під керуванням OpenGL, тривимірні моделі монстрів, зброї і предметів, присутні ефекти освітлення і огляд миші вгору-вниз, не призводить до «ефекту Єльцина» або «ефекту портрета». Одним словом, jDOOM змінює старий 2,5-вимірний Doom, візуально перетворюючи його в 3D-гру. Проте, jDOOM не можна назвати повноцінною 3D-грою — він не підтримує 3D-підлоги і похилі площини. Можливості мапінгу і моддінгу також слабкі, на рівні звичайного DOOM, тобто значно поступаються іншим портам. Один з головних недоліків jDOOM на поточний момент[] — низька якість аматорських полігональних моделей.
- Risen3D — порт, заснований на jDOOM. Підтримує всі графічні доповнення jDOOM, за твердженнями розробників (Офіційний сайт [2] [ 6 серпня 2019 у Wayback Machine.]), застосовані поліпшені алгоритми OpenGL-візуалізації, швидше і якісніше відображаються текстури високої роздільності і тривимірні моделі. Також підтримуються похилі поверхні і 3D-підлоги. Крім цього, розробниками цього порту була порушена ліцензія GNU GPL у зв'язку з закриттям сирцевих текстів. Ця проблема значно пізніше була врегульована з розробниками jDOOM.
В Doom Legacy, ZDoom і SkullTag присутня можливість гри з ботами.
Менш значущі модифікації коротко перелічені в [en].
Файли даних Doom донині залишаються платними. Для створення повністю вільного -файлу був започаткований проект FreeDoom.
Примітки
- Matthew Fell (15 декабря 1994 года). (англ.). Архів оригіналу (HTML) за 2 квітня 2019. Процитовано 25 серпня 2011.
- Сирцевий Doom Legacy 1.11, 1.12)
- (англ.). DoomWiki.org. Архів оригіналу за 19 серпня 2019. Процитовано 8 квітня 2019.
- (англ.). DoomWiki.org. Архів оригіналу за 19 серпня 2019. Процитовано 8 квітня 2019.
- (англ.). DoomWiki.org. Архів оригіналу за 19 серпня 2019. Процитовано 8 квітня 2019.
- . Архів оригіналу за 8 квітня 2019. Процитовано 8 серпня 2019.
- (англ.). DoomWiki.org. Архів оригіналу за 8 квітня 2019. Процитовано 8 квітня 2019.
- . Архів оригіналу за 24 серпня 2019. Процитовано 8 серпня 2019.
- . Архів оригіналу за 19 серпня 2019. Процитовано 8 серпня 2019.
- . Архів оригіналу за 19 серпня 2019. Процитовано 8 серпня 2019.
- . Архів оригіналу за 15 липня 2019. Процитовано 8 серпня 2019.
- Сирцевий текст Smack My Marine Up
- Сирцевий текст будь-якої версії Doom Legacy для DOS, функція ASM_PatchRowBytes.
- Наприклад, Doom Legacy 1.11, 1.12
- Так чинять у багатьох портах Doom — зокрема, Doom Legacy і Smack My Marine Up; сирцеві тексти обох вільно доступні.
- Doom Wiki — Licenses [ 18 грудня 2018 у Wayback Machine.](англ.)
- . Архів оригіналу за 19 серпня 2019. Процитовано 8 серпня 2019.
- . Архів оригіналу за 6 квітня 2016. Процитовано 8 серпня 2019.
- . Архів оригіналу за 3 квітня 2019. Процитовано 8 серпня 2019.
- . Архів оригіналу за 13 липня 2019. Процитовано 8 серпня 2019.
- . Архів оригіналу за 29 жовтня 2019. Процитовано 8 серпня 2019.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Doom engine rushij Doom takozh vidomij yak id Tech 1 psevdotrivimirnij gralnij rushij rozroblenij amerikanskoyu kompaniyeyu id Software i zastosovuvanij u komp yuternih igrah Doom Heretic ta inshih igrah stvorenih za licenziyeyu Stvorenij Dzhonom Karmakom dopomizhni funkciyi buli napisani en Dzhonom Romero en i angl Paul Radek Spochatku napisanij na komp yuterah NeXT potim dlya pershogo relizu Doom buv portovanij pid DOS a piznishe she na kilka igrovih konsolej i operacijnih sistem id Tech 1Rushij gri Spisok Chastina seriyi rushiyivid TechPoperednij rushij seriyiNastupnij rushij seriyiQuake EngineLicenziyado 1997 roku Komercijne PZ z 1997 roku Vilne PZ licenziya GNU GPLPersha gra na rushiyu 10 12 1993Ostannya gra na rushiyu 31 05 1996Vidminnosti vid Wolfenstein 3D enginePidloga i stelya mozhut mati bud yaku visotu Stini ne obov yazkovo oriyentovani u napryamku pivnich pivden abo zahid shid Zminyuvana osvitlenist sho pidvishuye realistichnist grafiki Lifti dveri sho distancijno vidchinyayutsya steli sho opuskayutsya i pridushuyut shodi sho pidnimayutsya ta inshi ruhomi elementi Personazhi mozhut stribati padati z dahiv i litati po povitryu vtim projti pid vorogom yakij letit abo proletiti zverhu v stribku vse odno nemozhlivo Zvukova pidsistema pidtrimuvala stereozvuk i ru do 8 efektiv odnochasno Personazh pid chas ruhu pogojduvavsya vgoru vniz sho stvorilo bilshu ilyuziyu hodbi u Wolfenstein tochka oglyadu perebuvala na postijnij visoti priblizno na rivni zhivota gravec nemov yihav u invalidnomu vizku Dozvolyalosya hoch i ne zaohochuvalosya pidklyuchennya dodatkovih moduliv ru z rivnyami grafikoyu i zvukami Ideya rozshiryuvanosti pishla vid Dzhona Karmaka yakij sam modifikuvav igri i hotiv shob inshi ce robili ObmezhennyaLabirint maye gorizontalnu pidlogu zi steleyu i vertikalni stini Dvi kimnati ne mozhut znahoditisya odna nad inshoyu Takim chinom karta rivnya ye absolyutno dvovimirnoyi U vsij gri masshtab sprajtiv i tekstur postijnij Tomu napriklad nemozhlivo vstanoviti visokodetalizovanij plakat na mensh detalnij stini Avtori tak i ne propracyuvali vertikalni zitknennya ob yektiv Tomu ne mozhna napriklad probigti pid kakodemonom sho letit abo rozignavshis na yakomus dahu perestribnuti cherez fakel Vipravleno v Heretic i oskilki v nih ce bulo neobhidno cherez magichnu mozhlivist polotu gravcya Gra ne robila j inshih perevirok po osi Z napriklad imp sho blukav u pidvali cilkom mig zavdati poshkodzhennya gravcevi yakij znahoditsya na dekilka soten metriv vishe na gorishi a raketa sho vibuhnula bilya osnovi budivli zavdavala shkodi monstrovi na dahu Gravec mig vikoristovuvati peremikachi nezalezhno vid visoti napriklad vse she mozhna aktivuvati zniklij pid zemleyu vimikach na rivni MAP01 Entryway v Doom 2 Osobliva struktura rivnya tak zvane binarne rozbittya prostoru vimagala zbirannya pered viprobuvannyam rivnya Zbirannya vidbuvayetsya avtomatichno na komp yuterah togo chasu mensh nizh za hvilinu prote ce zavazhalo pereglyadati riven v realnomu chasi pryamo po hodu redaguvannya na vidminu vid Build Engine Do togo zh dvijkove rozbittya dililo stini na vidrizki angl segs ce uskladnyuvalo geometriyu rivnya Duke Nukem 3D versiyi 1 3 uspishno pracyuvav na komp yuterah klasu Pentium 100 na rozdilnosti 640 480 zhoden port Doom ne zdatnij na take Cherez ce ruh ob yektiv mozhlivij ale po gorizontalnij ploshini ruh obmezheno na vidminu vid Build Engine Visota teksturi yaksho ta povtoryuyetsya po vertikali povinna zavzhdi dorivnyuvati 128 tekselyam Dlya nepovtoryuvanih tekstur shabliv grat i t d ce ne potribno Vipravleno v chislennih portah Doom Pereglyad vgoru vniz realizovanij v Heretic buv psevdotrivimirnim vertikalni liniyi zavzhdi zalishalisya vertikalnimi Tehnichni osoblivostiRushij buv napisanij na Si na robochih stanciyah NeXT v operacijnij sistemi NEXTSTEP Spochatku vikoristovuvavsya kompilyator Intel C ale v podalshomu buv vikoristanij ru Utiliti buli napisani pid NeXT na Objective C Rushij Doom buv progresivnim dlya svogo chasu Nezvazhayuchi na te sho Si mova procedurnogo programuvannya rushij Doom napisanij v yavno virazhenomu ob yektnomu stili Budova rivniv Riven u redaktori Vsi rivni v Doom naspravdi dvovimirni sho vkazuye na odne z obmezhen rushiya nemozhlivo mati kimnatu sektor nad inshoyu kimnatoyu Odnak z inshogo boku ce dozvolyaye bez osoblivih problem malyuvati kartu rivnya z vidobrazhennyam vsih stin i ob yektiv na vidminu vid inshih igor cogo zhanru Riven skladayetsya z desyati blokiv WAD fajla z nih p yat VERTEXES LINEDEFS SIDEDEFS SEKTORIV i THINGS bezposeredno redaguyutsya koristuvachem she p yat SEGS SSECTORS NODES REJECT i BLOCKMAP obchislyuyutsya BSP pobudovnikom Rivni buduyutsya za subtraktivnim principom ves prostir zapovnenij neprohidnoyu materiyeyu i avtor rivnya prorubuye v cij materiyi tuneli Osnovoyu rivnya ye vershini angl vertices tochki u ploskomu prostori Mizh vershinami provodyatsya vidrizki angl linedefs Vidrizok mozhe mati odnu abo dvi storoni angl sidedefs Teksturi zadayutsya ne dlya vidrizkiv a dlya storin tak sho vidrizok mozhe buti pokritij z riznih bokiv riznimi teksturami Vershini i vidrizki utvoryuyut ploskij graf kozhna jogo gran mozhe buti abo neprohidnim prostorom napriklad kolonoyu abo sektorom angl sector Inodi strukturu sektoriv navmisno porushuyut na comu zasnovani specefekti na zrazok nevidimih mostiv Kozhen sektor maye v plani dovilnu formu ne obov yazkovo opuklu abo odnozv yaznu U sektora zavzhdi gorizontalni pidloga zi steleyu i postijna osvitlenist Odnostoronni vidrizki ye gluhimi stinami dvostoronni utvoryuyut perehodi mizh sektorami Shob zabezpechiti najvishu na toj chas interaktivnist zastosovani tak zvani tegi Vidrizok i sektor mayut osoblive cile pole teg Shob zrobiti vimikach yakij opuskaye lift vidrizku vimikachu zadayutsya kod diyi vimikach opuskaye lift i yakij nebud teg napriklad 5 Cej teg prisvoyuyetsya sektoru lifta Pri aktivaciyi vidrizok bude vikonuvati vkazanu diyu na vsih sektorah z cim tegom Nareshti na rivni rozstavlyayutsya ob yekti things Pri comu nabir harakteristik ob yekta v Doom viyavivsya dosit bidnij napriklad ne bulo Z koordinati nazemnij ob yekt na pochatku gri zavzhdi stoyav na pidlozi a povitryanij visiv pid steleyu Ne mozhna zrobiti shob ob yekt buv tilki v odinochnij gri abo tilki v deathmatch abo tilki v kooperativnij buv lishe prapor tilki v merezhevih igrah Gra Vsi obchislennya provodyatsya z neruhomoyu komoyu 16 16 z mashinnoyu odiniceyu sho dorivnyuye odnomu tekselyu zrist gravcya 56 tekseliv otzhe 1 teksel priblizno dorivnyuye 3 sm Dlya kutovih velichin zastosovuyetsya neruhoma koma v yakij 232 360 Vtim bilshist kutovih rozrahunkiv buli grubishi napriklad povoroti gravcya rozrahovuyutsya z tochnistyu do 360 216 65536 a trigonometrichna tablicya skladalasya vsogo z 8192 213 velichin Zapis demo rolikiv i merezheva gra zasnovani na tomu sho na cifrovij EOM odin i toj samij kod z odnakovimi danimi prizvodit do odnogo i togo zh rezultatu a povedinka cilochiselnoyi arifmetiki zhorstko specifikovana i ne zalezhit vid modeli procesora Gra zapisuye demo rolik i peredaye po merezhi komandi keruvannya yaksho v gri nemaye grubih pomilok rizni mashini interpretuyuchi odni j ti sami komandi keruvannya otrimuyut odnakovij rezultat Vtim pomilki sho prizvodyat do rozsinhronizaciyi v gri vse taki ye zokrema yaksho v odinochnij gri zajti v menyu gra zupinyayetsya ale rolik prodovzhuye pisatisya Nedolik takogo pidhodu nemozhlivist peremotati rolik jogo mozhna tilki prograti z pochatku V rezhimi zapisu demo rolikiv tochnist povorotiv znizhuvalasya do 256 na 360 gradusiv uvazhnij gravec mozhe pomititi sho v rezhimi demozapisu navedennya staye grubishim Ce sluzhit viklyuchno dlya ekonomiyi pam yati v demo rolikah Kozhen igrovij takt 1 35 sekundi gra provodit cikl keruvannya kozhnim monstrom Shob zaoshaditi procesorni takti isnuye bitova matricya REJECT dlya bud yakih dvoh sektoriv yaksho z zhodnoyi tochki sektora A ne vidno niyaku tochku sektora B na comu misci v matrici stavitsya odinicya Yaksho na peretini ryadka sho vidpovidaye sektoru gravcya i stovpcya vidpovidnogo sektoru monstra stoyit 0 provoditsya perevirka chi bachit monstr gravcya yaksho 1 monstr garantovano ne bachit gravcya Matricya REJECT duzhe skladna dlya pobudovi i bilshist koristuvackih redaktoriv zapovnyuvali yiyi nulyami isnuvalo duzhe malo utilit yaki buduvali yiyi osnovni RMB i ZENNODE Struktura BLOCKMAP zastosovuyetsya fizichnim rushiyem shob priskoriti perevirku zitknen ob yektiv z vidrizkami Pobudova zobrazhennya Dlya priskorennya vidobrazhennya vikoristovuyetsya BSP derevo na vidminu vid v Duke Nukem 3D Ob yekti zobrazhuyutsya u viglyadi sprajtiv na vidminu vid Quake Rushij rekursivno prohodit po BSP derevu vimalovuyuchi stini vid blizhnih do dalnih funkciya ProhidPoDerevu vuzol yaksho OhoplyuvalnijPryamokutnik vuzol ne v konusi vidimosti to vihid yaksho vuzol ye rozvilkoyu to vuzol ye rozvilkoyu rekursivno projti yaksho kamera livoruch vid sichnoyi ploshini to ProhidPoDerevu vuzol livij ProhidPoDerevu vuzol pravij inakshe ProhidPoDerevu vuzol pravij ProhidPoDerevu vuzol livij inakshe vuzol ye pidsektorom namalyuvati vuzol Tut i zadiyani tri bloki sho zalishilis Sektori rozbivayutsya sichnimi na opukli elementi imenovani pidsektorami SSECTORS vidrizki na segmenti SEGS Sama struktura dereva ohoplyuvalni pryamokutniki sichni vkazivniki na siniv zberigayetsya v bloci NODES U comu cikli malyuyutsya tilki gluhi stini tobto seredni teksturi dlya odnostoronnih stin i verhni i nizhni dlya dvostoronnih Ob yekti pidlogi i reshitki zapisuyutsya v okremi masivi i vimalovuyutsya na piznishih stadiyah Masiv u yakomu zberigayutsya pidlogi zroblenij dosit malim i v samodiyalnih konstruktoriv dosit chasto traplyalosya perepovnennya i vihid z povidomlennyam No more visplanes Pislya togo yak vimalyuvano stini poryadkovo malyuyutsya pidlogi zapisani u visplanes V kozhnomu sektori trimayetsya zv yazanij spisok ob yektiv yaki znahodyatsya v nomu Na etapi vimalovuvannya stin vidimi ob yekti razom z tochkami vidsichennya skladayutsya v masiv Pislya togo yak rushij namalyuye pidlogi i steli masiv sortuyetsya i najblizhchi 128 ob yektiv malyuyutsya vid dalekih do blizhnih z dopomogoyu tih samih procedur sho vikoristovuyutsya dlya malyuvannya stin Na comu zh etapi malyuyutsya i reshitki seredni teksturi na dvostoronnih stinah Teksturi stin i sprajt zberigayutsya WAD fajli za stovpcyami teksturi pidlogi i steli prostij masiv 64 64 Doom dlya DOS pracyuvav u rezhimi VGA 320 200 z ru dlya Linux vikoristovuvav zvichajnij rezhim VGA 13h Pri comu velichina rozdilnosti bula zakodovana v asemblernih procedurah u dvoh miscyah versiyi gri yaki vikoristovuvali zminnu rozdilnist abo mali kilka funkcij pid rizni rozdilnosti abo dinamichno modifikuvali kod pidstavlyayuchi potribnu rozdilnist Vtim u chastinah gri yaki do rushiya ne vidnosyatsya zustrichalosya vkraj bagato magichnih chisel pov yazanih z rozdilnistyu ekranu i ekrannimi koordinatami riznih ob yektiv tomu pershi porti Doom strazhdali rozpovzannyam grafiki menyu v SVGA rezhimah Trivale zavantazhennya Doom vidomij svoyim trivalim zavantazhennyam bilshe hvilini na komp yuterah svogo chasu Osnovna chastina chasu vitrachalasya na inicializaciyu demona peremalovuvannya Doom angl Init Doom refresh daemon Doom poshiryuvavsya na disketah i cherez BBS tomu vazhlivim buv kozhen bajt Shob zmenshiti rozmir zrobili takij mehanizm Kozhna z tekstur dlya stin skladalasya z fragmentiv angl patches napriklad stina z vimikachem mozhe skladatisya z kartinki stini i kartinki vimikacha abo plitkova stina z troh chotiroh plitok haotichno rozkidanih po velikij teksturoyu Teksturi yak skazano vishe malyuyutsya po stovpcyah Doom prohodivsya po vsih stovpcyah vsih tekstur i pereviryav yaki fragmenti pokrivayut toj chi inshij stovpec buduvalasya vidpovidna struktura danih Cyu strukturu mozhna bulo zakeshuvati abo buduvati pri zavantazhenni rivnya dobudovuyuchi dinamichno v miru potrebi v comu vipadku Doom zavantazhuvavsya b nabagato shvidshe Krim togo Doom mav specializovanij metod keshuvannya danih pid nazvoyu zonna pam yat Instrukciya radila vidklyuchiti diskovi keshi na zrazok ru v Doom ye bilsh efektivnij kesh Merezhevij kod Doom zasnovanij na modeli rivnij z rivnim Yak bulo skazano vishe sinhronnist gri na vsih mashinah zabezpechuyetsya tim faktom sho odin i toj samij kod z odnakovimi danimi povertaye odnakovij rezultat Z kozhnim paketom peredayetsya zgortka sinhronizaciyi zazvichaj koordinata odnogo z gravciv yaksho otrimana z paketom zgortka ne zbigayetsya z lokalno obchislenoyu gra pripinyaye robotu z povidomlennyam pro rozsinhronizaciyu Niyakih zasobiv protistoyannya zatrimkam peredachi nemaye yaksho serednij ping perevishuye 1 35 sekundi spovilnyuyetsya reakciya gri na keruvannya Gra mozhe zapituvati vtracheni paketi i dublyuvati yih shob zapiti povtornoyi peredachi jshli yakomoga ridshe Vhodu v rozpochatu gru nemaye Pidtrimka togo chi inshogo merezhevogo protokolu ne vklyuchena v Doom Dlya togo shob zapustiti gru po merezhi gravci viklikayut zovnishnyu programu merezhevij drajver yakij nalagodzhuye zv yazok mizh mashinami i viklikaye EXE fajl Doom Taka konstrukciya dozvolyaye pisati zovnishni drajveri dlya inshih merezhevih protokoliv abo programi zapusku Doom po merezhi bilsh zruchni nizh nayavni Kozhen z gravciv maye svij kolir pershij zelenij drugij sirij tretij korichnevij chetvertij chervonij Nomeri gravciv i vidpovidno koloru rozdayutsya merezhevim drajverom a ne groyu U gri IPX cherez programu IPXSETUP kolori sho nadayutsya gravcyam zalezhat vid MAC adres merezhevih plat v gri cherez modemu abo kabel cherez SERSETUP vid vipadkovih faktoriv Cikavoyu nedokumentovanoyu funkciyeyu versij 1 0 i 1 1 bula odinochna gra na trimonitornij sistemi odin pokazuye te sho speredu vid gravcya drugij te sho livoruch tretij te sho pravoruch Oskilki videoplat z mozhlivistyu priyednuvati taku kilkist monitoriv na toj chas ne isnuvalo dlya takoyi gri potribni buli tri komp yuteri z yednani merezheyu Vtim cya funkciya isnuvala lishe v zarodku shob zavantazhitisya z zberezhennya potribno na vsih troh komp yuterah perezapustiti gru Spisok igor sho vikoristovuyut Doom engineRushij Doom prodavavsya inshim kompaniyam Na nomu bulo zrobleno nizku igor Sered nih Nazva gri Data vihodu Rozrobnik i Platformi Doom 1993 id Software MS DOS Windows Mac OS Linux Acorn Archimedes SNES Sega 32X Sega Saturn 3DO PlayStation Game Boy Advance Atari Jaguar Xbox Xbox 360 PlayStation 3 iOS Android Doom II Hell on Earth 1994 id Software MS DOS Windows Mac OS Game Boy Advance Sega Saturn ru PlayStation Xbox 360 PlayStation 3 Android Heretic 1994 Raven Software PC PSX Mac OS Amiga GNU Linux 1995 Raven Software MS DOS Mac OS Linux PlayStation Nintendo 64 Sega Saturn Final Doom 1996 id Software Team TNT brati Kasali MS DOS PlayStation PlayStation 3 Mac OS 1996 Rogue Entertainment MS DOS Microsoft Windows Linux macOS 1996 en MS DOS Microsoft Windows en 1997 Digital Cafe MS DOS Microsoft Windows Doom 64 1997 Midway Games Nintendo 64 1997 Banjo Software MS DOS Microsoft Windows en 2001 en Game Boy Advance en 2002 Graphic State Game Boy Advance Takozh fanatami gri stvoryuvalisya koristuvacki modifikaciyi yaki povnistyu peretvoryuvali gru Persha z nih Alien Doom bula zroblena za filmom Chuzhij Zgodom z yavilisya modifikaciyi j za inshimi filmami Mislivci za prividami Betmen i Sekretni materiali Vidkrittya sircevogo koduU 1994 roci vidkrili teksti sirciv merezhevih drajveriv Entuziasti pochali rozroblyati vlasni drajveri napriklad dlya LPT kabelyu PARSETUP i navit dlya lancyuzhka ru HX8 U grudni 1997 roku povnij sircevij tekst Doom dlya Linux buv opublikovanij pid nevilnoyu bezkoshtovnoyu licenziyeyu versiya dlya DOS ne publikuvalasya cherez platnu zvukovu biblioteku DMX Vzhe v sichni 1998 roku z yavivsya pershij port cogo kodu dlya DOS DosDoom Pionerami rozshirennya Doom buli Li Killou Boom rozshirena versiya Doom v yakij buli vipravleni chislenni pomilki originalnoyi gri Denis Fabris i Boris Perejra Doom Legacy z pidtrimkoyu visokih rozdilnostej a takozh Bryus Lyuyis pershij port Doom pid OpenGL Pislya pivroku rozrobki polamka zhorstkogo diska komp yutera Lyuyisa postavila hrest na glDoom rezervnoyi kopiyi ne bulo Cherez ce Karmak perelicenzuvav sirci pid GNU General Public License yakbi licenziya ne bula takoyu obmezhuvalnoyu tekst sirciv obov yazkovo znajshovsya b u kogos Reshta resursiv tak i zalishayutsya platnimi Cherez 12 rokiv sircevij kod znajshovsya u druga do yakogo Lyuyis hodiv z diskom V Doom bulo znajdeno velicheznu kilkist pomilok Fizichnij rushij i renderer po riznomu viznachali ye ploshina nebesnoyu chi ni raketa mogla vdariti v nebo i vibuhnuti i navpaki mogla poletiti ne vibuhayuchi cherez gluhu stinu Monstri zastryagali v dveryah a Arch Vile voskreshayuchi rozdavlenij trup odnochasno robiv jogo nevrazlivim i zdatnim prohoditi cherez stini Zazvichaj porti pereviryali versiyu demo rolika pomilki vmikalisya yaksho rolik zapisanij vihidnoyu versiyeyu gri i vimikalisya yaksho portom Podibni pomilki na deyakih koristuvackih rivnyah buli kritichni dlya prohodzhennya tomu v Boom i pohidnih portah yih mozhna bulo uvimknuti cherez menyu Zaraz isnuye kilka desyatkiv rozshirenih versij Doom vid prostih do nadzvichajno potuzhnih Voni dozvolyayut grati z bilsh visokoyu rozdilnoyu zdatnistyu nizh originalnij Doom mayut dodatkovi mozhlivosti oglyad vgoru vniz perehrestya pricilu a takozh rozshirenu merezhevu gru Najbilsh vidomi z cih versij Pohidni Boom napriklad Smack My Marine Up prBoom Mayut potuzhni zasobi rozrobnika skriptova mova FraggleScript dodatkovi tipi ob yektiv mova redaguvannya vlastivostej ob yektiv BEX i t d Yak pravilo u pohidnih Boom sumisnist z vihidnoyu groyu granichna azh do togo sho demo roliki zapisani v Doom pid Boom nikoli ne rozsinhronizovuyutsya Doom Legacy maye yakisnij interfejs portovanij na DOS Windows i Linux Ostanni versiyi obmezheno pidtrimuyut bagatopoverhovi labirinti Ye gra udvoh na odnij mashini dvoma mishami dlya drugoyi sho pidklyuchayetsya po COM portu v gri ye vbudovanij drajver Bagato sho vzyato z nini zamorozhenogo Smack My Marine Up Zgidno z opisom proektu v nomu stavitsya zavdannya maksimalno glibokoyi zvorotnoyi sumisnosti vsih novovveden tobto mozhlivosti povernennya do originalu shlyahom viboru vidpovidnih nalashtuvan ru na vidminu vid bilshosti rozshiren Doom yaki napisani na chistomu Si gra povnistyu perepisana na C Fokusuyetsya na multipleyerni mozhlivosti realizovane navit zahoplennya prapora U proekti ne stavitsya meta glibokoyi zvorotnoyi sumisnosti dosvidchenij gravec vidchuvaye znachnu riznicyu z originalom v gejmpleyi bukvalno vidrazu zh ale zate bagato bagiv yaki vikoristovuvalisya avtorami modifikacij yak dzherela nedokumentovanih efektiv mozhna uvimknuti za neobhidnosti z menyu Bilshe ne rozroblyayetsya buv poglinenij GZDoom ZDaemon port dlya merezhevoyi gri V danij chas vtrachaye svoyu populyarnist postupayuchis bilsh prosunutomu portu Skulltag Zasnovanij u svoyu chergu na porti ZDoom GZDoom port zasnovanij na ZDoom Pidtrimka OpenGL3D pidlog dinamichnogo osvitlennya rozshireni mozhlivosti redaguvannya vzhe nayavnih ob yektiv i stvorennya novih pidtrimka 3D modelej Oficijnij sajt GZDoom 1 9 serpnya 2019 u Wayback Machine SkullTag port dlya merezhevoyi gri Vidriznyayetsya bilsh yakisnim merezhevim kodom i rozshirenimi mozhlivostyami Zasnovanij na portah ZDoom i GZDoom Pidtrimuye OpenGL jDOOM perevodit Doom na trivimirnij rushij grafika pid keruvannyam OpenGL trivimirni modeli monstriv zbroyi i predmetiv prisutni efekti osvitlennya i oglyad mishi vgoru vniz ne prizvodit do efektu Yelcina abo efektu portreta Odnim slovom jDOOM zminyuye starij 2 5 vimirnij Doom vizualno peretvoryuyuchi jogo v 3D gru Prote jDOOM ne mozhna nazvati povnocinnoyu 3D groyu vin ne pidtrimuye 3D pidlogi i pohili ploshini Mozhlivosti mapingu i moddingu takozh slabki na rivni zvichajnogo DOOM tobto znachno postupayutsya inshim portam Odin z golovnih nedolikiv jDOOM na potochnij moment koli nizka yakist amatorskih poligonalnih modelej Risen3D port zasnovanij na jDOOM Pidtrimuye vsi grafichni dopovnennya jDOOM za tverdzhennyami rozrobnikiv Oficijnij sajt 2 6 serpnya 2019 u Wayback Machine zastosovani polipsheni algoritmi OpenGL vizualizaciyi shvidshe i yakisnishe vidobrazhayutsya teksturi visokoyi rozdilnosti i trivimirni modeli Takozh pidtrimuyutsya pohili poverhni i 3D pidlogi Krim cogo rozrobnikami cogo portu bula porushena licenziya GNU GPL u zv yazku z zakrittyam sircevih tekstiv Cya problema znachno piznishe bula vregulovana z rozrobnikami jDOOM V Doom Legacy ZDoom i SkullTag prisutnya mozhlivist gri z botami Mensh znachushi modifikaciyi korotko perelicheni v en Fajli danih Doom donini zalishayutsya platnimi Dlya stvorennya povnistyu vilnogo fajlu buv zapochatkovanij proekt FreeDoom PrimitkiMatthew Fell 15 dekabrya 1994 goda angl Arhiv originalu HTML za 2 kvitnya 2019 Procitovano 25 serpnya 2011 Sircevij Doom Legacy 1 11 1 12 angl DoomWiki org Arhiv originalu za 19 serpnya 2019 Procitovano 8 kvitnya 2019 angl DoomWiki org Arhiv originalu za 19 serpnya 2019 Procitovano 8 kvitnya 2019 angl DoomWiki org Arhiv originalu za 19 serpnya 2019 Procitovano 8 kvitnya 2019 Arhiv originalu za 8 kvitnya 2019 Procitovano 8 serpnya 2019 angl DoomWiki org Arhiv originalu za 8 kvitnya 2019 Procitovano 8 kvitnya 2019 Arhiv originalu za 24 serpnya 2019 Procitovano 8 serpnya 2019 Arhiv originalu za 19 serpnya 2019 Procitovano 8 serpnya 2019 Arhiv originalu za 19 serpnya 2019 Procitovano 8 serpnya 2019 Arhiv originalu za 15 lipnya 2019 Procitovano 8 serpnya 2019 Sircevij tekst Smack My Marine Up Sircevij tekst bud yakoyi versiyi Doom Legacy dlya DOS funkciya ASM PatchRowBytes Napriklad Doom Legacy 1 11 1 12 Tak chinyat u bagatoh portah Doom zokrema Doom Legacy i Smack My Marine Up sircevi teksti oboh vilno dostupni Doom Wiki Licenses 18 grudnya 2018 u Wayback Machine angl Arhiv originalu za 19 serpnya 2019 Procitovano 8 serpnya 2019 Arhiv originalu za 6 kvitnya 2016 Procitovano 8 serpnya 2019 Arhiv originalu za 3 kvitnya 2019 Procitovano 8 serpnya 2019 Arhiv originalu za 13 lipnya 2019 Procitovano 8 serpnya 2019 Arhiv originalu za 29 zhovtnya 2019 Procitovano 8 serpnya 2019