Тим Свиней, один из создателей Epic Games и самых продвинутых 3D программистов, согласился рассказать о своей работе в Epic и дать отчетливый прогноз о развитии индустрии в ближайшие несколько лет. Если у вас есть вопросы по терминологии или непонятны некоторые нюансы - обращайтесь на вышеуказанный адрес.
Вопрос: Движку Unreal уже полтора года - что изменилось в нем со дня выхода? Что поменялось коренным образом? Какие-нибудь сюрпризы?
Тим: Существует четыре направления работы, по которым мы шли, создавая Unreal Tournament:
1. Улучшение: Со дня выхода первого Unreal мы получили тысячи сообщений об обнаруженных ошибках и запросов от пользователей, что заставило нас работать над стабилизацией основного ядра. С выходом Unreal мы совершили гигантский скачок в технологии, но конечный результат оказался весьма слабым во многих областях, включая сетевой код, скорость работы на слабых системах и простоте использования. 18 месяцев тестирования и подкрутки, что мы потратили на создание Unreal Tournament, привело нас к конечному результату, который вы можете лицезреть сейчас.
2. AI: Пока Unreal был единственной игрой использующей технологию "botmatch", AI был великолепным, но Стив Полдж не был удовлетворен тогдашним положением дел, продолжая шлифовать AI для Unreal Tournament. Теперь боты понимают координацию задач в команде, они стали более человекоподобными в своей тактике поведения и стратегического планирования. Они настолько хороши, что вы можете начать CTF сражение на 10 человек, где в одной команде будет пять ботов, а в другой четыре бота и вы сами, при этом получая полноценные игровые впечатления.
3. Игровой интерфейс: Интерфейс Unreal был аналогичен используемому в Quake, который в свою очередь был позаимствован из DOOM, который имел корни от дедушки Wolfenstein 3D. В промежутке между 1991 и 1998 годами никаких существенных изменений в интерфейсе для 3D игр не происходило, безусловно, каждый новый разработчик старался приукрасить игровое меню, но оно по-прежнему оставалось архаичной клавиатурной каракатицей. Для Unreal Tournament, Джек Портер вырезал весь древний код и заменил его модерновым, очень удобный мышиный интерфейс, из серии "windows on steroids".
Это позволило дать новые глобальные возможности нашим пользователям, которые ранее были недоступны со старым интерфейсом. Теперь выбор карт, игровых настроек, производство других действий стало намного более простым, открывая пользователю мир нереальных возможностей.
4. Изменяемость: Полагаю, что Unreal можно считать одной из самых открытых игр своего времени (начиная с того момента, как мы выпустили редактор и 50.000 строк различных скриптов из финального кода продукта), но в то же время у вас возникали сложности с созданием модификацией - mod'ов, так как пользователю приходилось вручную рассовывать специальные файлы по директориям. Но с выходом UT, появился новый вид mod'ов названных "mutator", которые позволяют вам создавать совершенно новый вариант игры с приложением минимальных усилий. На вершине всего этого возвышается "mod installer", который позволяет вам расслабиться, взяв на себя все проблемы по установке и удалению последних модификаций.
Вопрос: Как вы относитесь к многочисленным лицензиям на движок Unreal, в том числе и для неигровых проектов? Что вы думаете о его использовании в других областях?
Тим: Мы очень рады тому, как многочисленные коммерческие организации покупают лицензии на наш движок. С точки зрения игр, существует огромное количество первоклассных Action проектов (Unreal, UT, Duke Forever), несколько межжанровых продуктов, включающих в себя элементы RPG (Deus Ex, Wheel of Time, X-Com Alliance), просто детские проекты (Nerf Arena Blast и Dr. Brain), даже симуляторы охоты (TNN Outdoors Pro Hunter). С точки зрения R&D (архитектура и дизайн) Virtual Notre Dame и Unrealty просто великолепны.
Когда мы начинали работу над движком Unreal, то нашей основной задачей было создание конкурентоспособной технологии, способной быть использованной в других проектах, кроме нашего собственного, но мы даже и не рассчитывали на такую популярность. Это стало для нас настоящим сюрпризом, но мы учтем этот опыт при разработке наших новых технологий.
Вопрос: Какую именно LOD (Level of Detail) технологию поддерживает Unreal Tournament? Используете ли вы ее при создании моделей и персонажей? Что из нынешних технологических features вы собираетесь поддерживать в будущем?
Тим: Эри де Неве написал специальный LOD-код для движка. Мы используем топологически правильную систему вычисления количества границ объекта, которая автоматически понижает объем полигонов с увеличением дистанции между вами и отрисовываемым объектом. Мы были вдохновенны многочисленными исследованиями в области LOD, в том числе Hugues Hoppe (http://research.microsoft.com/~hoppe/).
Вопрос: Собираетесь ли вы поддерживать bump-mapping?
Тим: Мы собираемся включить эту технологию в наш новый движок следующего поколения. Что касается непосредственно самого bump-mapping, то это одна из тех специальных возможностей, которую необходимо планировать с самого начала работ над движком, ради того чтобы осуществить ее полную поддержку.
В то же самое время, большинство компаний выпускающих 3D карты, обещают поддержку bump-mapping на протяжении многих лет. Основываясь на том, что нынешнее поколение акселераторов лишь эмулируют реальные математические вычисления... большинство игроков не увидит настоящий bump-mapping до начала 2001, когда акселераторы начнут поддерживать его аппаратно. Ждите и надейтесь.
Вопрос: Что вы решили по поводу поддержки кривых поверхностей в игре и самом редакторе?
Тим: Только в следующем поколение движка! Мы могли бы поломать нынешний код, воткнув туда кривые поверхности, но наша философия касательно этих нововведений (кривые поверхности и bump-mapping) остается прежней - мы включим их поддержку лишь тогда, когда эти технологии будут полностью отработаны. Quake 3 Arena показывает, насколько кривые поверхности могут быть симпатичны, но количество ограничений слишком велико. Например, я хотел бы создавать уровни с использованием CSG (constructive solid geometry); я хотел бы иметь расширенную систему повреждений каждого из объектов; я хотел бы накладывать многослойные поверхности на любой из объектов; Я хотел, чтобы каждый объект в игре поддерживал динамичный и постоянный LOD. Воткнуть кривые Бизье не сложно, но решение огромного числа связанных с эти проблем займет гигантское количество времени, чем мы и займемся в новом поколении нашего движка.
Вопрос: У вас есть уже какие-либо планы по поддержке реальных источников света?
Тим: Мы используем эту технологию с 1997 года. Если вы спрашиваете о расчете теней в реальном времени, то это как раз то, чем мы занимаемся в данный момент.
Вопрос: А скелетная анимация?
Тим: Мы уже закончили разработку прототипа модели скелетной анимации в нашей Epic MegaLabs, но не стали включать ее в Unreal Tournament ввиду ограниченного производственного цикла. Мы получим все лицензии на скелетный код в ближайшие два месяца и думаем интегрировать ее в Unreal 2, разрабатываемый Legend Entertainment.
Вопрос: Вы никогда не задумывались о возможности создать воксельный движок или комбинацию из полигонального и воксельного движков?
Тим: Я не думаю, что воксели имеют шансы на успех в нынешней обстановке. Я полагаю, что индустрия будет развиваться следующим образом:
1999: Большие треугольники, программный T&L.
2000: Большие треугольники, активное использование программно обрабатываемых кривых поверхностей, ограниченное использование аппаратного T&L.
2001: Маленькие треугольники, аппаратная тесселизация, с displacement-mapped поверхностями, массивным использованием T&L.
2002-3: Мельчайшие треугольники, полная аппаратная тесселизация кривых и displacement-mapped поверхностей, ограниченное использование фильтров типа RenderMan.
2004-5: Полная аппаратная тесселизация всего, включая мельчайшие треугольники и многофазовую фильтрацию. Скорость акселераторов будет достаточно высокой для создания полностью реального окружения, в качестве API будет использоваться комбинация из OpenGL/Direct3D.
2006-7: Процессоры становятся настолько мощными, что 3D акселераторы будут использоваться только на очень слабых системах, превратившись в слишком дорогое удовольствие и излишнюю трату силикона, так что мир вновь вернется к программному рендерингу. И начиная с этого момента, наступит эпоха возрождения для нетрадиционных методов создания архитектуры, включая воксели и REYES микрофасеты, возлагающие на процессор весь процесс рендеринга изображения. Иначе говоря, 3D революция, зажженная от искры 3dfx в 1997, продолжится всего 10 лет, после чего мы вновь вернемся к процессорной обработке.
Вопрос: Вы когда-нибудь думали (или, может, уже решили) начать работу над новым движком с абсолютного нуля?
Тим: Именно этим мы и занимаемся при написании нашего нового движка. Все, что не соответствует нашим стандартам и что не будет соответствовать 2001 году, мы вырежем и выбросим. 100% графического кода будет абсолютно новым. Большинство скриптов так же будет новыми. Другие части кода, типа ядра и сетевых протоколов достаточно хороши и не будут изменены до тех пор, пока наши дизайнеры и архитекторы не потребуют этого.
Вопрос: Какой из режимов в Unreal Tournament для вас является самым любимым? (CTF? Deathmatch? Assault?)
Тим: Я разрываюсь между Deathmatch и Capture the Flag (оба в режиме против ботов).
Вопрос: Наверное, вы играете на самом сложном уровне?
Тим: Нет, на высоком уровне боты могут загасить меня... Я играю на средних значениях, как и половина работников Epic Games.