30 мая 2007
Обновлено 17.05.2023

Форум разработчиков: игровые движки

Форум разработчиков: игровые движки - изображение обложка

У многих начинающих девелоперов сложилось мнение, что сделать игровой движок — это уже полдела. После этого, мол, остаются только детали: придумать название будущей игры, распределить руководящие должности в компании и, конечно, открыть в Сети официальный сайт разработчиков. Вопрос решается элементарным скачиванием какого-нибудь бесплатного движка.

Но вот незадача, на поверку движок оказывается странным архивом с кучей непонятных файлов. Приходится звать программиста, который « год сидит на Си » (Delphi, Pascal и других языках), чтобы он с этим добром разбирался. Программист щурит глаз, просит месяц и покупает по этому поводу толстую книжку. В итоге через полгода мастер кода печально сообщает: назначение большинства функций неизвестно, как ими пользоваться — неясно, и вообще — лучше за год написать движок заново, чем разбираться дальше.

Все понимают, что это конец. Ведь через год и графика устареет, а гениальную идею реализует кто-то другой. Так вот и пропадают молодые таланты, споткнувшись о движок и не выпустив ни одной игры. Давайте поможем индустрии, поговорим про игровые движки.

На самом деле разговор у нас получился значительно более широкий, чем ожидалось в начале. В конце концов, беседа с обсуждения движков плавно перетекла в обсуждение проблем отечественного игростроения и поиска кадров для геймдев-студий. Впрочем, от этого статья получилась еще более интересной. С нами сегодня беседуют:

dabАлексей Дубовой , руководитель и главный программист Elemental Games ;

nekЮрий Некрасов , генеральный директор CrioLand ;

shodanАндрей Аксенов , технический директор компании Skyfallen Entertainment ;

АйвенИван Магазинников , геймдизайнер Katauri Interactive ;

VlasovАлексей Власов из Skyfallen Entertainment ;

FeodorФедор Мукин , директор компании Arise ;

gyvГлеб Яльчик , руководитель игрового отдела Creat Studio ;

DMДмитрий Гусаров , руководитель Katauri Interactive.

Представители «Игромании» — Владимир Болвин , Алексей Макаренков и Светлана Померанцева — прислушивались к авторитетному мнению, вели протокол заседания и даже иногда понимали, о чем говорят разработчики.

По понятиям

[Игромания]: В прессе часто упоминают возможности того или иного движка. Порой коду движка приписывают чуть ли не магические свойства, а иногда даже все достоинства какой-то конкретной игры. Что же это такое и что он включает в себя?

[gyv]: Для начала нужно отметить, что проблема, когда вся работа ставится в зависимость от наличия игрового движка, не имеет ничего общего с технологиями. Она имеет отношение к тому, что молодые разработчики не понимают реалий рынка. Не понимают, что игра это не только произведение искусства, но и продукт. И уж совсем ошибочно думать, что качество тайтла зависит от графики или физики.

Эти вещи могут быть хорошим дополнением к игре, но никак не ее основой. Если команда говорит, что «графика устареет», — это первый признак того, что игры не будет никогда. Все сомневающиеся могут посмотреть на Duke Nukem Forever , который в разработке уже десять лет, и на « Космических рейнджеров 2 ». Графика последних почему-то никак не устаревает.

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

— Платформы: PC, PS3, PS2, PSP, Xbox, GameCube, Nintendo DS.

— Жанры: гонки, файтинги, шутеры от первого и от третьего лица, квесты, пазлы, симуляторы гольфа.

Дать четкое определение игровому движку вовсе не просто. Это как обсуждать, что такое операционная система и что такое ядро. Я бы сформулировал так: игровой движок — это все, что позволяет создавать игру: Pipeline + Tool Set + Core Game Engine + интерфейсы к подсистемам + набор модулей подсистем.

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

Иногда рассуждают про движок какой-то конкретной игры, например Gamebryo , Aurora , « Операции Silent Storm ». Может показаться, что это те самые движки, которые заточены под производство конкретных паровозов, но это не так (точнее говоря, нельзя сказать об этом наверняка). В данном случае мы видим не столько движок, сколько Game Creation Framework (фреймворк — среда разработки), то есть заранее собранный и отлаженный инструмент под наиболее удобное и быстрое производство игры в рамках конкретных ограничений.

