Онлайн
библиотека книг
Книги онлайн » Разная литература » Икона DOOM. Жизнь от первого лица. Автобиография - Джон Ромеро

Шрифт:

-
+

Закладка:

Сделать
1 ... 76 77 78 79 80 81 82 83 84 ... 149
Перейти на страницу:
ходу зашкваливают! Игроки должны понимать, что этот мир хардкорен и опасен, а за руку их водить никто не собирается.

Мы буквально могли ощутить этот опыт, хотя пока речь шла лишь о его потенциале. Ни одна другая игра и рядом не лежала. DOOM, Heretic и Rise of the Triad были в 2,5D. Даже находившиеся в разработке проекты вроде Duke Nukem 3D не могли составить нам конкуренцию.

Ultima Underworld – пример настоящего 3D с шестью степенями свободы, но при этом с шестью степенями медлительности. Это не та динамичная RPG, которую мы себе представляли. У нас по-прежнему вызывала недоумение Myst, продолжавшая лидировать в чартах вместе с DOOM и DOOM II. Мы не понимали, что привлекательного в пустом и медленно раскрывающемся игровом мире. Понятно, что геймерам нравятся истории, но нам хотелось делать игры, которые позволяют писать собственные сюжеты об удивительных битвах или победах в дезматчах. Потенциал Quake был невероятен – даже если смотреть на него издалека.

Кармак рассказывал подробности о проводимых им исследованиях и проделанной работе. Все его слова о новом коде в моем сознании превращались в опыт потенциального игрока.

– Я так рад, что мы переходим к настоящему 3D, – сказал я. – Никаких больше спрайтов.

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

Вычисление освещения на уровне стало огромным шагом вперед для дизайна уровней. Вместо того чтобы тщательно определять степень освещенности каждой области в игре, мы теперь могли размещать источники света там, где захотим, задавая каждому произвольный уровень яркости. Движок знал, как направить этот свет, и создавал текстуры стен, плавно переходящие от яркости к темноте. В DOOM вся текстура стены всегда имела один уровень освещенности. В Quake же стены могли иметь сложное освещение в зависимости от того, где находится источник света. Короче говоря, теперь художники и дизайнеры уровней могли делать более реалистичное окружение.

– Ты вообще можешь себе представить, как из этой темноты выходит Барон Ада?

Тогда мы еще не придумали врагов для Quake, поэтому я говорил про существо из DOOM. Меня никогда еще так не поражал потенциал игры.

– Раз мы заговорили о врагах, что ты будешь делать с видеобуфером? Мы по-прежнему используем 8-битный цвет или переходим на 16 бит? – спросил я.

Разрядность видеобуфера (8 или 16 бит) определяла количество цветов, с которыми мне приходилось работать. При 16-битном цвете в моем распоряжении оказывалось 65 536 цветов. А при 8-битном – всего 256. Ответ Кармака определял, буду ли я создавать красочных существ или лепить монстров из грязи. Кроме того, при 16-битном цветовом режиме команда получит доступ к плавным градиентным теням.

Код рендерера писал Кармак – и у него было ощущение, что 16 бит окажется многовато для тогдашних видеокарт.

– Начнем с VGA, потому что размер данных составляет один, а не два байта на пиксель, – пояснял Джон. – Я хочу, чтобы частота кадров превысила 30 кадров в секунду и подбиралась к отметке в 60 кадров.

Звучало разумно – отрисовка вдвое большего объема данных занимала в два раза больше времени и снижала частоту кадров. Приближение к 60 кадрам в секунду крайне важно для плавного движения. Будущие 3D-видеокарты смогут обрабатывать 16-битный цвет при высокой частоте кадров, но тогда мы к этому еще не пришли. Однако я не огорчился. Просто хотел знать, с чем придется работать.

– Учитывая тени, мы сможем использовать меньше цветов. Сколько ты сделаешь уровней яркости?

Это нужно для определения количества оттенков в моей палитре. Например, если у каждого цвета будет четыре уровня яркости, то я получу 64 цвета для работы, ведь нужно учитывать, что в общей сложности оттенков 256 (64 цвета, помноженные на 4 градиентных уровня). Но я понимал, что для получения желаемого эффекта потребуется больше градиента.

– Да, цветов станет меньше, – сказал Кармак. – В моих планах шестнадцать уровней яркости для каждого цвета, так что в 256-цветной палитре VGA будет максимум шестнадцать цветов.

– Хм, ну, раз Quake – Cредневековая игра, ограничение цветовой палитры может быть уместным. Много грязи и каменных цветов. И красный, конечно, – засмеялся я.

– Средневековье идеально подойдет к этой палитре, – согласился Джон.

– Раз у Квейка есть огромный молот, игра может быть преимущественно про ближний бой. Только представь: у тебя будет возможность полностью уничтожить врага, расплющить его и буквально размазать по земле, – размышлял я.

– Не забывай про куб Адских Врат. Он себе на уме! – рассмеялся Кармак.

– Ага. Может, нужно уничтожать врагов, чтобы он пожирал их тела? Если морить его голодом, он может расстроиться и покинуть героя на какое-то время. – Я погружался все сильнее. – Если куб доволен, он может высасывать души из врагов. А если тебя окружили, можно провести атаку по области – ну, хорошенько жахнуть молотом по земле. Мы сможем в такой момент заставить камеру дрожать?

– Вполне. Учитывая, как я планирую настроить геймплейный код, должно быть легко. Я собираюсь написать простой C-подобный язык программирования, чтобы дизайнеры и программисты могли создавать нужные им вещи и сразу же видеть их в деле. Сервер просто загрузит файлы и быстро их обработает.

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

Для дизайнеров отделение геймплея от движка означало, что мы получим возможность вносить изменения в геймплей, не компилируя без необходимости весь движок. Прежде на это требовались минуты, сейчас – секунды. Теперь и моддеры смогут писать код для внесения изменений в игру. Им не понадобятся инструменты Objective-C, которые использовались при создании проекта, или доступ к исходникам Quake. Наши прошлые игры требовали компиляции каждый раз, как появлялся

1 ... 76 77 78 79 80 81 82 83 84 ... 149
Перейти на страницу: