Создание новой игры

Создание новой игры

Как создать новую игру?

Для создания новой игры нужно за несколько недель:

  1. Придумать идею для игры.
  2. Написать концепт.
  3. Сделать бумажный прототип.
  4. Расписать мету.
  5. Ответить на вопросы о гейм-дизайне и не только
  6. Подумать на каких платформы вы её будите выпускать
  7. Выбрать игровой движок

Платформы

Разработка игр для смартфонов, ПК и консолей значительно отличается. Хотя бы потому, что у них разные технические характеристики, устройства ввода/вывода и способы распространения продукта. Сразу сделать одну игру на несколько платформ не получится, но об этом мы еще поговорим. А пока рассмотрим особенности каждой из платформ и перейдем к движкам.

Мобильные устройства

  • Тачскрин для ввода и вывода информации — следовательно, пальцы не должны закрывать важные элементы интерфейса.
  • Смартфоны и планшеты должно быть удобно держать, чтобы играть одной/двумя руками. Отлично подходит для казуальных игр (match-3, hidden object, интерактивных историй и так далее), а для шутеров — не очень.
  • Ограниченная оперативная и графическая память, которые часто совмещены. Нужно постоянно следить за ними, отгружать ненужные ресурсы, текстуры и ужимать звук, то есть использовать форматы с компрессией.
  • Ограничения графики. Можно сделать крутые шейдеры как в Crysis, но на телефоне это будет жутко тормозить.
  • Частые потери пакетов, пинг в 200 мс — норма. В случае сетевых игр это нужно учитывать.
  • Распространение через сторы (App Store, Google Play, Amazon). Понадобится поддержка API покупок, социальных функций и так далее.
  • Для Android придется учитывать огромное количество гаджетов с разной производительностью, соотношением сторон экрана и разрешением.

ПК

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

Консоли

  • Управление с джойстика. Лучше подходит для аркад, файтингов, игр от 3-го лица, но не так удобно для шутеров. Хотя последнее поколение геймеров играет с джойстика не хуже, чем с клавиатуры и мыши.
  • Продвинутые графические технологии.
  • Ограниченное количество конфигураций устройств. Например, если разработка ведётся под Xbox One или PS4, то нужно знать особенности только этих устройств, а значит и тестировать будет проще. В отличии от различных конфигураций ПК или целого «зоопарка» устройств на Android.
  • Не все плагины портированы или хорошо работают, например, сетевые библиотеки и плагины аналитики. Но в последнее время их становится больше).
  • Вывод на экран телевизора/проектора. У кого-то может стоять новый изогнутый Samsung, а у кого-то бабушкин «ящик» с электронно-лучевой трубкой — это тоже нужно учитывать.
  • Чтобы выпустить игру на консоли, нужно пройти лицензирование — процесс проверки соответствия игры стандартам платформы. Это долгий процесс, со множеством условий и ограничений. Например, при портировании одной игры на консоль от Nintendo я с командой когда-то не прошёл лицензирование с первого раза из-за того, что время загрузки уровня было больше половины секунды, а по их правилам это нужно обозначать в виде иконки загрузки или надписи Loading. И таких нюансов немало.

Web

  • Ограничения на размер игры, поскольку она будет загружаться в браузере. Никто не любит долго ждать. А еще некоторые играют в браузере телефона и платят за трафик. В общем, делать полноценный AAA-тайтл нет смысла.
  • Ограничения по 3D (используется WebGl). Поэтому в Web в основном выходят 2D-игры.
  • Ограничения по сетевой игре, ведь обычные сокеты недоступны. Можно делать запросы по https или использовать WebSockets. В основном на Web можно делать простые игры с небольшим количеством запросов к серверу. Например, фермы. Сетевые 3D-шутеры делать тоже можно, но сложно.
  • Дешёвая интеграция с соцсетями. В первую очередь, Facebook. Поэтому делается упор на социальную составляющую.

