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

23.08.2018      17604

Игровой турнир 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; Semargl84; 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 303 23.08.18 17:34 Сейчас в теме
А я и сейчас в Q3 Excessiveplus поигрываю. Сервер до сих пор работает. Где-то с 20:30 до 22:00 на отдельных серверах собирается интернациональная общественность.
5. KEV8383 20 24.08.18 15:52 Сейчас в теме
Играл Quake и в Quake2 но потом перешел на StarCraft )))
6. ipoloskov 162 24.08.18 16:00 Сейчас в теме
Протянули локальную сеть в общаге, чтобы играть мультиплеер
7. пользователь 25.08.18 09:05
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

См. также

«Сколково» объявил отбор перспективных ИИ-проектов для получения грантов

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

В 2024 году «Сколково» выделит пилотным проектам в сфере искусственного интеллекта гранты на общую сумму 554 млн рублей. В результате отбора финансирование получат проекты с применением ИИ в областях производства, операционной деятельности и в работе предоставляемых сервисов.

12.04.2024    488    AnastasiaKl    3       

3

В программу подготовки спортивных программистов вошли бег и скорость печати

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

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    699    VKuser24342747    2       

1

Росстандарт утвердил протокол LoRaWAN для интернета вещей

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

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    489    VKuser24342747    0       

2

Новый закон откладывает на год вступление в силу изменений в порядок регистрации на сайтах

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    661    VKuser24342747    2       

1

Вышло крупное обновление для Android Studio

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

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    809    VKuser24342747    2       

3

GitHub опубликовал результаты ежегодного исследования проектов с открытым исходным кодом

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

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    530    VKuser24342747    1       

2

Некоммерческие проекты смогут получить бесплатный доступ к GigaChat API

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

Компания «Сбер» заявила, что будет бесплатно предоставлять доступ к API нейросети для генерации текста GigaChat для некоммерческих проектов. Однако для них будет ограничено число доступных токенов.

01.11.2023    662    VKuser24342747    2       

3

Состоялся релиз свободной среды разработки Geany 2.0

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    713    VKuser24342747    0       

1

Минцифры подготовило критерии по выбору оператора реестра провайдеров хостинга

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило проект постановления, которое утверждает требования к организации, претендующей на статус оператора реестра провайдеров хостинга.

25.10.2023    385    VKuser24342747    0       

1

Минцифры составило алгоритм действий для компаний, у которых не работает VPN

Новость Минцифры ИТ-Новость

Минцифры подготовило разъяснения для российских организаций, у которых возникли перебои в работе VPN-сервисов для клиентов и сотрудников из-за блокировки запрещенных ресурсов Роскомнадзором.

24.10.2023    638    VKuser24342747    0       

0

«Сбер» объявила о доступности SberLinux OS Server для российских компаний

Новость Импортозамещение ИТ-Новость

«СберТех», дочерняя компания «Сбера», объявила о предоставлении доступа к собственной серверной операционной системе SberLinux OS Server российским компаниям. ОС включена в реестр отечественного ПО.

20.10.2023    897    VKuser24342747    0       

2

Минцифры внесло изменения в проект правил идентификации клиентов веб-хостингов

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило изменения в пакет документов, которые устанавливают новые требования для провайдеров хостинга. Ведомство расширило перечень допустимых методов идентификации клиентов.

18.10.2023    473    VKuser24342747    0       

1

Google выпустила финальную версию Android 14

Новость Android Google ИТ-Новость

Google выпустила новую версию мобильной ОС Android 14. Изменения затронули настройки внешнего вида и безопасности. Были расширены возможности камеры и инструментов для хранения данных.

12.10.2023    700    VKuser24342747    0       

1

Яндекс объявил об открытии исходного кода DataLens

Новость Аналитика ИТ-Новость Яндекс

BI-система Yandex DataLens теперь развивается в опенсорс. Код продукта выложен для всех на GitHub. Любой желающий сможет развернуть DataLens на своем железе и доработать его под свои сценарии применения.

03.10.2023    1431    ЕленаЧерепнева    1       

6

Роскомнадзор создаст реестр хостинг-провайдеров

Новость Минцифры ИТ-Новость Роскомнадзор

Минцифры подготовило несколько проектов постановлений, которые утверждают правила ведения реестра поставщиков хостинг-услуг, а также новые требования к провайдерам.

02.10.2023    609    VKuser24342747    0       

1

«СберТех» представил репозиторий GitVerse с ИИ-помощником для написания кода

Новость Импортозамещение ИТ-Новость Программист

«СберТех» начал прием заявок на тестирование веб-сервиса для публикации ИТ-проектов GitVerse. Платформа подходит для разработки программ с открытым и закрытым кодом.

26.09.2023    834    VKuser24342747    2       

1

ИП и юрлица смогут использовать смартфон для создания и замены электронной подписи

Новость ИТ-Новость ФНС Цифровая подпись

ФНС внесла изменения в правила оформления электронной подписи руководителя организации и ИП. Станет возможным продлевать ее и записывать при помощи мобильного устройства.

18.09.2023    439    VKuser24342747    1       

1

Журнал IEEE Spectrum опубликовал рейтинг популярности языков программирования

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

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1316    VKuser24342747    4       

2

В бета-версии Microsoft 365 появилась поддержка языка Python для Excel

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

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    668    VKuser24342747    0       

2

Специалисты Калифорнийского университета установили, что боты справляются с CAPTCHA лучше, чем люди

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

Международная группа исследователей изучила эффективность тестов CAPTCHA. Ученые пришли к выводу, что технология больше мешает людям, потому что боты научились с ней справляться.

24.08.2023    1171    VKuser24342747    23       

2

Google Chrome начнет поддерживать квантово-устойчивые алгоритмы шифрования

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

В версии Google Chrome 116 появится поддержка алгоритмов шифрования, устойчивых к попыткам дешифрации при помощи квантовых вычислений. Технология объединяет преимущества классической и инновационной криптографии.

24.08.2023    486    VKuser24342747    0       

1

В реестр российского ПО включен первый комплекс обработки больших данных

Новость Импортозамещение Минцифры ИТ-Новость Реестр ПО

Минцифры внесло в реестр отечественного ПО программно-аппаратный комплекс «Скала-Р», предназначенный для обработки больших данных. Это первый комплекс с таким функционалом, включенный в перечень.

22.08.2023    476    VKuser24342747    0       

1

Microsoft внедрила новые функции в GitHub Copilot и анонсировала Windows Copilot

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

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    1172    VKuser24342747    0       

1

В JetBrains разработали ИИ-помощника для аналитиков данных

Новость Аналитика Искусственный интеллект

JetBrains представила нейросеть Ask AI для онлайн-блокнота Datalore. Виртуальный ассистент способен генерировать код на нескольких языках, предлагать доработки и упрощать процесс аналитики данных. 

16.08.2023    674    VKuser24342747    0       

1

Исследование: ChatGPT дает неправильный ответ на половину вопросов о программировании

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

Чат-бот OpenAI ошибается в 52% случаев, когда отвечает на вопросы по программированию. Однако делает это так убедительно, что пользователи не замечают ошибки. 

14.08.2023    1054    VKuser24342747    5       

3