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

23.08.2018      15594

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

См. также

Банк России добавил поддержку NFC-технологии в Систему быстрых платежей

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

В Системе быстрых платежей (СБП) появилась возможность проводить бесконтактную оплату при помощи NFC-чипов смартфонов. Функция будет доступна при использовании приложения «СБПэй».

20.05.2022    2686    VKuser24342747    1       

В России начал работу отечественный магазин приложений NashStore

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

Приложение-маркетплейс для Android стало доступно для скачивания на официальном сайте. Магазин позиционируется как альтернатива Google Play.

17.05.2022    1990    VKuser24342747    9       

В России создадут единую систему хранения государственных данных

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

Минцифры приступает к разработке ГосДата.хаба, который будет хранить в себе информацию от всех государственных учреждений. В 2024 году проект должен быть полностью реализован, а в 2023 году система будет запущена в опытную эксплуатацию.

16.05.2022    1964    Senator_I    3       

GitHub до конца 2023 года полностью перейдет на двухфакторную аутентификацию

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

Представители ИТ-хостинга GitHub сообщили, что к концу 2023 года активные разработчики, зарегистрированные на платформе, должны подключить функцию двухфакторной аутентификации.

12.05.2022    4265    VKuser24342747    0       

В России создан алгоритм принятия решений о необходимости обновления критичного ПО

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

Центр кибербезопасности РФ подготовил рекомендации по обновлению программ, критически важных для бизнеса. Ведомство рассказало, в каких случаях следует избегать автоматического обновления ПО.

21.04.2022    2418    VKuser24342747    0       

ИТ-отрасль представила Минцифры список приоритетных направлений поддержки

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

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

15.04.2022    2722    VKuser24342747    1       

Для TLS 1.3 реализована поддержка российских стандартов шифрования

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

Реализация протокола TLS 1.3 с использованием российских защитных алгоритмов разработана компаниями «Криптонит» и «Криптоком». Применять его можно как расширение для OpenSSL 1.1.1.

16.03.2022    8416    VKuser24342747    1       

В GitHub добавили поддержку диаграмм

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

В репозиториях сервиса GitHub теперь можно использовать диаграммы Mermaid. Этот формат гипертекстовой разметки легко освоить, чтобы создавать наглядные и аккуратные схемы. Такие изображения будут понятнее ASCII-диаграмм из отдельных символов.

24.02.2022    9644    user1015646    0       

Финализирован список новых возможностей Java 18

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

Намеченный на 22 марта 2022 года релиз Java 18 находится во второй фазе стабилизации. В новой версии языка появится несколько возможностей в виде превью и инкубаторов для тестирования.

14.02.2022    7819    VKuser24342747    2       

В России разработали открытую операционную систему «Фантом» на собственном микроядре

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

Подавляющее большинство операционных систем, над которыми работают российские компании, создаются на ядре GNU/Linux. Возможно, у них наконец-то появится конкурент: DZ Systems представила ОС «Фантом», микроядро которой написано «с нуля».

02.02.2022    6360    user1015646    2       

Let's Encrypt отозвал 2 миллиона сертификатов из-за нарушений в коде

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

Поставщик HTTPS-сертификатов сообщил об обнаружении выпущенных ненадлежащим образом электронных документов. Ошибка произошла из-за исправлений в программном обеспечении.

02.02.2022    6212    VKuser24342747    0       

Разработчики представили три новые версии Python

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

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

01.02.2022    15390    user1015646    11       

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

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

Google продолжает попытки создать альтернативу файлам cookies при таргетировании рекламы. После критики технологии FLoC компания разработала другой сервис, который будет выяснять любимые темы пользователя.

01.02.2022    7181    VKuser24342747    0       

Ученые добились рекордной точности вычислений на квантовом компьютере

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

На квантовые компьютеры возлагают большие надежды. Ученые из Австралии, Голландии и Японии независимо друг от друга добилась на практике точности квантовых вычислений выше 99%.

31.01.2022    6475    user1015646    0       

Samsung разработала модуль биометрической аутентификации для смарт-карт

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

Samsung представила чип биометрической защиты, который может быть установлен в банковские карты. Разработка объединяет в себе различные элементы безопасности, ранее наносимые на саму карту.

28.01.2022    7469    VKuser24342747    0       

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

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

Apple в очередной раз перенесла сроки вступления в силу новых правил App Store. В них прописано новое требование для всех разработчиков: добавить в приложение возможность удалять аккаунт.

27.01.2022    11109    VKuser24342747    0       

Google назвала пять трендов машинного обучения в 2021 году

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

Google провела исследование, в котором озвучила ключевые направления развития индустрии машинного обучения (МО) в 2021 году. Компания ожидает в ближайшие годы научных прорывов в отрасли.

27.01.2022    15648    VKuser24342747    0       

Исходный код модели Facebook XLS-R выложили в интернет

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

Одна из самых мощных многоязычных моделей распознавания речи XLS-R теперь доступна всем разработчикам. Facebook опубликовала исходный код решения на GitHub и Hugging Face.

27.01.2022    7309    user1015646    0       

Компания OPPO подготовила концепцию устройств без аккумуляторов

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

Китайский производитель смартфонов OPPO опубликовал доклад, в котором представил идею зарядки IoT-устройств от сигналов мобильных телефонов, Bluetooth и сетей Wi-Fi.

26.01.2022    5491    VKuser24342747    2       

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

Новость ИТ-новость Минкомсвязь Цифровая экономика

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

24.01.2022    6731    VKuser24342747    0       

Visa разработала способ превратить почти любое устройство в POS-терминал

Новость ИТ-новость Новости компаний Онлайн-торговля

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

21.01.2022    6993    VKuser24342747    0       

Число патентов на нейросетевые технологии показало взрывной рост

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

Агрегатор патентных данных IFI Claims провел исследование рынка, что узнать: какие страны и компании наиболее активно регистрируют права на изобретения в области компьютерных систем, основанных на биологических моделях.

20.01.2022    5211    VKuser24342747    0       

Nvidia обновила программу для генерации пейзажей при помощи ИИ

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

Новая версия графического редактора Nvidia Canvas, создающего изображения по примитивному наброску, поддерживает высокое разрешение картинок и предлагает больше материалов.

19.01.2022    7755    VKuser24342747    0       

Производитель «Эльбрусов» раскритиковал отсрочку внедрения российских процессоров

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

Компания «МЦСТ», выпускающая российские процессоры «Эльбрус», опасается угрозы нацбезопасности после ввода балльной системы оценки для отечественной радиоэлектроники.

18.01.2022    6493    VKuser24342747    0       

Сводит олдскулы: культовую игру Prince of Persia перенесли в браузер

Новость

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

18.01.2022    7441    user1015646    1