VR

  • Необычное управление: головой, перчатками, перемещением, джойстиками. Все эти устройства нужно поддерживать, у них обычно свой SDK. Кроме того, управление нужно сделать «естественным» для человека.
  • Эффект укачивания. Не всем шлем может «зайти», а при плохой реализации игры стошнит даже самого стойкого. Чтобы этого не было, движения в игре обычно делают плавными.
  • «Экран» VR-шлема делится на две части — по одной на глаз. Поэтому, чем выше разрешение, тем качественнее получается картинка. Если сравнить картинку на PS VR и HTC Vive, у последнего она будет детальнее, а потому и погружение ощущается лучше.
  • Совершенно другой пользовательский интерфейс, по сравнению с ПК и мобильными устройствами Обычно он трехмерный, а чтобы нажать на какой-нибудь элемент нужно задержать взгляд на определенной кнопке.

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

Совет для начинающих:

  • Лучше начать с одной платформы, на которой вам самим нравится играть — вы уже хорошо в ней разбираетесь.
  • Тестировать игры для мобильных устройств или ПК обычно в разы проще, чем, например, для консоли. Смартфоны и компьютеры есть почти у всех, и от нажатия кнопки Build в редакторе до загрузки прототипа на устройство может пройти лишь несколько секунд.

Обзор основных движков

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

Unity

Один из самых популярных движков на сегодня.

Платформы: мобильные устройства, ПК, Mac, Linux, консоли, Facebook, WebGl, VR и другие.

Unity идеально подходит для разработки под мобильные устройства (но не только). На нём сделаны Angry Birds 2, Hitman Go, Heartstone, Monument Valley, Fallout Shelter, Ori and the Blind Forest, Pillars of Eternity, Firewatch, Inside, Pokémon Go, Super Mario Run, Cuphead, Escape from Tarkov, Life Is Strange: Before the Storm и множество других популярных игр.

Fallout: Shelter

В Unity можно спокойно разрабатывать как 2D, так и 3D-проекты. В Asset Storeесть много готовых платных и бесплатных решений: модели, текстуры, анимации и полноценные проекты. Например, шутер про зомби. Очень много обучающих материалов как от самих Unity, так и от энтузиастов на YouTube (подробнее расскажем в следующем материале цикла). Плюс множество плагинов для рекламы и внутриигровых покупок.

Язык программирования: C #, по сравнению c С++ у него меньше возможностей выстрелить себе в колено, в частности, это касается работы с памятью. Также поддерживается JavaScript, который на самом деле UnityScript. Если писать код совсем лень или нет навыков, есть плагины, которые позволяют делать игры без написания кода, например, Playmaker. Правда, за него придется выложить 45 долларов.

Что делать, если не знаешь языка C# ?

Попробуйте программу C Sharp Maker. С её помощью можно создавать различные скрипты для игр на Unity, даже не зная самого языка программирования! Простые блоки смогут облегчить разработку игры, а также русский текст и описание не сможет вызвать затруднений в создании кода.

Кто-то ругает Unity за графику, но на самом деле графику можно сделать красивой на любом движке, просто в Unity она по умолчанию средняя. В последней версии движка появился новый Rendering Pipeline, и с ним вполне можно делать графику на уровне топовых AAA-проектов.

Стоимость движка: бесплатно, если разработчик зарабатывает на игре меньше $100 тысяч в год. Иначе — подписка, но тогда это не будет большой проблемой.

Unreal Engine

Очень продвинутый движок, сообщество которого в последнее время быстро растет, чему способствует компания-разработчик Epic Games. По Unreal Engine проводятся митапы, стримы, а в этом году прошла первая конференция, посвященная разработке на Unreal.

Платформы: движок в первую очередь для тех, кто хочет делать проекты с крутой графикой на ПК и консолях. Для мобильных устройств тоже подходит, но пока популярных мобильных игр на Unreal Engine немного: Fortnite и PUBG. Ещё на нём сделаны серия Infinity Blade, Batman: Arkham Knight и Life is Strange.

Fortnite

Язык разработки: C++. Кого-то это может отпугнуть, но есть решение — блюпринты. С их помощью теоретически можно разработать игру, не написав ни строчки кода. На практике — это очень полезно для быстрой разработки прототипов. Также есть магазин ассетов Unreal Engine Marketplace, где можно скачать готовые модели, звуки и полноценные проекты.

Злые языки говорят, что Unreal Engine превосходит Unity по графике. На самом деле это просто разные движки. Хотя частицы и пост-эффекты в Unreal Engine по умолчанию всё же красивее.

Стоимость движка: 5% роялти, если разработчик зарабатывает на игре больше $3000 за квартал.

CryEngine

Стал известным после выхода Crysis — прорывной для своего времени игры. На нём вышло очень много крутых больших игр: первый Far Cry, MechWarrior Online, Sniper: Ghost Warrior 3, Armored Warfare, Homefront: The Revolution, Prey 2017-го года.

Prey

Платформы: ПК, консоли и VR. Официальной поддержки мобильных устройств нет, но по слухам разрабатывать можно.

Код движка можно модифицировать, что приносит как радость, так и боль. Я сам работал с CryEngine 2 — много модифицировали движок, исправляли баги, а когда попытались перейти на CryEngine 3 — потратили месяц и в итоге вернулись на предыдущую версию, так и не справившись с некоторыми проблемами.

Язык разработки: C++. Совсем недавно появился Marketplace с ассетами.

Стоимость движка: начиная с пятой версии — 5% роялти с при доходе с игры более $5000, а ведь помню времена, когда он стоил миллион евро.

Lumberyard

Молодой и бесплатный движок с открытым исходным кодом от Amazon на основе CryEngine для разработки игр AAA-класса. Главная особенность — встроенная поддержка сервисов от Amazon, например, AWS и Twitch.

Платформы: Windows, PlayStation 4, Xbox One, iOS, Android, VR (Oculus Rift, HTC Vive).

Серьезных проектов на Lumberyard в разработке пока можно пересчитать по пальцам, а выпущенных проектов нет вообще.

Язык разработки: C++.

Стоимость движка: бесплатный, но за поддержку сервисов Amazon придётся заплатить.

Другие движки

В последнее время среди разработчиков игр для Web набирают популярность HTML5-движки. В их основе лежит WebGL, WebAudio и JavaScript. Самые популярные движки: Phaser и Turbulenz.

Phaser

Отлично поддерживается создателями. Полезных фич много: спрайтовая графика, анимации, система частиц, 2D-физика, загрузка ресурсов одной строчкой кода, поддержка нескольких камер. Плюс поддержка мобильных браузеров и система плагинов для расширения функциий движка.

Лучше всего подходит для простеньких браузерных 2D-игр (match-3, hidden object, гонки).

Платформы: ПК, iOS, Android.

Turbulenz

Этот движок уже поддерживает 3D-графику с динамическим освещением, физику, обрабатываемую в реальном времени и мультиплеер с присоединением к игре в один клик по ссылке и интеграции с соцсетями. Но игр на Turbulenz пока немного.

Платформы: Web, ПК и PlayStation 4.

Есть и нишевые движки для визуальных новелл, головоломок, RPG старой школы и других 2D-игр. Например, Corona SDK, GameSalad, Cocos2d, Game Maker. В Википедии есть большой список игровых движков, но перечисленных выше должно быть достаточно.

Hotline Miami — одна из многих известных игр, сделанных на Game Maker

Мы в компании считаем, что для новичков лучше всего подходит Unity. По нему очень много подробных обучающих материалов, простейшую игру можно сделать за день (умелец запилит Flappy Bird за пару часов), легко деплоить на девайсы. Мы сами используем Unity для разработки игр и прототипов, поэтому в следующих материалах цикла «Разработка» будем больше акцентировать внимание именно на этом движке.

Домашнее задание

Для закрепления данной темы по созданию новой игры можете выполнить это домашнее задание:

  1. Выберите платформу, для которой вы будете делать игру в первую очередь, учитывая все особенности своего проекта.
  2. Выберите и установите движок, который вам подходит (для начала мы рекомендуем Unity).

Для быстрого создания новой игры можно воспользоваться нашей программой (для простого создания игр в Unity)