Дневники разработчиков. Часть 3.

Текст: Команда You Are Empty
Опубликовано: Журнал «PC Игры», №10 (22) / октябрь / 2005

С чего начинается разработка движка? С тщательного анализа других технологий. Этот процесс называется Research. Главной его задачей является не копирование идей, как некоторые могли бы подумать. Просто частенько разработчики по двадцатому разу изобретают велосипед и распыляют свои силы. Скажем, немало интересных идей подсказала реализация AI в Far Cry. Пусть ее ругали за некоторую прямолинейность, но взаимодействие противников там сделано просто и эффективно (рекомендуем поэкспериментировать с их редактором Sandbox). Детальный анализ этой системы заставил нас повнимательнее присмотреться к монстрам You Are Empty. В результате проделанной работы, тварюги научились более уверенно ориентироваться на уровне и преодолевать различные препятствия. Также мы реализовали разные модели поведения монстров. Тщательный разбор современных видеокарт помог здорово оптимизировать рендеринг. Движок в значительно большей степени «загружает» GPU, а не процессор. Это позволило дизайнерам уделить повышенное внимание детализации, проработать архитектуру уровней, наполнить окружение мелкими, но важными объектами.

ЕСТЬ, ЧЕМ ПОХВАСТАТЬСЯ

Редкий движок сейчас обходится без реализации «настоящей» физики. Мы довольно долго рассматривали различные демки, цокали языками и переглядывались. Какие-то моменты нас устраивали, но многое в физических движках требовало серьезной доработки. Особенно нас волновало быстродействие. В итоге было решено использовать собственные, достаточно неплохие наработки. Движок учитывает свойства материалов, их вес, трение о другие объекты и т.д. На последней КРИ, кстати, ребята из компании Midway очень интересовались нашей технологией. Мы можем похвастаться и новомодными графическими решениями. Скажем, системой HDR (High Dynamic Range), которая позволила расширить световой диапазон, сделав освещение более реалистичным. При переходе из темного помещения в светлое персонаж на короткое время слепнет. Войдя в темную комнату, он также ничего не увидит, пока глаза не привыкнут к перемене освещения. Другая отличительная особенность движка – Field of Depth (FOD). Это специальный алгоритм, который, говоря языком фотографов, учитывает фокусное расстояние глаз игрока. На практике это означает, что те объекты, которые находятся очень близко к тебе или очень далеко, становятся размытыми. А то, что попадает в фокус, выглядит резким и четким. Надо отметить, что пока эти «фишки» смогут увидеть только владельцы видеокарт класса GeForce 6600 и выше (или аналогичных). После таких оговорок обычно следует волна народного недовольства: «...Совсем программировать разучились, басурманы. Раньше на 640 килобайтах памяти и без всяких ДжеФорсов красоту неземную наводили. А сейчас?! Обленились, разжирели, обнаглели!». Отметим, что заявление это справедливо, но лишь отчасти. Дело в том, что многие новомодные графические эффекты поддерживаются только современным железом. Конечно, невозможно внедрять новые технологии без учета времени обновления «железного парка». Поэтому мы не делали сильный упор на вышеописанных моментах. Можешь быть спокоен, для запуска You Are Empty тебе не потребуется компьютер hi-end конфигурации.

ОШИБКИ ПРОИЗВОДСТВА

Но движок – это не только графика. Это еще и AI, и обработка звука, и игровая система... Во время работы изменение всех этих составляющих происходит непрерывно. К сожалению, результат далеко не всегда можно спрогнозировать, поэтому каждое обновление устанавливается с замиранием сердца. Большинство возникающих ошибок можно условно назвать «рядовыми». Скажем, во время смерти игрок проваливается сквозь уровень и улетает в бездну. Ничего интересного. Что-то не досмотрели, точку не там в коде поставили. Таких багов много, их исправление – рутина. Но бывают и забавные случаи. К примеру, долгое время у нас ни игрок, ни его противники не получали повреждений при падении (за это отвечает параметр Falling Damage). Прикручивали его впопыхах и о толковой настройке, конечно же, позабыли. В итоге, запускаем свое детище – все монстры стоят на месте и на игрока не реагируют. Что такое? Бегаешь вокруг них, крутишься – никакого внимания. Думали, что система координат как-то перекрутилась или маршруты для AI неправильно рассчитали. В конце концов, оказалось, что падение с минимальной высоты, которое зачастую происходит в момент появления монстра, считается им как нанесение повреждений. Т.е. фактически вражина сам себя ранил и потом пытался себя за это убить. Хорошо хоть причину этой несуразицы мы установили довольно быстро, и работа вернулась в привычное русло. Один раз интересный сбой дала система скейла (Scale – масштабирование). Монстры вдруг стали уменьшаться или увеличиваться сами по себе. Зрелище, прямо скажем, психоделическое. Маленький Пожарный, бегая по воздуху, постепенно приближается, а потом увеличивается до нормальных размеров и рубит своим топором. Сразу возникли идеи для создания экшен-адвенчуры в стиле незабвенной American McGee’s Alice. Шутки шутками, но неприятностей такие моменты доставляют немало. Думаешь, что все будет исправно работать, а тут – на тебе! Чтобы свести к минимуму риск моральной травмы отдела дизайнеров, все апдейты движка мы стали тщательно тестировать отдельно. Обновление «выходит в народ» только после исправления всех замечаний.

ПРОДОЛЖАЕМ РАБОТУ

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

514 views·6 shares
514 views