История, рассказанная в играх: как начинался Doom

23.08.2018     

Игровой турнир QuakeCon-2018 в Далласе порадовал игроманов трейлером нового шутера Doom:Eternal от id Software. Вспоминаем, с чего начинался путь компании-разработчика компьютерных игр к знаменитой «стрелялке».

Id Software первой реализовала эффект присутствия для игроков, дорисовав руку персонажа в нижней части экрана. Их самыми успешными проектами являются Wolfenstein, Doom и Quake, которые отражают историю развития игровой графики. Локализацией и адаптацией Wolfenstein RPG и Enemy Territory: Quake в России занималась компания «1С-СофтКлаб».

Серия Commander Keen

Первая часть сайд-скроллера Commander Keen вышла в 1990 году, тираж составил 30 тысяч копий.

Сайд-скроллер — видеоигра, в которой игровой процесс происходит с боковой точки зрения. На экране объекты как правило движутся слева направо.

Для ее создания разработчики придумали, как не перерисовывать весь фон в каждом кадре игры, чтобы не замедлять ее работу. В id Software заметили, что движение игрока происходит постепенно, поэтому кадр смещается незначительно и включает уже отрисованное изображение.

 

Принцип работы движка для Commander Keen

 

Во время создания игры Commander Keen в видеопамяти сохранили фон из отдельных графических объектов – тайлов, но на экран выводили только его часть. Когда игрок перемещался, вместе с ним смещалась граница фона, включая в себя ранее «спрятанные» тайлы. Даже когда персонаж приближался к внешней стороне границы, движок добавлял только небольшую полоску новых тайлов, но большая часть изображения копировалась, оставаясь неизменной.

Разработчикам помогли в этом и особенности тогда новой графической карты Enhanced Graphics Adapter (EGA). Она обладала большей встроенной памятью, указывая на различные адреса которой карта могла «выбирать» изображение для передачи и оперативно перемещать данные внутри видеопамяти. Так решалась проблема прерывистой и низкоскоростной графики.

Wolfenstein 3D

Перед созданием Wolfenstein создатели долго экспериментировали с 3D-графикой. Обычно для создания трехмерного изображения квадратные тайлы заменяли полигонами-многоугольниками: минимальной поверхностью для визуализации в трехмерной графике, которая формирует пространство вокруг игрока. Но и здесь встала проблема отрисовки поверхностей для каждого кадра, негативно влиявшая на качество игры.

Один из основателей id Software Джон Кармак создал программу, которая будет рисовать только трапеции: именно такую форму имеют стены в трехмерном пространстве. Кроме того, он упростил систему трассировки лучей. При трассировке лучей компьютер отрисовывает сцены, проводя разноцветные линии из точки местонахождения игрока в направлении его взгляда. Когда линия сталкивается с поверхностью, соответствующий ей пиксель на экране окрашивается в нужный цвет.

Упрощенный принцип трассировки лучей id Software

 

Но таких линий нужно очень много. Чтобы упростить задачу, Кармак сделал все стены в трехмерном пространстве одной высоты. Это уменьшило количество линий, необходимых для трассировки, поскольку теперь они испускались только в горизонтальной плоскости и масштабировали видимую высоту стены согласно ее удаленности от игрока. Конечное изображение получалось в 3D, но требовало для этого гораздо меньше «усилий» со стороны игрового движка.

Игра стала настолько быстрой, что Intel, желая подчеркнуть скорость нового процессора, демонстрировали его работу на примере Wolfenstein. Игроки же получили приятные бонусы, и смогли дополнять Wolfenstein собственными уровнями и графикой.

Doom

Бесплатная версия игры Doom появилась на ftp-сервере университета Висконсина. Она включала только один эпизод, но он обещал игрокам непрерывный экшен и динамичные уровни. Особенно искушенных игроманов привлекали арсеналом необычного оружия и мрачной атмосферой.

Специально для Doom специалисты id Software разработали псевдотрехмерный игровой движок – id Tech 1 или Doom engine. От движка для Wolfenstein 3D он отличается целым рядом параметров. В игре отрисовали тени: отдаленные объекты затемнялись, а приближенные были ярче, чтобы создать атмосферу погружения. В Wolfenstein таких цветовых вариантов не было. Появились движущиеся элементы обстановки: лифты, дистанционно открывающиеся двери и потолки, придавливающие персонажа игры. Самому главному герою добавили правдоподобности: во время перемещения он покачивался вверх-вниз, имитируя ходьбу.

Псевдотрехмерная графика подразумевает, что игрок может передвигаться во всех трех плоскостях и находится как будто в 3D-мире. На самом деле, это не так: уровни состоят из отдельных комнат-секторов с различной высотой пола и потолка, при этом одна комната не может находиться над другой. Подавляющее число предметов и противники игрока – не объемные фигуры, а спрайтовая анимация, когда неподвижные двумерные картинки – спрайты – быстро сменяют одна другую. 

Из-за отсутствия проверок по оси Z игроки несли урон: монстры могли нанести урон персонажам на крыше, находясь в подвале. Так же и игроки: брошенная в основание здания граната убивала противника на чердаке.

Релиз игры состоялся в декабре 1993 года, а второй части – в октябре 1994 года. В сиквеле культовой игры геймеры получили больше оружия, новые уровни (игра насчитывает 30 уровней), но движок остался прежним. Id Software продала 1,5 млн копий Doom II, по 50 долларов за каждую.

 

Кадр из игры Doom 1996


Quake

Релиз Quake состоялся в 1996 году. Игра по сюжету схожа с Doom: безымянный солдат продолжает воевать с монстрами, попадает на территорию врага и борется с ними там. Игроки проходят уровни, разыскивают ключи, собирают аптечки и боеприпасы.

Но при этом создатели игры обратились к передовым графическим технологиям, использовав для Quake трехмерный движок Quake engine. Разработка команды id Software стала одним из первых движков, который способен в реальном времени полностью обрабатывать 3D-графику. Для этого движок использует систему BSP-деревьев, которая сортирует визуальные объекты в порядке их удаления от наблюдателя и обнаруживает пересечение между собой двух или более объектов. 

BSP (binary space partitioning) – двоичное разбиение пространства, способ разделения области на более мелкие части. Система стала популярной среди разработчиков после того, как ее использовали в играх Doom (для двухмерной графики) и Quake (для трехмерной).

Id Software поощряла желание геймеров самостоятельно изменять игру. Архитектура Quake создана открытой, чтобы разработчики могли вносить модификации, некоторые из которых меняли игру до неузнаваемости, вплоть до локаций и персонажей. 

Quake II 

Quake II вышел в декабре 1997 года. Специально для игры Джон Кармак разработал отдельный движок: id Tech 2 – дальнейшее развитие Quake engine. От предыдущей версии ему достались наработки: Quake World (многопользовательский компонент) и WinQuake, адаптировавшая игру под Windows 95.

В id Tech 2 впервые реализовали поддержку ускорителей графики OpenGL: на базовом уровне это документ, который описывает набор функций и их точное поведение. Но при реализации спецификация призвана оптимизировать работу и эффективнее использовать возможности оборудования. Но поддержку ускорителей включили лишь для нескольких видеокарт: 3dfx Voodoo, nVidia RIVA TNT, ATI RagePro.

Кроме того, id Software почти одновременно с релизом игры издала исходный код библиотеки игры. Это позволило модифицировать игру сторонним авторам. Закрытым создатели оставили исходный код клиентской части и серверного ядра, чтобы нельзя было добавить, например, графические эффекты. 

Разработчики модификаций остались недовольны: оказался недоступен режим просмотра глазами другого игрока. Проблему решили спустя несколько лет в Quake III, добавив дополнительную клиентскую библиотеку игры. Ее исходный код оставался открытым вместе с серверной библиотекой. 

Несмотря на сходство оружия и обстановки, назвать игру продолжением Quake нельзя: враги и сюжетная линия в Quake II другие. Изначально разработчики планировали дать шутеру другое название, но все выбранные варианты оказались заняты. 

 

Кадр из игры Quake 1993

 

Quake III 

В 1999 году разработчики id Software смогли развернуть сетевой потенциал игры вовсю мощь. В игре Quake III Arena игроки сосредоточены на сетевых схватках. Современный по меркам того времени движок id Tech 3 позволял модифицировать игру: прежде всего, геймерам упростили проведение чемпионатов. 

