Интервью с разработчиками свободной игры «Сказ о Пятигоре»
В марте 2016 года была опубликована новая, полностью открытая браузерная игра «Сказ о Пятигоре», сделанная исключительно с помощью свободных инструментов. Ее создатели — разработчики отечественного WebGL-фреймворка Blend4Web. Это первая игра, сделанная с помощью этого движка. Важно, что она не является приоритетным проектом команды разработчиков. Мало того, львиная доля работы была выполнена силами всего двух человек: 3D-художника Михаила Лузянина и программиста Евгения Родыгина. Игра получилась красочная, но не без изъянов. Проект вызвал шквал комментариев на разных ресурсах с полярными мнениями от «спасибо разрабам» до «в топку».
Тем не менее, это красочная и насыщенная трехмерной графикой игра, демонстрирует возможности WebGL, как положительные, так и отрицательные. Предлагаю «послушать» небольшой разговор с основными её создателями.
Сначала хочу поздравить вас с релизом игры. Я знаю, что это первый крупный игровой проект от разработчиков Blend4Web. Игра вызвала неоднозначную реакцию пользователей, но к этому мы еще вернемся, а пока давайте перейдем к истокам.
Михаил Лузянин: Да, было приятно читать много разной реакции. Особенно негативную :)
К реакции мы вернемся чуть позже, а пока у меня первый вопрос. Работа над проектом началась, если не ошибаюсь, в 2014 году. Почему выбран именно этот жанр, откуда вообще появилась идея лавовых големов и человечка прыгающего с мечом?
Михаил Лузянин: Аркаду мы выбрали, чтобы не сильно заморачиваться с игровым процессом. Наша цель, прежде всего, была продемонстрировать пригодность движка для создания игр, то есть показать возможности API и графики. В аркаде можно обойтись какими-то минимальными средствами построения игровой логики. Конечно, аркады разные бывают, но мы хотели как-то минимизировать эту часть.
Евгений Родыгин: Я добавлю, что проект очень спонтанный. Поначалу игру делать мы и не собирались. Просто хотели сделать программный пример с видом от третьего лица.
М.Л.: История началась с того, что возникла идея у Юры, нашего руководителя, создать серию статей для разработчиков игр, типа «с чего начать». Женя пришел ко мне с этой задачей, и мы начали думать.
Планировалось много чего: и летающего дракона, и какую-ту сложную систему бонусов с очками, зависящих от времени. Но потом остановились на нескольких островах и големах, вылазивающих из лавы. Не хотелось делать кровожадную игру на манер современных поделок, поэтому выбрали неживых существ, как объектов для кромсания.
В игре очень стильная, красочная графика, на мой вкус. Много мелких деталей, видно затрачено много человеко-часов, а сколько человек в реальности занималось проектом?
М.Л.: Сначала, как художник, я работал над ней один, потом подключили концепт-художника, который нарисовал големов, но так весь первый уровень практически был сделан только мною. При работе со вторым уровнем на помощь пришел еще один наш художник Евгений, и немного облегчил процесс, работая над разными мелкими предметами. А вот вступительную сцену мы делали уже практически всей командой особенно под конец, и нельзя забывать про нашего студента во время практики Пьера Мерваля.
Самая клёвая вещь, что встречает пользователя — это пролог или «зачин». Самая неоднозначная — это скринсейвер с балалаечником на телеге, который долго куда-то едет. Признавайтесь, кто придумал его?
Я реально просмотрел весь путь движения телеги дважды, пока не понял, что она идет по кругу!
Е.Р.: Это всё полет фантазии от Миши. Он и сценарист, и режиссер, и оркестр.
Вообще, насчет неоднозначности — это верно. Самое большое количество багов у людей возникло именно с этим скринсейвером. Одна летающая балалайка чего стоит.
М.Л.: Ну, на 90% это возникло у меня в голове. Потом ещё кто-то и что-то предлагал. Но в основном, всё созрело дома в одну бессонную ночь и я тут же начал воплощать идеи в проект.
Мне хотелось создать атмосферу заставки уютной и умиротворенной, что бы можно было просто медитативно созерцать её некоторое время.
Это получилось. Я долго созерцал…
Давайте вернемся к «зачину»… Очень длинно, красиво, хорошая работа камеры — целый мультфильм с сюжетом. Но куда проще было бы, наверное, отрендерить сцену и показать видео. Почему был выбран именно такой реал-тайм «мультфильм»?
М.Л.: На самом деле не хотелось делать какое-то видео. Хотелось показать, что это не простое меню, а то, что оно плотно связано с игрой и игровым миром, пусть он у нас и не очень большой. Некая имитация живого интерактивного мира. Ну и конечно, хотелось продемонстрировать, что на нашем движке можно делать очень сложные переплетения и взаимопроникновения между сценами, анимацией и разнообразным контентом.
Перейдем к технической части. На первый взгляд, в игре используется много всяких девелоперских штучек для привлечения взгляда игрока. Качаются деревья с травой, летят листочки, т.е. частицы. А так, какие интересные и необычные решения вы бы выделили в этой игре?
Е.Р.: Качающие деревья, трава, частицы и прочие эффекты — это то, что уже было в движке. Конкретно над ними мы дополнительно не работали. Если говорить о программной части, то самое сложное — это интеллект големов, на который я потратил наибольшее количество времени. Там и физика и трассировка лучей и принятие решений (хоть и в относительно простом виде) Если говорить о графике, то наверное, самое интересное было — заставить это работать и на GTX-980, и на старом айфоне. Приходилось динамически подгонять параметры под разные устройства. Собственно, тут тоже многое легло на плечи Миши. Потому, что ещё на этапе проектирования материалов, у нас художник решает, где делать упрощения для мобильников.
М.Л.: Насколько я помню, многие эффекты возникали в движке, как раз в процессе разработки Пятигора, например, тот же анимированный мир (окружение) — раньше такого не было. Анимация источника света типа Sun и много чего еще по мелочам.
Плавно перетекаем к больной теме — производительности. Очень много комментариев в сети, что игра безбожно тормозит на разных системах. К сожалению, я нигде не нашел каких-либо требований к железу. Хотя, лично у меня игра запускалась и на Ubuntu, и на Windows на разных конфигурациях. Но у многих даже с топовыми видеокартами было слайдшоу. В чем причины?
Е.Р.: Вообще, основная причина в том, что WebGL до сих пор относительно новая технология для веба, и как следствие, браузеры не на всех комбинациях железа/драйверов себя ведут идеально. Так, например, большое количество проблем возникает у пользователей с мобильными карточками, так как системе нужно «объяснить», что сейчас браузер будет рисовать не двухмерные веб-странички, а показывать самое натуральное realtime 3D.
Были еще проблемы с безбожным расходом памяти. Это особенность движка или вообще WebGL в целом, а может быть что-то третье?
Е.Р.: Да, есть и такой момент. Это в первую очередь проявляется в FireFox, который имеет проблемы с утекающей памятью. По этому вопросу мы уже писали ребятам из Mozilla. Ну, и сам Пятигор использует довольно много ресурсов. Там тонны текстур, мешей и прочих увесистых данных. Пользователей же не смущает, что многие современные игры требуют 8gb оперативной памяти?
Согласен. Современные игры требовательны к ресурсам, но возможно ли ожидать полную игру для мобильных платформ?
Е.Р.: Сейчас уже можно побегать на обеих локациях, если у вас достаточно свежий смартфон. На моём HTC игра очень даже неплохо работает.
Что касается «интро» то мы решили его отключить, потому что это всё-таки слишком тяжелая сцена для мобильников.
Игра позиционируется как Open Source, но расскажите немного о своих рабочих инструментах. Ходят слухи, что в вашей компании все используют исключительно свободные приложения?
Е.Р.: Так и есть. Это часть нашей идеологии, если так можно выразиться. Все мы работаем в Linux. Художники и 3D моделлеры пользуются Blender, GIMP, Krita и прочими открытыми утилитами. Я думаю, об этом больше может рассказать Миша, потому что мой основной «молоток» — это текстовый редактор Vim.
М.Л.: Все художественные работы, да и не только художественные, мы выполняем в программах с открытым исходным кодом. С точки зрения нашего объема работ и задач эти программы отлично справляются с ним. Blender на голову всё таки превосходит своих собратьев по Open Source (это мое мнение), которые не всегда пригодны для коммерческого использования, хотя я их так же люблю и использую. Но Blender выделяется, он вполне зрелый и я его ещё начал использовать на предыдущей работе для визуализации новых разработок автобусной промышленности. В принципе, никто даже об этом не знал, что я перешел с известной всем программы из трех букв на Blender и LuxRender. Для наших же задач такое свойство Blender как «всё в одном» очень заманчиво: и моделинг, и запекание, и скульптинг, да и еще экспорт в движок осуществляется в пару кликов. Так что, проектируя что-то, я уже на самых ранних этапах перегоняю сцену в движок и смотрю, как это будет выглядеть там. Очень удобно.
Gimp и Krita отлично справляются со своими задачами, особенно мне понравилась последнее время Krita для подготовки текстур. Audacity великолепно подходит для создания и легкого редактирования аудио файлов.
Ранее вы сказали, что сначала игра позиционировалась как «демонстрация работы движка», но, как мне кажется, проект вылился в нечто большее. Как планируется ее дальнейшее будущее? Создавать какое-то сообщество, вводить социальные функции. Что же ждет игру дальше?
М.Л.: В нашей команде (с посыла руководства) витают идеи о создании отдельного сообщества вокруг игры. Начало уже положено. Мы выпустили игру не в виде приложения среди других демо-сцен на сайте нашего движка, а как отдельное полноценное приложение со своим сайтом и позиционируем его, прежде всего, как полноценную игру сделанную на WebGL. Если будет интерес со стороны людей к этому проекту, мы планируем создать сообщество со своим форумом. Возможно, с привлечением людей на постоянной основе, которые будут заниматься дальнейшей разработкой игры, устраивать разные конкурсы среди сообщества. Из результатов этих конкурсов да и просто предложений пользователей и их контента, будет создаваться дальнейшее продолжение Пятигора. Может быть следующий уровень, а может это уже будет игра с более открытым миром и сложной механикой! Но это всё еще только в планах и судьба Пятигора не решена окончательно.
В планах создать полностью открытую игру от сообщества и для сообщества. Что бы каждый желающей мог поучаствовать в её разработке. Возможно, это будет базовая платформа для создания своей собственной игры. В сети Интернет часто не хватает полноценных примеров, от которых можно было бы оттолкнуться.
Мне в свое время, когда я начал заниматься игростроем, было очень трудно найти какие-то внушительные да и даже адекватные открытые примеры. Хотелось бы, что бы Пятигор стал для новичков таким примером.
Е.Р.: Собственно, мы уже создали отдельные группы Вконтакте и Facebook, посвященные Пятигору, в которых будем освещать новости, связанные с ним, и привлекать заинтересованных людей.
Как говорится, «поживем — увидим». Я не могут не поинтересоваться, а есть ли в планах разработчиков Blend4Web идеи о создании новых игр?
М.Л.: Мы еще год назад заявляли о разработки еще более крупного игрового приложения Капри, и я так понимаю у руководства всё-таки есть планы довести этот проект до конца.
Е.Р.: Пятигор вызвал хоть и не однозначную, но тем не менее очень горячую реакцию в нашем комьюнити. Так что игродел — это то, чем мы, безусловно, будем заниматься. Каждый день, кто-то из нас говорит: «А давайте сделаем …», где вместо троеточия задумка о создании интересного игрового проекта.
Тем не менее, на всё нужно время. Сначала мы доработаем Пятигора. Добавим некоторые интересные фишки в геймплей, а затем, наверняка возьмемся за новый проект.
Отлично сказано. «Сказ о Пятигоре», пусть и с некоторыми недочетами, все же вышел в «свободное» плаванье. Удачи ему и спасибо за ваше время.
От себя добавлю, что «Сказ о Пятигоре» — это действительно уникальный проект полностью созданный с помощью программ Open Source. Пусть где-то недоработан сюжет, «плавает» анимация и имеются некоторые тормоза в браузере, но сам труд и масштаб выполненного заслуживает хотя бы внимания. Почти 500 мб исходников (файлы blend, звуки, текстуры, скрипты) выложенных под лицензией GPL v. 3 на сайте разработчика.