Дневники разработчиков. Глава 3

Себастьян Таск о движке игры

Привет! Я, Себастьян Таск (Sebastian Tusk), технический директор проекта The Fall: Las Days of Gaia. Создание компьютерных игр было моим хобби, еще во время моего обучения компьютерной науке. После получения диплома, около пяти лет назад, я пришел работать в SSE. В этой главе я расскажу вам о моем вкладе в создание игры.

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

Мы начали работать над The Fall в начале 2002 года, и первоочередной задачей, стоящей передо мной, было определиться с тем, какими компьютерами будут обладать среднестатистические игроки в 2004, какие возможности будут поддерживаться, и какие видеокарты и процессоры будут считаться low-end'ом. Для этого не существует точных формул, и в этом процессе одинаково важны опыт, интуиция и знание того, какие процессоры и чипсеты будут выпущены в будущем.

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

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

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

После этого мы создали скриптовый движок. Закончив первоначальный этап разработки, мы теперь могли заниматься деталями, не задерживая работу остальных членов команды. Естественно, все детали движка постоянно отлаживались и совершенствовались, и мы постоянно занимались добавлением новых и оптимизацией уже готовых частей.

Проводя внутреннее тестирование игры, мы запускали ее на разных компьютерах, пытаясь убедиться, что она работает одинаково хорошо с видеокартами от разных производителей. Так же мы получили поддержку, от таких компаний, как ATI и nVidia, и позволили им изучить движок The Fall в их тестовых лабораториях. На заключительной стадии разработки, мы собираемся поручить третьей компании, провести тестирование на различных системах, дабы сравнить их результаты с нашими.

Ну, а теперь, обсудив процесс разработки, перейдем непосредственно к особенностям движка. Движок The Fall основан на DirectX9. Но, само собой, не только на нем.

Еще до начала создания кода движка, я считал, что самым сложным моментом будет комбинирование внешних и внутренних локаций. И я оказался прав. Создание интерьеров дело намного более сложное, чем может вам показаться на первый взгляд. Расположение объектов, "door management" и pathfinding, это только некоторые из возникающих проблем. Еще одной проблемой была камера, которая не всегда четко зафиксирована и не всегда так близко расположена к персонажу, как в играх вроде… ну, скажем, Gothic.

Во многих играх эту проблему пытались решить разделением внешних и внутренних локаций, как это сделано, например, в Morrowind, кстати, в Fallout 3 этот момент должен был быть реализован тем же способом. Как бы то ни было, в The Fall будет реализовано единое окружение. Это потребовало от нас немалых усилий, но мы удовлетворены результатами. При входе в здания не будет задержек для подгрузки, и вы сможете через окна осматривать местность и видеть всех персонажей и все предметы.

Конечно же, мы сделали отличные спецэффекты для нашего движка. Поскольку действие происходит в пустынях, то очевидным выбором для нас стал Heat Blur и, вызванные жарой, отражения на земле, которые вы можете наблюдать жаркими летними днями. Плюс ко всему, песок, переносимый ветром, усилит впечатление, производимое пустынями. Я уверен, что вам так же понравятся спецэффекты, которые мы создали для оружия.

Я очень доволен тем, как нам удалось реализовать небо. Эффект тумана и динамические тени так же добавляют приятных ощущений. Еще одной важной вещью была интеграция интерфейса. Его вид будет отличаться в разное время суток. К примеру, ночью он будет слегка мерцать, как бы в лунном свете. На первый взгляд, вам эта особенность может показаться странной, но это не просто очередной визуальный трюк. Нет, это действительно помогает интерфейсу стать частью действия на экране монитора.

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

Я уже упоминал Инверсионную Кинематику (ИК)? Похоже, что нет. Однако это еще одна важная часть нашего кода. ИК, если коротко, относится к движениям персонажа и к тому, как он взаимодействует с окружающей средой. Например, как персонаж стоит, всегда будет зависеть от рельефа. Представьте, что он стоит на склоне холма, благодаря ИК он будет стоять на поверхности земли, не "проваливаясь" ногами в склон холма. Другой пример, это то, как персонаж целится. Оружие будет нацелено точно на врага, и будет перемещаться вслед его движениям. Все это будет рассчитываться движком, а не базироваться на заранее сделанных позах. Так же персонажи могут поворачивать головы, смотря на определенный объект (в стиле Grim Fandango).

Как вы, наверное, заметили, большинство ноу-хау, которые я здесь описал, раньше встречались лишь в FPS и симуляторах, и теперь впервые появятся в жанре RPG. Что еще является хорошим в нашем движке, так это его гибкость в работе с текстурами. Дизайнеры локаций вольны вращать и масштабировать их по своему усмотрению, в отличие от тайловых движков.

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

Системные требования? Ну, вам понадобится, как минимум, компьютер на базе процессора с частотой 1.2 Ghz и 256 Mb оперативной памяти. Конечно, The Fall пойдет и на более медленных машинах, но уже не так, как мы рассчитывали. Игра разрабатывается для платформы Windows, но я тестирую ее производительность в WineX, для пользователей Linux. Портирование игры на консоли теоретически возможно, но в настоящее время мы этого не планируем.

Silver Style будет использовать движок The Fall в своих следующих проектах. И уже сейчас я думаю о том, какие концепции можно будет интегрировать в него, черпая вдохновение в других играх, а так же, следя за инновациями в индустрии.

Одна из технологий, которая занимает меня больше всего, это Polynomial Texture Mapping. Эта технология была изобретена командой из HP Labs, она позволяет моделировать некоторые эффекты на разных поверхностях при различном освещении, например бархат. В будущем, я надеюсь, эта тезнология будет реализована в нашем движке. Возможно, даже в адд-оне к The Fall.

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

Sebastian Tusk
Technical Director, The Fall: Last Days of Gaia
Silver Style Entertainment

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Перевод — Максим "RacoonRu" Петров

Перевод опубликован с разрешения редакции RPG Vault. Оригинальный текст.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>