Для этой игры Кармак написал движок id Tech 3: он не базируется на предыдущей версии. Спустя несколько лет коммерческого использования разработчики открыли исходный код id Tech 3, как делали это для предыдущих движков.

Новинкой в id Tech 3 стало использование трехмерных моделей формата MD3. Этот формат использует вертексную анимацию, которая позволяет записывать любые изменения геометрии трехмерного объекта. Персонажи в MD3 состоят из нескольких скрепленных друг с другом частей, двигающихся независимо друг от друга. Тогда как предыдущие движки id Software использовали скелетную анимацию, когда в древообразной структуре костей персонажа каждая последующая кость повторяет движения и повороты предыдущей.

Движок id Tech 3 может работать с несколькими видами теней: самой простой – капельной тенью, непрозрачной черной с резкими краями и полупрозрачной. В зависимости от того, как освещается объект.

В 2000 году компания выпустила официальное дополнение к игре, куда добавила новые виды оружия и модели. Но ожидаемой популярности новинка не получила: id Software запоздала с модификациями, за это время в игре прижились моды сторонних разработчиков.

Джон Кармак говорит о многолетней работе id Software над играми так: «На этом пути были критически важные точки развития. Сначала переход к виду от первого лица, потом произвольные 3D-миры, затем — аппаратное ускорение… Но с важнейшими задачами мы справились. Мы можем усовершенствовать качество, спецэффекты и всё подобное. Но у нас уже есть фундаментальные инструменты, необходимые для создания игр, являющихся симуляцией мира».

Продолжение следует. 


Автор:
Сергей Кравченко Обозреватель


В какую из этих игр вы играли?


Quake III (78.57%, 55 голосов)
78.57%
Doom II (60%, 42 голосов)
60%
Quake II (54.29%, 38 голосов)
54.29%
Quake (45.71%, 32 голосов)
45.71%
Doom III (45.71%, 32 голосов)
45.71%
Doom (1993) (42.86%, 30 голосов)
42.86%
Wolfenstein 3D (35.71%, 25 голосов)
35.71%
Doom (2016) (25.71%, 18 голосов)
25.71%
Commander Keen (1.43%, 1 голосов)
1.43%

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user774630 23.08.18 13:25 Сейчас в теме
Активно играл в первый Quake несколько лет (98-00 гг.) И спустя годы считаю, что лучше бы я программирование изучал :)
Jestery; dunpil; mavom; DmitryKSL; Interrupted; ccserg; товарищ Ын; dimisa; NataLisa; DarkUser; Sartinsky; awk; Kochergov; SKravchenko; CyberCerber; +15 Ответить
2. rujiy_kot 11 23.08.18 14:21 Сейчас в теме
А мы играли в школе в начале нулевых по сети в quake, когда уходил учитель.
Это были лучшее время на уроках информатики! Всё, что нужно было пройти на уроке мы делали дома.
3. kzotiks 23.08.18 15:21 Сейчас в теме
Первая "сетевая" у меня была игра Netwars по com портам, а потом уже и другие пошли с ipх протоколами через коаксиальный.
4. roman77 178 23.08.18 17:34 Сейчас в теме
А я и сейчас в Q3 Excessiveplus поигрываю. Сервер до сих пор работает. Где-то с 20:30 до 22:00 на отдельных серверах собирается интернациональная общественность.
5. KEV8383 20 24.08.18 15:52 Сейчас в теме
Играл Quake и в Quake2 но потом перешел на StarCraft )))
6. ipoloskov 148 24.08.18 16:00 Сейчас в теме
Протянули локальную сеть в общаге, чтобы играть мультиплеер
7. user1038418 25.08.18 09:05 Сейчас в теме
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

См. также

Google разработает новые требования к безопасности приложений в Play

Новость Google Безопасность ИТ-новость Мобильные приложения

Google намерена запустить в магазине Google Play раздел безопасности, где будут подробно перечислены сведения о разрешениях приложения. Из-за этого изменятся требования к разработчикам.

сегодня в 15:04    822    VKuser24342747    0       

JetBrains представила крупное летнее обновление IntelliJ IDEA 2021.2

Новость ИТ-новость Новости компаний

Новая версия IDE получила поддержку анализа Java-кода во всем проекте, дополнительные действия при сохранении изменений и более наглядное отображение зависимостей.