Самое главное в движках — это Pipeline + Toolset (тулсеты, они же тулзы — дополнительные инструменты). От них зависит качество и скорость разработки, и это как раз то, что очень тяжело поменять, так как придется многое начинать заново, включая переучивание всей команды.

Все остальное можно купить. Зачастую даже нужно купить. Но тут все зависит от того, что представляет собой компания. Если это команда одного проекта, то проще все покупать. Если делается много проектов одновременно или проект выходит на разных платформах, то Core Engine (мало изменяемая часть кода игрового движка) нужно иметь свой либо приобрести раз и навсегда одну конкретную лицензию.

То есть получается так: от качества Core Engine зависит расширяемость (возможность добавления новых возможностей), простота модификации кода и удобство подключения специализированных модулей. Причем именно от набора модулей зависит, какую игру теоретически можно сделать на этом движке. Все остальное ограничивает потенциальные возможности модулей рамками реалий. После конкретных настроек и дописок получается фреймворк, в котором удобно или неудобно делать то, что задумывали.

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

Но этого недостаточно для хорошего файтинга! Нужно иметь возможность легко и быстро создавать комбо, немедленно просматривать результаты, менять параметры анимаций. То есть предстоит еще куча работы, основанной на цикле проб и ошибок. Если игровой движок не позволяет этого делать — прощайте, мечты о хорошем файтинге. Ничего не выйдет, какой бы гениальной ни была система анимации, коллижена (система столкновений) и физики.

[dab]: Игровой движок — понятие расплывчатое. Дело в том, что игровое программное обеспечение включает в себя множество разнообразных модулей, некоторые из которых тоже именуются движками. Например, в «Космических рейнджерах 2» совместно работают движок 2D-эффектов, интерфейсный движок, квестовый движок, скриптовый, аркадный, звуковой и видеодвижок. И это далеко не все. Свой движок мы создавали пять лет.

[nek]: Из основных компонентов я бы выделил следующие:

— Графический движок — надстройка над DirectX/OpenGL, которая позволяет обрабатывать графические ресурсы разных форматов (загружать, обрабатывать, выводить на экран).

— Физический движок решает задачи взаимодействия игровых объектов: падение камня с горы, занос машины на поворотах, полет самолета при сильном боковом ветре.

Обладая физическим и графическим движками, можно приступать к разработке игры, но только на уровне программного интерфейса. Каждое изменение вносится непосредственно в код. Это работает, но геймдизайнеры обычно не совсем понимают, как в таких условиях делать игру. Им нужны более простые и понятные инструменты разработки.

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

Обзор бесплатных движков

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

Не в деньгах ли счастье?

[Игромания]: Выглядит довольно сложно. Не потому ли код игровых движков стоит так дорого? Может быть, основная проблема в том, что в российском игропроме нет денег на изготовление высококачественных движков для проектов AAA-класса?

[Feodor]: Игровой движок — это вообще не код! Это набор утилит, с которым любая обезьяна теоретически может сделать игру. А если вместо обезьяны посадить специалиста, то можно даже получить хорошую игру.

При этом сами игры не зависят от технологий. Их качество зависит лишь от людей, которые эти игры делают. У нас в России с этим имеются некоторые проблемы.

Иногда говорят, что хороших игр у нас нет, потому что нет денег. Это не совсем верно. В первую очередь, у нас нет специалистов. Добыть их можно одним сомнительным способом — вырастить. А это очень долго и дорого. Деньги уходят практически в никуда. Отдача сомнительна и возможна лишь в далекой перспективе. Поэтому денег на вырост никто не дает, не считая отдельные частные «оранжереи».

Ходят слухи, что во всем виновата некая «утечка мозгов». В действительности такой проблемы уже давно нет — все, что могло, давным-давно утекло и обратно не втечет. Когда речь идет о передовых технологиях, более актуален приток свежих мозгов. К сожалению, сегодня они появляются на порядок, а то и на два реже, чем во времена Советского Союза.

[shodan]: Во-первых, AAA-проект — это далеко не один лишь движок. Это высококачественный (и страшно дорогой!) арт, хороший (желательно инновационный) геймдизайн, грамотный маркетинг. В российском игрострое профессиональных кадров по всем упомянутым специальностям хватит от силы на 3-4 команды. Причем собрать их вместе практически нереально.

