DOOM: код и история

00:40 Происхождение названия Doom 01:43 Структура видео 02:15 Создатели Doom • Два Джона: Кармак и Ромеро — ключевые фигуры в создании игры. • Работа над Commander King и Doom в домике у озера. • Лепка монстров из глины и их фотографирование с разных ракурсов. 03:12 Псевдо-3D графика Doom • Использование спрайтов для создания псевдо-3D эффекта. • Спрайты всегда направлены на игрока и имеют фиксированный размер. • Освещённость области влияет на цвет спрайтов. 05:09 Джон Ромеро 07:05 Джон Кармак 08:00 Создание It's Software 08:27 Алгоритм BSP • Binary Space Partition BSP — алгоритм Кармака для оптимизации рендеринга. • Демонстрация работы алгоритма на примере редактора карты. 09:26 Алгоритм художника • Алгоритм художника — Рисование объектов от дальнего к ближнему для корректного перекрытия. • Недостатки : лишнее вычисление и необходимость рисования перекрывающихся объектов. 11:25 Wolfenstein 3D • Wolfenstein 3D — побег из нацистской крепости, секретные проходы, нехватка патронов. 12:02 Технические особенности игр • В играх NES использовался скроллинг для бесшовного перемещения игрока. • PPU Picture Processing Unit аппаратно поддерживал плавную прокрутку фона. • На PC перерисовка экрана требовала значительных ресурсов процессора. 13:00 Работа в Soft Disk 14:39 Решение проблемы скроллинга • Кармак решил реализовать боковую прокрутку на PC без специального чипа. • На NES уровень разбивался на плитки, которые хранились в видеопамяти. • Кармак вручную реализовал принцип NES, храня уровень как карту плиток в обычной памяти. 15:54 Реализация прокрутки на PC • Видеокарта показывала соседнюю часть области плиток при движении игрока. • Программа дорисовывала только одну новую вертикальную колонку плиток по краю. • Оптимизации позволяли не пересчитывать плитки, если они были одинаковыми. 16:53 Попытка продажи разработки Nintendo 17:49 Встреча с Скоттом Миллером 19:48 Разработка Commander Kings • Commander Kings стала первой успешной игрой команды. • Игра отличалась плавным движением, как на приставке. 20:47 Планы на революционный шутер • Сеттинг игры был основан на фашистах и Второй мировой войне. • Для разработки требовался мощный компьютер, и Кармак продал свою машину, чтобы купить Next от Стива Джобса. 22:09 Введение в рейкастинг • Разработка нового движка для улучшения ощущения движения персонажа. • Алгоритм художника был слишком медленным, поэтому был создан рейкастинг. • Рейкастинг использует лучи, сканирующие пространство слева направо, что позволяет экономить ресурсы. 23:17 Принцип работы рейкастинга • Луч сканирует пространство и прорисовывает только ближние стены, не затрачивая ресурсы на дальние, отрисовка быстрее и эффективнее. • На статичных картинках разница минимальна, но значительно увеличивается при динамичных сценах с множеством стен. 24:13 Обсуждение игры Wolfenstein 25:13 Приложение для взаиморасчётов 26:03 Работа над уровнем Doom • Редактор карт преобразует 2D-план в 3D-изображение путём настройки высоты пола и потолка. • Пример с лестницей и окнами иллюстрирует процесс создания 3D-эффекта. 27:58 Компиляция и WAD-файл • Процесс компиляции карты приводит к созданию WAD-файла. • В первой поставке Doom были два файла: Doom X и Doom 1 WAD. • Doom X содержит логику выполнения игры и взаимодействия с железом, а WAD — файлы уровней, текстуры, звуки и другие данные. 29:12 Создание мультиплеера 31:12 Технические аспекты мультиплеера • Идея Кармака: каждый игрок имеет свой мир, а обмениваются только командами действий. • Схема peer-to-peer lockstep синхронизирует состояние мира у всех игроков. • Режим требовал минимум трафика и работал на тогдашних модемах и IPX-локалках. 32:11 Влияние Doom на индустрию 34:14 Проблемы с портом Wolfenstein на Nintendo • Джон Кармак находит решение — Binary Space Partition BSP, которое значительно улучшает производительность. 35:11 Принцип работы BSP • BSP сортирует стены по удалённости от игрока, рисуя сначала ближайшие. • Зелёный индикатор показывает, какие области уже заняты стенами, предотвращая перезакрашивание. • Лазер на карте нарезает пространство на сектора, позволяя не рисовать невидимые элементы. 36:10 Оптимизация рендеринга • BSP сортирует секторы, а не стены, что позволяет рисовать только видимые элементы. • Индикатор отрисованности помогает избежать лишнего рендеринга. • Сортировка стен в реальном времени может быть медленной, поэтому Кармак решает предрассчитать карту заранее. 38:03 Алгоритм BSP и бинарное дерево 40:00 Формула для определения секторов 41:56 Завершение рендеринга 43:10 Юмор и пасхалки в Doom 43:48 Внутренний прикол команды Doom 44:48 Реклама и регистрация Doom 45:19 Текстуры и звуки в Doom 45:19 Письмо Джона Ромеро 46:18 Отрисовка стен в Doom 47:13 Расчёт углов в Doom 48:11 Оптимизация вычислений 49:08 Определение координат стен 50:05 Расчёт высоты стен 50:39 Windows и Билл Гейтс 52:03 DirectX и мультимедиа 53:19 Релиз Doom 54:10 Влияние на корпорации 55:09 Влияние на игровую индустрию 56:08 Заключение

Иконка канала Ленинский Букварь
247 подписчиков
12+
9 просмотров
2 дня назад
12+
9 просмотров
2 дня назад

00:40 Происхождение названия Doom 01:43 Структура видео 02:15 Создатели Doom • Два Джона: Кармак и Ромеро — ключевые фигуры в создании игры. • Работа над Commander King и Doom в домике у озера. • Лепка монстров из глины и их фотографирование с разных ракурсов. 03:12 Псевдо-3D графика Doom • Использование спрайтов для создания псевдо-3D эффекта. • Спрайты всегда направлены на игрока и имеют фиксированный размер. • Освещённость области влияет на цвет спрайтов. 05:09 Джон Ромеро 07:05 Джон Кармак 08:00 Создание It's Software 08:27 Алгоритм BSP • Binary Space Partition BSP — алгоритм Кармака для оптимизации рендеринга. • Демонстрация работы алгоритма на примере редактора карты. 09:26 Алгоритм художника • Алгоритм художника — Рисование объектов от дальнего к ближнему для корректного перекрытия. • Недостатки : лишнее вычисление и необходимость рисования перекрывающихся объектов. 11:25 Wolfenstein 3D • Wolfenstein 3D — побег из нацистской крепости, секретные проходы, нехватка патронов. 12:02 Технические особенности игр • В играх NES использовался скроллинг для бесшовного перемещения игрока. • PPU Picture Processing Unit аппаратно поддерживал плавную прокрутку фона. • На PC перерисовка экрана требовала значительных ресурсов процессора. 13:00 Работа в Soft Disk 14:39 Решение проблемы скроллинга • Кармак решил реализовать боковую прокрутку на PC без специального чипа. • На NES уровень разбивался на плитки, которые хранились в видеопамяти. • Кармак вручную реализовал принцип NES, храня уровень как карту плиток в обычной памяти. 15:54 Реализация прокрутки на PC • Видеокарта показывала соседнюю часть области плиток при движении игрока. • Программа дорисовывала только одну новую вертикальную колонку плиток по краю. • Оптимизации позволяли не пересчитывать плитки, если они были одинаковыми. 16:53 Попытка продажи разработки Nintendo 17:49 Встреча с Скоттом Миллером 19:48 Разработка Commander Kings • Commander Kings стала первой успешной игрой команды. • Игра отличалась плавным движением, как на приставке. 20:47 Планы на революционный шутер • Сеттинг игры был основан на фашистах и Второй мировой войне. • Для разработки требовался мощный компьютер, и Кармак продал свою машину, чтобы купить Next от Стива Джобса. 22:09 Введение в рейкастинг • Разработка нового движка для улучшения ощущения движения персонажа. • Алгоритм художника был слишком медленным, поэтому был создан рейкастинг. • Рейкастинг использует лучи, сканирующие пространство слева направо, что позволяет экономить ресурсы. 23:17 Принцип работы рейкастинга • Луч сканирует пространство и прорисовывает только ближние стены, не затрачивая ресурсы на дальние, отрисовка быстрее и эффективнее. • На статичных картинках разница минимальна, но значительно увеличивается при динамичных сценах с множеством стен. 24:13 Обсуждение игры Wolfenstein 25:13 Приложение для взаиморасчётов 26:03 Работа над уровнем Doom • Редактор карт преобразует 2D-план в 3D-изображение путём настройки высоты пола и потолка. • Пример с лестницей и окнами иллюстрирует процесс создания 3D-эффекта. 27:58 Компиляция и WAD-файл • Процесс компиляции карты приводит к созданию WAD-файла. • В первой поставке Doom были два файла: Doom X и Doom 1 WAD. • Doom X содержит логику выполнения игры и взаимодействия с железом, а WAD — файлы уровней, текстуры, звуки и другие данные. 29:12 Создание мультиплеера 31:12 Технические аспекты мультиплеера • Идея Кармака: каждый игрок имеет свой мир, а обмениваются только командами действий. • Схема peer-to-peer lockstep синхронизирует состояние мира у всех игроков. • Режим требовал минимум трафика и работал на тогдашних модемах и IPX-локалках. 32:11 Влияние Doom на индустрию 34:14 Проблемы с портом Wolfenstein на Nintendo • Джон Кармак находит решение — Binary Space Partition BSP, которое значительно улучшает производительность. 35:11 Принцип работы BSP • BSP сортирует стены по удалённости от игрока, рисуя сначала ближайшие. • Зелёный индикатор показывает, какие области уже заняты стенами, предотвращая перезакрашивание. • Лазер на карте нарезает пространство на сектора, позволяя не рисовать невидимые элементы. 36:10 Оптимизация рендеринга • BSP сортирует секторы, а не стены, что позволяет рисовать только видимые элементы. • Индикатор отрисованности помогает избежать лишнего рендеринга. • Сортировка стен в реальном времени может быть медленной, поэтому Кармак решает предрассчитать карту заранее. 38:03 Алгоритм BSP и бинарное дерево 40:00 Формула для определения секторов 41:56 Завершение рендеринга 43:10 Юмор и пасхалки в Doom 43:48 Внутренний прикол команды Doom 44:48 Реклама и регистрация Doom 45:19 Текстуры и звуки в Doom 45:19 Письмо Джона Ромеро 46:18 Отрисовка стен в Doom 47:13 Расчёт углов в Doom 48:11 Оптимизация вычислений 49:08 Определение координат стен 50:05 Расчёт высоты стен 50:39 Windows и Билл Гейтс 52:03 DirectX и мультимедиа 53:19 Релиз Doom 54:10 Влияние на корпорации 55:09 Влияние на игровую индустрию 56:08 Заключение

, чтобы оставлять комментарии