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

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

Сравнение параметров игрового движка

Когда я начал экспериментировать с современными игровыми движками в 2017 году, я рассматривал три существующих коммерческих игровых движка: Lumberyard, Unreal и Unity. В то время эти три были очень разными:

  • Lumberjack, относительно новая экосистема разработки игр, основанная на CryEngine, которую Amazon недавно лицензировала, все еще была не очень пригодна для использования и практически не имела хранилища активов или контента, доступного для быстрого прототипирования.
  • Многие считали Unreal лучшим с точки зрения качества. Unreal также был самым дорогим, взимая процент от общей прибыли сверх определенного уровня и потенциально взимая больше за название. Экосистема активов была достаточно богатой, но она была ориентирована больше на профессионалов, чем на любителей.
  • Unity была недорогой, кросс-платформенной и с ней было проще «играть», поскольку у нее было богатое хранилище не только контента, но и скриптовых решений, которые можно было «подключи и работай» для создания игровых концепций.

В то время у меня не было конкретных планов по созданию чего-либо, что можно было бы опубликовать: у моего работодателя были довольно строгие требования к сторонним проектам, а у меня были другие увлечения, но я хотел изучить, во что превратились игровые движки, и попутно освоить некоторые новые навыки. Учитывая относительно поверхностные наблюдения, которые я сделал, Unity казался очевидным выбором. Это было и остается дешевым для одного разработчика, а широта доступного контента просто огромна.

Плюсы и минусы выбора Unity

Я признаюсь, что, несмотря на то, что знал, что выбор игрового движка может иметь решающее значение, когда пришло время начинать разработку Magic of the Realm: Adventures, я даже не остановился, чтобы рассмотреть альтернативу. К настоящему моменту я уже несколько лет использую Unity в качестве «хобби», знаком с конструкциями и инструментами, инвестировал в ряд ассетов, которые помогают решать различные задачи по разработке игр, и это просто удобный и выбор по умолчанию.

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

Как и в случае любого решения, важно взвесить затраты и преимущества каждого варианта, чтобы сделать осознанный выбор. Я разрабатываю MOTR:A в качестве хобби, но я намерен закончить и опубликовать игру. Таким образом, решения, которые я принимаю, очень похожи на бизнес-решения, принимаемые в процессе разработки любого технического продукта.

Во-первых, это не легко обратимое решение. Уже к этому моменту я вложил значительный капитал как времени, так и денег в экосистему Unity — в основном в покупку активов и обучение. Я знаю этот инструмент, владею многими активами, понимаю парадигму программирования и на данный момент относительно свободно владею C#.

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

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

В-третьих, долгосрочные последствия конкретного выбора имеют отношение к общему анализу затрат/выгод. В этом случае стоит отметить, что Unity имеет богатый набор технологических интеграций, включая цели VR/AR, консоли, мобильные устройства и, очевидно, Windows, MacOS и Linux. Хотя другие игровые движки также имеют широкую платформу, характер Unity и цели бизнеса, стоящего за Unity, способствуют внедрению новых технологий и платформ как первоклассному усилию. Многие новые технологии впервые доступны в Unity по сравнению с различными движками, а это означает, что можно рассматривать будущие игры Magic of the Realm, использующие альтернативные технологии. Возможно, я никогда не доберусь туда, но знание того, что это вариант, является ценным соображением.

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

Принятие моего решения использовать Unity

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