И дело не в деньгах. Разумные деньги на проект высокого класса в России найти легче, чем собрать команду такого же уровня. Грамотный кадр мегазарплатой не создается, а только покупается. Но если грамотных кадров нет, ничего не выйдет при любом количестве вложенных денег. Сегодня программистов готовят многие вузы. Проблема в том, что в каждом выпуске, даже с релевантных специальностей, профпригодных единицы! Возможно, в Москве, Питере и прочих центрах ситуация получше.

[gyv]: Ничуть не лучше. Только она еще усугубляется тем, что крупные зарубежные мажоры вроде Sun и Intel могут позволить себе тратить деньги на перспективных студентов, начиная с младших курсов. А мы не можем, так как студенты младших курсов нерентабельны. Просто когда они прикармливают студента со второго курса, то к пятому он получает уже больше, чем мы можем ему предложить…

[Vlasov]: Кадры решают все, особенно в разработке компьютерных игр и вдвойне при разработке движков. Однако деньги не делают профессионалов! Наоборот, гораздо чаще даже при значительных денежных вливаниях (в размере $5-10 млн) не удается сколотить в СНГ сколько-нибудь приличную команду, способную сделать игру ААА-класса.

Менталитет, знаете ли, кое-какие «особенности национальной рыбалки». Те, кто уезжают «туда» делать «Крайзисы», — обыкновенно странные персонажи, с не менее странными целями в жизни и карьере.

Краткий словарик

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

  • Pipeline — производственная цепочка, конвейер.
  • Toolset — тулзы, автономные или полуавтономные вспомогательные программы, предназначенные для выполнения каких-то конкретных задач.
  • Core Engine (Core Game Engine) — ядро движка. Стабильная, малоизменяемая часть кода.
  • Game Creation Framework — фреймворк, среда разработки.
  • Collision (коллижен, полностью Collision Detection) — система столкновений, включается в момент пересечения границ игровых объектов. Она отслеживает столкновения игровых объектов и информирует о ситуации игровой движок. А реагирует на столкновение игровая логика. Реакция зависит от типа столкнувшихся объектов. Упрощенный пример: если в танк попала ракета — танк взрывается, но если бросать в танк камнями (при условии, что они есть в игре), то ничего подобного не произойдет.
  • AI — искусственный интеллект (ИИ).
  • UI (User Interface) — пользовательский интерфейс.
  • Source (Source Engine) — движок Half-Life 2.

Теория подсистем

[shodan]: Есть ряд подсистем общего назначения (каждую из которых можно, кстати, назвать движком), без которых уже не обойтись ни одной большой игре. Это математика, AI, UI, анимация, графика, физика, скрипты, управление камерами, поддержка контроллеров ввода и так далее. Поверх всего этого работает собственно игровая логика, идеологически разная для игровых жанров и неодинаковая для игр в одном жанре.

Движок — это не только и не столько архив с исходниками. Это процесс изготовления, в котором задействованы различные программы, библиотеки и модули. К примеру, графический движок — это процесс изготовления графических материалов (моделей, анимации, текстур), включающий в себя библиотеку для вывода этой графики из игры, разработку утилит, плагинов к 3D-пакетам, ряд специальных инструментов, документацию для художников и программистов.

Соответственно, «игровой движок» — это процесс изготовления игры. Понятно, что графический, физический, скриптовый движки задействованы в этом процессе как отдельные компоненты. У нас на эту работу ушло чуть больше трех лет по календарю. Однако я также включаю сюда грубую оценку времени, которое потратили художники и геймдизайнеры на борьбу с возникающими ошибками. Абсолютный чемпион по затраченному времени, как и везде, отлов и исправление ошибок!

Кто виноват и в чем секрет?

[Игромания]: В России нет практически ни одного громкого проекта ААА-класса. По заверениям знатоков, во всем виноваты программистыне могут написать движок соответствующего класса, не знают, не хотят. Встает извечный вопрос: кто виноват и что делать?

