Генеральный продюсер компании АминиЛаб Для подраздела написал Илья Пшеничный, который занимается разработкой игр последние 13 лет. Единство колонка о том, как правильно выбрать игровой движок для проекта.
Несмотря на название статьи и раздел, в котором она опубликована, мы постараемся не делать выводов.
Чтобы развеять сомнения почтенной публики в том, стоит ли прислушиваться к высказанному в статье мнению, могу сразу сказать, что прислушиваться не обязательно.
Но мы вас предупредили.
Статья написана на основе почти 15-летнего опыта разработки видео, компьютерных и мобильных игр для широкого спектра платформ — от PlayStation 2 и Nintendo DS до Android и iOS, с использованием различных движков и технологий — Unreal Engine, Unity, Cocos. , Ignite , Gamebryo, CreatEngine, Xamarin, Fire Engine, Renderware и так далее.
В этот опыт входят как известные проекты вроде FIFA, NHL, Sims, Alone in the Dark, так и менее известные и успешные (а порой и совсем неизвестные и неудачные).
Кстати, если вы собираетесь делать «2048» или подобную игру, дальше можете не читать.
Используйте любой двигатель или технологию, которая вам нравится.
О чем мы будем говорить
В этой статье мы не будем затрагивать такие интересные темы, как:- какой движок имеет лучшую реализацию шейдера воды;
- как обстоят дела с отложенным затенением;
- сколько полигонов рендерить;
- и тому подобное.
Мы не считаем их важными по той причине, что при выборе двигателя нужно в первую очередь думать о конечной цели.
А конечной целью является выпуск коммерчески успешного проекта(ов) - то есть проекта, от которого полученная прибыль превысит прямые и косвенные затраты на его производство и поддержку в обозримом будущем.
Критерии выбора движка должны быть именно такими — позволит ли он выпустить тот же проект, того же уровня качества, в те же сроки.
Обратите внимание, что время играет важную роль, поскольку игровой рынок меняется все быстрее и быстрее.
При выборе движка настоятельно рекомендуем не опираться на аргументы типа «Это открытый исходный код», «Это простой движок, если что, починим сами», «Новые технологии! Вебжель Hetemael5 будет работать как в браузере, так и на FirefoxOS».
Вместо этого мы предлагаем использовать аргументы «У ведущего артиста двое детей, и они хотят есть» или «Банк отберет у продюсера заложенную квартиру, если проект не сдастся в срок и не принесет денег».
Так что же такое игровой движок?
(Кстати, неплохой вопрос для собеседования.) Строго говоря, игровой движок — это набор решений и технологий, обеспечивающий конвейер данных от их производителей — художников, гейм-дизайнеров, игровых программистов — потребителям — игрокам.
И чем более полным является этот конвейер и требует меньше работы по настройке, тем лучше движок.
Обратите внимание, что мы говорим обо всем процессе, а не о какой-то его части.
Именно поэтому многие технологии, которые осмеливаются называть себя, не могут считаться двигателем.
Если вы уже делали хоть сколько-нибудь сложные игры, то знаете, что большую часть трудозатрат берет на себя не задача «отрендерим модель», а работа художников (2D, 3D, аниматоров.
) , гейм-дизайнеры, а также программисты, борющиеся с системой - файловой, сетью, покупками, асинхронностью и так далее.
И если ваши сотрудники вместо того, чтобы сделать крутую игру, которая будет зарабатывать деньги, борются с системой, неудобными инструментами, медленным конвейером, невозможностью быстро увидеть результат своей работы и выполнить итерацию - то выбранная вами технология не является движок, а просто набор библиотек.
Итак, как выбрать
Наконец, мы представляем критерии, которые, по нашему мнению, следует использовать при выборе игрового движка.Самое главное, помните о конечной цели и помните, что игру делает команда.
И всем членам этой команды должно быть комфортно (а значит, и эффективно) работать.
Поговорите со своими художниками, аниматорами, художниками по спецэффектам, дизайнерами уровней и другими — спросите их, что им нужно от инструментария, как им будет комфортно работать.
Покажите альтернативы, дайте им день, чтобы попытаться привыкнуть к этому.
Но если люди новички и никогда раньше не сталкивались с играми, то, возможно, им вообще не стоит делать игру или просто делать поспешные выводы.
Так.
Во-первых, в принципе должна быть возможность сделать игру на выбранном движке , который вы придумали.
Например, вы хотите создать 3D-игру, а это значит, что движок должен поддерживать 3D-конвейер.
И, конечно же, работа на выбранной целевой платформе (об этом подробнее коснемся ниже).
Во-вторых, богатство инструментов и полнота охватываемых движком областей — работа с магазинами приложений, рекламными сетями, клиент-серверными системами ввода-вывода и так далее.
Все это определяет стоимость производства, поддержки и разработки вашей игры.
Помните, что каждый раз, когда вам приходится решать проблемы с неподдерживаемым форматом текстур, неудобным редактором анимации, перетаскиванием в сборку таблиц игрового дизайна с настройками, работой с SD-картой - вы каждый раз крадете у себя деньги.
Третий, порог входа .
Этот порог зависит от проекта, его сроков и предыдущего опыта команды.
Команде не обязательно иметь опыт работы с этим движком (хотя он весьма желателен), но важно, чтобы команда могла изучить его на необходимом для проекта уровне в разумные сроки.
Этот срок может варьироваться — на одном из проектов мы изучали новый двигатель около полугода, но в итоге он себя оправдал.
В-четвертых, Доступность человеческих ресурсов на рынке труда и «троллейбусный коэффициент» .
Насколько уникальна технология и насколько сложно найти специалистов на рынке.
Что будет с проектом или компанией, если технический директор или главный технический художник заболеет или уйдет? Окончательно, общая осведомленность и распространенность технологии .
Сообщество большое? Сколько игр сделано на этом движке? А как насчет игр выбранного вами жанра? Как работает служба поддержки? Последние два пункта, например, говорят о практической непригодности для разумного использования такого движка (без всякого сомнения), как CryEngine, просто потому, что риски, связанные с разработкой на нем, слишком велики (если только вас не спонсирует Crytek).
И первые пункты указывают на то, что многие технологии никогда не являются двигателями, а просто технологиями.
И мы бы не рекомендовали использовать их для проектов среднего размера и выше.
Кстати, о популярном критерии — «кроссплатформенность».
Важность этого критерия заметно преувеличена.
Если мы говорим о кроссплатформенности в рамках мобильных операционных систем, ок.
Или на консолях PlayStation и Xbox. Но не думайте, что можно сделать игру для консолей, а потом дешево перенести ее на мобильные телефоны или наоборот. Игровой опыт на этих платформах настолько разный, что технические вопросы портирования не играют ключевой роли.
Критерий стоимости также отошел на второй план – прошли те времена, когда один известный двигатель стоил 1 миллион долларов; сейчас большинство двигателей стоят сопоставимых денег и предлагают гибкие условия лицензирования.
Что в итоге?
Если говорить о проектах для мобильных платформ или ПК средних и больших размеров, то выбор движков не столь широк.По большому счету это либо Unity, либо Unreal Engine. Оба они являются полноценными движками, с богатым функционалом, отличными инструментами, скрывающими от разработчиков многие «неинтересные» и сложные аспекты работы с платформами на низком уровне, и, наконец, они мультиплатформенны.
Давайте рассмотрим каждый из них более подробно.
К преимуществам Unity относятся:
- Относительно плавная кривая входа, хороший игровой редактор и инструменты.
В принципе, любой человек может освоить базовые вещи за пару дней.
Имеется множество видеоуроков и другой документации.
- Большое сообщество, множество выпущенных проектов во всех жанрах.
- Asset Store — это внутренний магазин, где разработчики могут покупать готовые куски кода для своих проектов, реализующие тот или иной функционал (например, работу с системными рейтингами или достижениями) или художественные и звуковые активы (а также все вместе).
Использовать ее ассортимент можно по-разному, не только купив готовую подсистему и интегрировав ее как есть, тем более, что не все представленное там качественное.
А вот купить за $5-$20 кусок кода, который можно изучить, как в примере, или набор визуальных спецэффектов, а затем переделать их под себя — это значительно облегчает жизнь.
Особенно, если вам нужно что-то быстро прототипировать.
К недостаткам Unity можно отнести:
- Закрытость.
В обычных условиях разработчики не имеют доступа к исходному коду движка, нет возможности что-то исправить или улучшить на уровне системы, им приходится ждать, пока это сделают инженеры Unity (если они это сделают).
- Отсутствие хорошего послужного списка выпущенных игр AAA. Те разработчики, которые делали или пытались делать ААА на Unity, столкнулись с массой одинаковых проблем (кстати, об этом недавно говорилось на одной из лекций на DevGamm в Москве).
- Отсутствие хорошего послужного списка выпущенных консольных игр.
- Здесь на нем можно делать ААА и консоли, что подтверждается большим пулом выпущенных ААА проектов (пусть и схожих жанров).
- Возможности редактора.
Unreal Engine имеет очень качественный редактор с очень богатым функционалом, а также систему визуального «программирования» с помощью Blueprints. В качестве примера приведу следующий случай: на одном из проектов, который мы делали на Unreal Engine, мы расстались с программистом, который отвечал за графику и рендеринг, по причине банальной ненужности.
Художники отлично справились со сборкой любых нужных им шейдеров из кирпичиков самостоятельно.
- Движок поставляется с полным доступом к исходному коду.
Возьмите, отредактируйте, отладьте, если нужно.
Вы даже можете отправить исправления обратно в Epic, и если они будут сделаны хорошо и действительно важны, они будут включены в следующий выпуск.
это или даже понять, почему, помимо лечения симптомов и размышлений о том, что не так.
В случае с открытым исходным кодом вы можете относительно легко найти первопричину ошибки и либо исправить ее в исходных данных, либо даже исправить код движка.
Но у Unreal Engine есть и свои слабые стороны.
- Порог входа.
Ребята из Epic стараются его снизить, но он все равно довольно высок, особенно если собираешься делать что-то серьезное.
- Слабый магазин активов.
По сравнению с тем, что есть у Unity, в магазине Unreal Engine нет почти ничего.
Ситуация постепенно улучшается, но пока она такова.
- Менее распространен, особенно на постсоветском пространстве.
Если это узкоспециализированный движок, позволяющий создавать, например, HOG (поиск предметов - прим.
ред.) или какой-то другой конкретный жанр игр для конкретных платформ, и он многократно проверен «в бою», сотрудники с ним прекрасно знакомы — отлично, пользуйтесь, ни о чем другом не думайте.
Но если вы решите написать свой «универсальный» движок, или адаптировать свой нынешний match-3 движок под «универсальность», то мы настоятельно не рекомендуем вам этого делать.
Такой подход был оправдан 10 лет назад, когда ситуация с движками была намного хуже, но сейчас вместо того, чтобы сделать крутую игру, вы потратите бюджет компании и время, которое невозможно вернуть, на то, что было сделано задолго до вас и предложено.
практически бесплатно в любом хорошем движке.
И наконец, краткое содержание.
Исходя из вышесказанного, кажется разумным делать средние проекты на Unity, а если вы нацелились на что-то большее, то присмотритесь к Unreal Engine. Выбор движка – задача интересная, но не стоит забывать, что результат очень сильно влияет на будущее проекта или всей компании.
Хорошо, когда есть время и деньги экспериментировать, выпускать разные проекты с использованием разных технологий, сравнивать результаты и писать постмортемы.
Если это невозможно, то наша рекомендация — максимально снизить риски вашего бизнеса или проекта.
Игры — это уже очень непредсказуемая сфера.
Сосредоточьтесь на пользовательском опыте своих игроков и позвольте профессионалам позаботиться о пользовательском опыте ваших сотрудников.
Давайте делать хорошие игры.
Если вы работаете над технологией Unity, хотите рассказать о своем опыте разработки или задать вопрос экспертам, оставьте заявку нашим наставникам, используя специальная форма .
-
Поиск Практического Технического Форума
19 Oct, 24 -
Финский Язык
19 Oct, 24 -
Jmix 2021: Итоги И Планы
19 Oct, 24 -
Волитроника Может «Расширить» Закон Мура
19 Oct, 24 -
Веб-Лента: Объединение Rss
19 Oct, 24