Страница 4 из 5
3. Движки и ваши личностные особенности
Я только что рассказал про два могущественных движка, которые позволяют воплотить в жизнь любые по сложности идеи, но тем не менее на Unity и Unreal Engine создается лишь около половины игр, выпускаемых в Steam. Некоторые крупные ААА-студии продолжают использовать свои собственные закрытые движки, чтобы меньше зависеть от сторонних компаний, и к этим ребятам вопросов у нас не имеется. Но что же движет небольшими студиями и соло-разработчиками, которые выбирают себе в качестве основного инструмента другие, куда менее популярные и продвинутые продукты?
Unreal Engine и Unity, по сути, не сложнее в освоении, чем другие «мелкие» и «неповоротливые» движки. С одной стороны, научиться на них работать даже проще: у Unity есть официальный бесплатный курс для начинающих разработчиков, а уж количество обучающих материалов по Unreal Engine зашкаливает, в то время как найти толковый обучающий курс по какому-нибудь Construct – задача непосильная.
Люди, выбравшие инструментом для воплощения своих идей весьма примитивные программы, на мой взгляд, опровергают популярное убеждение, упомянутое мною выше: якобы самое важное – чтобы инструмент использовался по назначению.
Но главное в выборе движка – это ваши личностные особенности. От них-то и надо отталкиваться.
Если вам будет некомфортно работать на выбранном движке, то вы не будете на нем работать. При разработке игры в одиночку нам ничто не мешает опустить руки и бросить свои светлые начинания. Нам важно создать условия, в которых вероятность устать от создания игр будет минимальной.
Ключевым нюансом в выборе движка является то, насколько вам приятно и удобно с ним работать. Уделите по одному вечеру каждому из движков, выполните в них по одному уроку и определитесь с тем, где вам было приятнее работать.
Даже если вы собрались делать 2D-игру, но вас привлекают эстетика «высокотехнологичности», сияющая новизна и чувство причастности к чему-то очень продвинутому – выбирайте Unreal Engine. Если же вам неприятно работать в Unreal Engine и он кажется вам излишне перегруженным, то какой бы проект вы ни делали с помощью этого инструмента – он навсегда останется недоделанным.
Если у вас есть планы найти работу в среде разработчиков, делать мобильные приложения или устроиться в игровую студию, то Unity на данный момент является движком, навык владения которым быстрее всех поможет вам найти работу. Если же вы все время спотыкаетесь о C#, чувствуете, как написание кода вас тормозит и мешает воплощать идеи в жизнь, а использование 3D для имитации 2D кажется вам глупостью, то у вас не получится раз за разом возвращаться к интерфейсу Unity и создавать свой продукт.
Construct – движок для работы только с 2D-графикой. Именно он – мой личный выбор. Construct полностью основан на визуальном программировании и создает среду, в которой работа с неким подобием кода протекает невероятно быстро. Я человек абсолютно не технического склада ума. Меня не пугает, что я не могу заглянуть «под капот» движка и до конца понять все процессы, которые скрываются за аккуратными «блоками» с условиями. Мне это просто неинтересно. Я могу уделить больше внимания спрайтам и визуальной составляющей моей игры. Именно внешний вид создаваемых мной продуктов для меня является важнейшим аспектом: я одержим контролем над каждым спрайтом, над каждой тенью и каждым эффектом, оттого предпочитаю классическую анимацию и полное отсутствие программных спецэффектов и постобработки в своих проектах. Такие игры, как Hollow Knight, Cuphead и Hotline Miami, не были созданы на Construct2, но могли бы – движок позволяет создать все то, что мы видели в этих играх (рис. 5).
Рис. 5. Логика поведений в Constuct. Слева – условие (пуля коснулась игрока), справа – событие (игрок уничтожен)
Упомянутая Hotline Miami была создана с помощью Gamemaker. Точно так же как и Construct, этот движок запирает разработчика в двух плоскостях, лишая его возможности создавать трехмерные игры. В Gamemaker используется собственный язык GML, который имеет и визуальное ответвление. GML отличается от языка Construct своей глубиной и сложностью, что делает Gamemaker инструментом, подходящим для людей с техническим складом ума. Если вас воодушевляет и дает силы работа именно с кодом, но при этом профильного образования у вас пока еще нет, то в создание игр на Gamemaker вполне можно втянуться.
Мне бы очень хотелось составить табличку в духе: если вам от движка нужно вот «это» и «это» – выбирайте «такой-то движок», но, во-первых, такие таблицы уже лежат на просторах Сети, а во-вторых (если вы правильно уловили мою мысль), существование такой таблицы не очень поможет вам выбрать инструмент.
Если при выборе движка отталкиваться только от технических требований к своей будущей игре, то велика вероятность, что вы натолкнетесь на программу, с которой не сможете «подружиться» и в среде, в которой не будете чувствовать себя комфортно. Если бы сотни моих вечеров, проведенных за работой в Construct, являли собой борьбу с логикой движка, его интерфейсом, а заодно с моим дискомфортом и ярым нежеланием возвращаться к работе, то я бы не довел до ума ни один из своих проектов. Именно соответствие Construct моим личностным особенностям помогло мне создать на нем три игры и провести в этой программе больше 6000 часов.
Работа с игровым движком напоминает общение между двумя людьми из разных стран. Вы очень плохо знаете язык приезжего, а если и заучите каждое слово, то вам все равно потребуются дополнительные годы, чтобы говорить на уровне носителя языка и понимать все культурные особенности своего товарища.
Каждый вечер вы будете пытаться объяснить этому иностранцу на ломаном подобии его наречия: «Я хочу, чтобы ты сделал “вот такую штуку”» (например, чтобы персонаж атаковал по нажатию на кнопку «Х»). Чтобы в понятной форме донести до движка ваши требования, вы должны быть терпеливы и внимательны. Сложно оставаться терпеливым и внимательным к продукту, который вызывает у вас только раздражение и ненависть.
Один мой знакомый был программистом веб-сайтов и неплохо знал такой язык программирования, как Java Script. Желание делать игры привело его к Unity – благодаря многочисленному сообществу и отличной маркетинговой кампании пути многих начинающих разработчиков упираются именно в Unity. В ходе разработки своего проекта с использованием всех предоставляемых Unity благ он начал спотыкаться о реализацию сложных и глубоких задач, вроде создания AI (искусственного интеллекта) или проработки поведения NPC. Знания Java Script едва ли помогали ему в этом деле. Скорее, напротив, они мешали освоить новую логику в новой среде.
Вместо удобного, раскрученного, многофункционального движка мой знакомый в итоге обратился к более низкоуровневому программированию и начал разработку проекта на «сухом» Java Script с использованием react-компонентов (готовой библиотекой некоторых шаблонов кода для реализации конкретных задач) и массово используемым готовым решением для корректно работающей физики под названием phaser.js. Работа над игрой стала для него куда менее утомительной, среда – куда более понятной и знакомой лично ему. Но набор его инструментов выглядит как что-то неповоротливое и сложное! Так почему ему не понравилось работать на Unity?
Его личный опыт, его склад ума и его знания поспособствовали тому, что работа на чем-то более, казалось бы, сложном и неудобном, протекала быстрее и приносила больше удовольствия.
Надеюсь, никто не забыл предисловия к этой книге, и не ждет, что я четко скажу вам в одном предложении, какой движок вам выбрать? Я не могу этого сделать – проблема выбора движка лежит на вас, я уже перечислил, на что нужно опираться в своем решении. Но я могу дать еще две подсказки.