[Zorich]: А почему, собственно, не признать таковыми движки « Ил-2 », « В тылу врага », « Операции Silent Storm »? Можно и « Шторм » вспомнить, и « Периметр », и « Казаков »… Все перечисленные технологии послужили основой для отличных игр.

Можно, конечно, спорить, являются ли упомянутые игры (как конечный продукт) проектами ААА-класса, или просто А-класса, или какого-то еще класса, но сами движки на момент своего появления демонстрировали более чем достойный уровень. Из относительно недавнего хорошее впечатление производят технологии « Морского охотника », Heavy Duty , « Офицеров ». Весьма приличные возможности у движка игры « Завтра война ».

И мне кажется, что проблемы российского геймдева в основном лежат вне технологической плоскости. Куда больше проблем с артом, дизайном, презентацией, балансом, игровой механикой, левел-дизайном, бета-тестингом. Если бы все эти элементы у нас с гарантией исполнялись хотя бы на твердую «четверку», игры на многих отечественных движках получали бы оценки никак не ниже 85%. А при покупке лицензии на «топовый» движок (тот же пресловутый Source ) — от 88% и выше. С соответствующим коммерческим успехом на внутреннем и внешнем рынке. Но, как мне кажется, наши продюсеры пока не горят желанием выложить полмиллиона долларов за одну только технологию.

[Айвен]: Движок ААА-класса и программисты такого же высокого уровня вовсе не гарантируют высококачественной игры (вспомним недавний RoboBlitz на Unreal Engine 3 ). Особенно если графикой и дизайном будут заниматься студенты «ЭЭХ»-класса.

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

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

[gyv]: Программисты — вообще самые последние люди в разработке игры. Как только программисты сами начинают делать игру или движок вместо игры, сразу получается типичный российский игровой проект. Справедливости ради надо сказать, что и у буржуев существует не менее бурный поток помоев. Просто там по этой мутной водичке время от времени проскакивает что-нибудь интересное.

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

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

Почем двигло для народа?!

Мнение, что цены на лицензионный движок во всех случаях заоблачно высоки, ошибочно. К примеру, CrioLand готова выдать лицензию на движок « Завтра война » за сумму около $10 000. Компания также берется за обучение специалистов (заинтересованным лицам можно связаться с руководством компании через редакцию).

Skyfallen Entertainment за сумму порядка $20 000 (точная цифра и тема роялти обговариваются индивидуально) лицензирует движок « Магии крови », предоставляет исходники и поддержку в разумном объеме. Этой возможностью воспользовались в Katauri Interactive. Они делают на этом движке « Легенду о рыцаре ».

[DM]: В нашем случае пришлось немного изменить движок под свой контент. Но в результате мы получили экономию времени. Расклад примерно такой.

— Создание движка и инструментария с нуля заняло бы примерно два года. Затем еще два года ушло бы на изготовление самой игры. Итого четыре года.

— Взяв движок от Skyfallen, мы всего за два года разработки сделали вполне играбельную демоверсию, которую остается только заполнить контентом (примерно год). Таким образом, мы потратим на разработку новой игры ровно три года.

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

Принятие решений

Мы поинтересовались, как происходит процесс принятия технологических решений в Creat Studio.

[gyv]: Да в общем-то все очень просто. У нас на каждом проекте есть Core Team — основной состав команды разработчиков, костяк группы, те люди, которые работают над игрой с самого начала и до победного. Она всегда представлена следующими ролями: продюсер, ведущий геймдизайнер, ведущий программист, главный художник, главный 3D-моделлер, специалист по контролю за качеством, технический директор проекта. Плюс так называемый Project Integrator — человек, который берет у программистов код, у художников — персонажей и модели, все это проверяет на соответствие диздоку, собирает из всего этого рабочий билд и отдает геймдизайнерам и скриптерам, которые уже из всего этого набора будут делать игру. На небольших проектах один человек часто совмещает несколько ролей.

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

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

* * *

Как выяснилось, приобрести лицензию на хорошие современные движки российского производства не проблема. Только вот движок — еще не игра. Как утверждают разработчики, основная проблема в кадрах. То есть в вас, дорогие студенты, школьники и другие учащиеся. Если со всего курса можно отобрать всего пару человек, пригодных к работе, то чем же занимались все остальные? Играли в игры? А кто же будет делать в России проекты ААА-класса?

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь