Цукерберг Позвонит | Олег Придюк, Game Insight: Особенности разработки мобильной тактической стратегии X-Mercs

07 июля 2015

Вместе с Unity ЦП публикует истории разработки игровых проектов, созданных на базе популярной технологии. Расскажите о своём кейсе, чтобы попасть в рубрику.

Для сегодняшнего выпуска Олег Придюк, евангелист компании Game Insight, рассказал ЦП об особенностях разработки новой тактической стратегии компании — X-Mercs, недавно вышедшей в App Store.

Нам хотелось сделать крупнейшую стратегическую игру для мобильных устройств. Мы планировали создать глобальную одиночную кампанию, включающую 250 игровых территорий, 25 различных видов оружия, 50 уникальных противников — и всё это только на начальном этапе игры.

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

Инструментарий Unity позволил нам без особых затруднений создать ранний прототип игры для мобильных устройств на базе Windows и Android, а также для компьютеров на базе Mac и Windows. Это была отличная возможность избавиться от ошибок и сбоев ещё на ранней стадии разработки, внести необходимые изменения и провести игровое тестирование продукта в различных обстоятельствах.

Когда результат испытаний прототипа был сочтён удовлетворительным, началась более углубленная разработка, и мы сосредоточились на конкретной платформе запуска — iOS.

В нашей игре много анимации, крупных информационных блоков, которые загружаются в память устройства. Добавьте к этому подсистемы, отвечающие за многопользовательскую игру и создание видеозаставок, — они также требуют большого объёма памяти, — и даже после всех оптимизаций мы получим минимальное требование в 400 МБ оперативной памяти для обслуживания игры; а при определённых условиях объем оперативной памяти будет увеличиваться.

Конечно, мы хотели снизить требования, но порог в 400 МБ — это то, на чём мы пока остановились. На сегодняшний день минимальные системные требования для игры — iOS-устройства с 1ГБ оперативной памяти, такие как iPad 3, iPad Mini 2 и iPhone 5.

Командный центр

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

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

То, что вы видите, на самом деле представляет собой 8000 треугольников, 90 костей и текстуру размером 2048 х 2048 для каждой леди. При создании каждого персонажа используется более 20 различных анимаций: они комбинируются для создания сюжетных видеозаставок.

Режим боя

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

Игра X-Mercs создавалась в формате 3D, а это значит, что во время боя можно менять угол обзора, уменьшать или увеличивать изображение. Мы также хотели дать игрокам возможность видеть в бою крупные планы, как в кино: для этого была необходима высокая степень детализации персонажей и окружающего пространства. В конечном итоге, каждый наш персонаж состоит из 3500 полигонов, скелет каждого состоит из 30-40 костей; для тела используется текстура размером 1024 х 1024, а для головы — размером 512 х 512.

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

С учётом крупных планов и самой природы пошаговой 3D-стратегии необходимо, чтобы сражения очень хорошо смотрелись на экране игрового устройства. Вот почему наши солдаты ходят, стреляют, бегут, уклоняются, перезаряжают оружие и даже умирают в прекрасной анимации. В целом, мы создали около 130 различных анимаций; при этом анимация мужчин и женщин различается, поскольку у них разные модели скелетов.

Мы считаем, что внимание к деталям чрезвычайно важно. Всегда нужно предъявлять самые высокие требования к своей работе: только так мы сможем соответствовать растущим ожиданиям игроков.

Известно, что чем больше можно сделать без подключения к интернету, тем лучше. Поскольку геометрия уровней в нашей игре в основном статична, и мы можем полностью контролировать движение камеры, было принято очевидное решение: мы использовали карты и зонды освещения Unity (light maps и light probes).

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

Мы не используем освещение в реальном времени — но во время боя тени смотрятся очень естественно.

Это не просто круглые тени-проекторы или плоские копии мешей: мы используем скрипт, который фиксирует направление и угол падения заранее просчитанного света. Затем программа построения теней проецирует меш на плоскость, и итоговый альфа-канал смешивается с буфером экрана с помощью полноэкранных пост-эффектов. Таким способом мы и получаем красивую реалистичную тень.

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

Мы также нашли подтверждение теории, согласно которой прозрачные объекты на мобильных устройствах отображаются с задержкой. Команда рендер-инженеров потратила массу времени на красивый и быстрый «туман войны», но все равно на низкопроизводительных устройствах мы вынуждены возвращаться к упрощённой модели его отображения.

В работе мы используем систему частиц Unity Shuriken. С её помощью нашим художникам удалось создать очень красивые эффекты, однако они работали слишком медленно. Мы применили пулинг частиц, оптимизировали их наложение и сократили их количество.

Для X-Mercs мы создавали анимации вручную, без помощи системы Mecanim. Но для следующего амбициозного проекта мы обязательно воспользуемся этой функциональностью.

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

Заключение

Создание игры X-Mercs заняло более 18 месяцев. В нём принимало участие более 50 человек. За это время мы выяснили, что чрезвычайно сложно спрогнозировать развитие технологий на ближайшие год-полтора; однако золотое правило гласит, что тестирование нужно проводить на популярных на рынке устройствах, при этом отводя определенное время на знакомство с альфа-версиями Unity. В конце концов, то, что в данный момент является альфа-версией, завтра превратится в бету, а послезавтра вы будете пользоватся этой версией Unity для разработки игры.

Кроме того, альфа-версии — это отличная возможность увидеть перспективы и пути развития Unity. Компания Game Insight серьезно относится к подобным вещам и рада принять участие в выработке стратегии развития Unity на ближайший период.

X-Mercs — это по-настоящему сложный проект: проверка на прочность как для нашей команды, так и для игрового движка Unity. Мы счастливы, что в решении некоторых задач нам помогали талантливые разработчики любимого игрового движка.

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

Благодарим команду Unity за помощь и поддержку. Непременно зайдите в игру: она только что появилась в App Store, где её можно скачать совершенно бесплатно.

Похожие новости