вчера в 17:09    2217    VKuser24342747    2       

HeadHunter назвал самые необычные вакансии для ИТ-специалистов в России

Новость ИТ-новость

Кадровый портал HeadHunter подготовил список экзотических вакансий в России за лето 2021 года. В перечень попали разработчики с сфере распознавания изображений, 3D-скульптор, создатель смарт-контрактов на блокчейне.

вчера в 15:20    986    VKuser24342747    1       

Microsoft не позволит установить Windows 11 на старые компьютеры

Новость Windows Безопасность ИТ-новость

Microsoft намерена блокировать установку Windows 11 на компьютеры, не соответствующие системным требованиям. Компания закроет все сторонние методы обхода ограничений.

03.08.2021    1549    VKuser24342747    2       

ARM разработала гибкий пластиковый микропроцессор

Новость ИТ-новость Микроэлектроника

Специалисты ARM представили пластиковую версию процессора Cortex-M0. Решение с тонкопленочными транзисторами на полиамидной подложке унаследовало все возможности популярного микроконтроллера.

02.08.2021    2984    user1015646    0       

Intel признает, что отстает от конкурентов на четыре года и будет выпускать чипы для Qualcomm

Новость ИТ-новость Микроэлектроника Новости компаний

Представители корпорации Intel заявили, что компания начнет производство чипов Qualcomm. Также компания подготовила план развития, чтобы догнать своих конкурентов, таких как Taiwan Semiconductor Manufacturing и Samsung Electronics, к 2025 году.

30.07.2021    1484    SKravchenko    1       

Представлено водяное охлаждение для чипов мощностью 2,6 кВт

Новость ИТ-новость Микроэлектроника

Компания TSMC, один из крупнейших производителей микропроцессоров, разработала инновационную систему водяного охлаждения. Она позволяет отвести от чипа 2,6 кВт тепла.

30.07.2021    1993    user1015646    1       

«Сбер» впервые в России получил патент на программу, написанную ИИ

Новость Искусственный интеллект ИТ-новость

Подразделение Sber AI зарегистрировало в Роспатенте приложение, написанное предварительно обученной нейросетью. Искусственный интеллект сгенерировал код на C++ и Java.

30.07.2021    1191    VKuser24342747    3       

Линус Торвальдс добавит в Linux драйвер для NTFS от российских разработчиков

Новость Linux ИТ-новость

Создатель Linux заявил о готовности добавить драйвер в ядро операционной системы, если программисты из России займутся его интеграцией и сопровождением. Торвальдс лично примет этот pull-запрос.

28.07.2021    2234    VKuser24342747    0       

Amazon представил игровой движок с открытым исходным кодом

Новость ИТ-новость Новости компаний

Компания Amazon всерьез намерена покорить все цифровые рынки – в том числе индустрию гейминга. Разработчики выпустили движок Open 3D Engine для создания игр и других приложений с открытым исходным кодом.

28.07.2021    972    user1015646    0       

Microsoft представила эмулятор Altair 8800 на Azure Sphere

Новость ИТ-новость Микроэлектроника

Microsoft представила эмулятор ретрокомпьютера Altair 8800 на операционной системе для работы с облаком Azure Sphere.

27.07.2021    1917    SKravchenko    0       

Microsoft выпустит облачную ОС

Новость ОС ИТ-новость Облачные технологии

Компания Microsoft активно конкурирует с Amazon и Google на рынке передовых облачных технологий. Чтобы предоставить пользователям возможность гибридной работы в Windows с любого устройства, разработчики анонсировали облачную ОС – сервис Windows 365.

26.07.2021    2191    user1015646    0       

Google добавит в Chrome режим приоритетной загрузки сайта по HTTPS

Новость Безопасность Интернет ИТ-новость

В новой версии Google Chrome появится режим HTTPS-First, который заставит браузер всегда пытаться загружать сайты по защищенному протоколу. В будущих релизах веб-обозревателя эта функция будет включена по умолчанию.

21.07.2021    1493    VKuser24342747    0       

JetBrains назвала JavaScript и SQL самыми популярными языками в России

Новость Аналитика ИТ-новость Языки программирования

Компания JetBrains провела ежегодный опрос об экосистеме разработки в 2021 году. В нем приняли участие 31 743 разработчика из 183 стран, в том числе из Российской Федерации и СНГ.

21.07.2021    1494    VKuser24342747    3       

MongoDB с последней версией Atlas стал бессерверным

Новость СУБД ИТ-новость

13 июля MongoDB представила версию 5.0 платформы баз данных NoSQL. Последние обновления поддерживают многие рабочие нагрузки в бессерверном режиме. Новая версия включает новые возможности для приложений и улучшения конфиденциальности и безопасности.

20.07.2021    1847    SKravchenko    1       

«Яндекс» представил уникальный сервис для автоматического перевода видео

Новость Искусственный интеллект ИТ-новость Новости компаний Яндекс

«Яндекс» разработал прототип сервиса на базе нейросети, который в режиме реального времени переводит иностранные ролики на русский язык и озвучивает их. По словам компании, технология не имеет аналогов в мире.

20.07.2021    1879    VKuser24342747    2       

Появился способ игнорировать запрет установки Windows 11 на слабые ПК

Новость Windows ИТ-новость

Новая Windows 11 не может быть установлена на компьютеры, которые не соответствуют системным требованиям, определенным разработчиками. Однако продвинутые пользователи нашли способ обойти это ограничение.

19.07.2021    1744    VKuser24342747    0       

На свежих процессорах Intel создали микрокомпьютер под Windows 10

Новость Windows Гаджеты ИТ-новость Микроэлектроника

Энтузиасты и стартаперы полюбили Arduino и Raspberry Pi. Но инженеры Commate Computer (Commell) пошли дальше и представили миниатюрный ПК LE-37O на базе новейших чипов Intel Tiger Lake. И на нем можно запустить Windows 10.

16.07.2021    1664    user1015646    3       

Вот это поворот: Microsoft выпустила дистрибутив Linux

Новость Linux ИТ-новость Новости компаний

Пока мир замер в ожидании новой Windows 11, Microsoft решила преподнести пользователям большой сюрприз – и представила собственный дистрибутив Linux, CBL-Mariner 1.0.

15.07.2021    1913    user1015646    2       

Стартовала программа возмещения затрат разработчикам на скидки для малого бизнеса

Новость Законодательство Импортозамещение ИТ-новость Облачные технологии

Утверждена программа, в которой предусмотрено субсидирование разработки облачного программного обеспечения для малого и среднего бизнеса, а также скидки на софт, разработанный в рамках данной программы, до 50%.

15.07.2021    943    ЕленаЧерепнева    0       

Исследователи установили: ИИ-программы для собеседований не понимают речь соискателя

Новость Искусственный интеллект ИТ-новость

Эксперты из Массачусетского технологического института (MIT) изучили приложения, анализирующие резюме кандидатов. Ученые пришли к выводу, что такой софт плохо справляется с задачами и дает неверные результаты.

14.07.2021    951    VKuser24342747    1       

Юбилейный индекс TIOBE на июль. Рейтинг отмечает 20-летие

Новость ИТ-новость Рейтинг Языки программирования

Ежемесячный индекс TIOBE показывает, какие языки программирования наиболее популярны, и как их популярность растет с течением времени. В июле TIOBE отмечает 20-летие, публикует новый рейтинг и график популярности языков программирования за 20 лет.

12.07.2021    1438    SKravchenko    0       

Google сделает обязательной двухэтапную аутентификацию для аккаунтов разработчиков

Новость Google ИТ-новость Мобильные приложения

До конца года всем разработчикам мобильных приложений для продуктов Google нужно подключить двухэтапную аутентификацию. Также им придется пройти дополнительную верификацию личности. 

08.07.2021    1272    VKuser24342747    1       

Google установил новый обязательный формат для Android-приложений

Новость Google ИТ-новость Мобильные приложения Новости компаний

Компания Google объявила, что стандарт приложений Android App Bundle (AAB) станет обязательным в Play Store. Он заменит монолитный формат APK.

07.07.2021    2114    user1015646    0       

Токен исходного кода интернета продали с аукциона

Новость ИТ-новость

NFT-токены – уникальные двойники цифровых произведений – становятся все популярнее: их стали предлагать на традиционных аукционах с вековой историей. На этот раз ушел с молотка токен исходного кода интернета – на Sotheby’s его продали за 5,43 млн долларов США.

06.07.2021    2523    user1015646    0