В 21 веке делать игры на разные устройства могут не только опытные разработчики, но и новички в области программирования. А иногда – даже те, кто ранее был далек от IT вовсе. Google называет создание игрового контента одним из наиболее популярных направлений в области информационных технологий.

Если человек может сделать игру, он способен не просто развлекаться таким способом, а еще и зарабатывать. Причем неплохие деньги. Некоторые IT-компании готовы платить разработчикам игрового контента от 500 000 рублей и больше.

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

GameDev – обзор процесса

GameDev (или геймдев) – это создание игр. Процесс, в ходе которого можно сделать собственный развлекательный контент. Разработкой может заниматься как один человек, так и целый коллектив программистов.

Коммерческие игры, согласно Google, создаются преимущественно командами разработчиков, нанятыми теми или иными фирмами. Компании могут специализироваться на создании игрового контента для ПК, приставок или мобильных устройств. Процесс разработки, как уверяет Google, может финансироваться другой, более крупной организацией – издателем.

Разработка масштабных игр может обходиться в десятки миллионов долларов. А небольшие проекты, особенно создаваемые новичками, нередко вообще не требуют никаких затрат – кроме времени программиста.

Способы разработки

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

Согласно Google, писать игры можно несколькими способами:

  1. С нуля. Этот вариант больше всего подходит новичкам для небольших проектов, а также опытным разработчикам для масштабных идей. Исходные коды таких «игрушек» будут писаться полностью вручную. С него можно начать для того, чтобы разобраться с языками программирования досконально.
  2. При помощи шаблонов. Шаблон – это готовый блок, который используется для тех или иных проектов. Игры – не исключение. Чтобы сделать первый игровой проект, обычно можно достать готовые шаблоны и настроить их под себя. Для этого достаточно настроить компоненты на собственные. Данный вариант хорош для новичков и тех, кто хочет просто посмотреть, как пишутся игры. Уникальный и большой проект с помощью шаблонов создать не получится.
  3. Через движки. Это еще один распространенный вариант программирования, согласно Google. С его помощью даже новичок сможет достаточно быстро получить на выходе игру для одной из популярных платформ. Движки обычно имеют все необходимое для геймдева. Это оптимальное решение для разработчика.

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

План создания видеоигр

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

Если описать разработку компьютерных игр в общих чертах, можно представить себе ее план примерно так:

  1. Придумать идею, а также жанр и сеттинг. В зависимости от этих моментов будет меняться дальнейший алгоритм действий. Можно выбрать современные тренды и написать что-то популярного жанра, а можно сделать своеобразный клон существующих развлекательных проектов, чтобы набраться опыта. Google отмечает, что также можно сделать что-нибудь уникальное. 
  2. Определиться с платформой, на которой будет работать контент. Сейчас игры пишутся под компьютеры, приставки или мобильные устройства. Некоторые развлекательные проекты создаются в качестве кроссплатформенных продуктов. Они будут запускаться на любых устройствах, но обычно имеют меньшую функциональность. Выбор оптимальной платформы также зависит от того, какой жанр будет у игрового контента, а также от функциональных возможностей задумки.
  3. Выбрать язык программирования для написания исходного кода. Именно на этом этапе важно понимать, для какой платформы создается программа.
  4. Определиться с движком. Google отмечает, что такой вариант подходит и новичкам в геймдеве, и более опытным их «коллегам». Каждый движок имеет свои ключевые особенности. Иногда  можно создавать видеоигры без навыков разработки, а когда-то они нужны, но в минимальном «наборе».
  5. Создать дизайн-документ. Там необходимо описать всю игру: механики, сюжетные детали, параметры баланса, графику и так далее. Google отмечает, что можно продумать дизайн-документ перед выбором движка.
  6. Сформировать команду. Данный этап, согласно Google, не является обязательным. Над некоторыми проектами программист способен трудиться полностью самостоятельно. А вот для крупных идей лучше собрать команду и распределить различные задачи. Этот прием позволит добиться наибольшей продуктивности.
  7. Написать программный код. Это наиболее значимый и сложный этап. Во время него осуществляется реализация ранее продуманных идей.
  8. Создать графику. Google подчеркивает, что она может создаваться совместно с программным кодом.
  9. Собрать проект – «совместить» исходный код и графику.
  10. Провести тестирование. Google отмечает, что без этого этапа видеоигра может оказаться провальной. Это касается даже небольших проектов. Во время тестирования разработчики и тестировщики проверяют исправность своего программного продукта, а также его соответствие техническому заданию.
  11. Выложить релиз. Видео игра может быть представлена в качестве свободной разработки и размещаться в Интернете «просто так». Но большинство ресурсов, особенно коммерческих, выкладываются на специализированных платформах. В качестве примера стоит привести Play Market или Steam. Бесплатные разработки там тоже встречаются.

Примерный план того, что нужно для создания собственной видео игры, изучен. Google отмечает, что при использовании игрового движка можно облегчить этап программирования, создания физики и механики, эффектов и графики. В таких приложениях есть все необходимое для реализации поставленной задачи.

Далее некоторые наиболее значимые этапы будут рассмотрены более подробно. Эта информация поможет более эффективно подойти к геймдеву даже тем, кто ранее не имел никакого опыта в соответствующей сфере.

Выбор движка

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

Согласно Google, наибольшим спросом при создании видеоигр пользуются движки: Game Maker: Studio, а также Unity 3D и Unreal Engine. Все эти приложения для программирования игрового контента позволяют писать кроссплатформенные проекты: для компьютеров, мобильных устройств и консолей.

Unity3D

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

Unity выступает своеобразным стандартом разработки мобильных проектов. К его преимуществам относят:

  1. Бесплатное распространение. Платить придется только тогда, когда годовой доход от игрового проекта превышает 200 000 долларов США.
  2. Поддержку разных языков программирования, включая C#. Он не слишком сложный в плане изучения.
  3. Наличие системы визуального скриптинга под названием Bolts. С помощью нее в видеоигру изменения сможет вносить дизайнер. Привлекать к операции программиста, как уверяет Google, не придется.
  4. Поддержку экспорта игры для браузеров.

Недостатки у Unity3D тоже есть. К ним относят проблемы при создании фотореалистичной картинки на экране. А еще не исключены трудности при переходе на новую версию движка.

Unreal Engine

Unreal Engine – основной конкурент Unity. Google подчеркивает, что у соответствующего программного обеспечения потрясающая «картинка» и новейшие технологии.

К преимуществам Unreal Engine относят:

  1. Бесплатное распространение движка. Платить за его использование не нужно до тех пор, пока разработчик не получит 1 000 000 долларов с проекта. Далее придется отдавать процент от прибыли создателям движка.
  2. Google отмечает среди преимуществ технологии фотореалистичного рендера.
  3. Возможность проверки на большой пользовательской базе новых технологий движка.
  4. Наличие визуального программирования. Google отмечает, что для этого есть инструмент Blueprints. С его помощью получится расставлять мышью блоки и связывать их между собой, формируя игровую логику. Писать исходный код с нуля нет никакой необходимости.

Unreal Engine требует изучения C++ для программирования, если не использовать Blueprints. Также это программное обеспечение, согласно Google, не подходит для разработки мобильных игр и 2D-видеоигр. Это связано с размером исходных файлов и наличием небольшого функционала для двухмерных игр по сравнению с Unity. Экспортировать видеоигры для браузера с помощью Unreal Engine не получится.

Game Maker: Studio

Данный движок ориентирован на создание двухмерных видеоигр. Он обычно используется инди-разработчиками. Позволяет очень быстро прототипировать и создавать 2D-игры. У Game Maker есть режим визуальной разработки для новичков. Вместе с ним получится миновать написание исходного кода. Также движок позволяет экспортировать игру для браузера.

Game Maker, согласно информации из Google, не подходит для создания полноценных 3D-продуктов, хотя в нем поддерживаются функции для них. Программное обеспечение лишено многопоточности. А еще у него нет детализированной бесплатной версии – только базовый вариант с экспортом для веба на сервис gx.games. Остальные разработки движка с теми или иными ограничениями доступны по подписке.

Язык для геймдева

Универсального языка, с помощью которого возможно создание собственной игры, нет. Google указывает на то, что можно пользоваться любым инструментом соответствующего типа – от Python до C++, от Pascal до Java. Все зависит от конкретного проекта.

В зависимости от выбранного языка разработки будет меняться время выпуска видеоигры, а также платформа, для которой она выйдет. Производительность тоже зависит от языка.

C++ подходит для кроссплатформенной разработки, JavaScript и PHP – для браузерных игр. Если планируется использование движков, лучше изучить C#. С его помощью прописываются скрипты. Главное – отказаться от недооцененности языков. Тот же Minecraft был написан на Java.

Основные игровые компоненты

Когда движок и язык разработки выбран, а сюжет видеоигры продуман, самое время двигаться дальше. Нужно проработать все компоненты будущего проекта.

Если человек пишет видеоигру «с нуля», ему придется создавать все игровые элементы самостоятельно. В случае с движками – пользоваться предлагаемыми готовыми решениями. Далее предстоит выяснить, из чего состоит любая игра.

Физика

Google отмечает, что физика – это то, как игровой мир реагирует на пользовательские действия или на действия объектов внутри мира. К физическим действиям относят:

  • бег;
  • прыжки;
  • ходьбу;
  • удары;
  • выстрелы;
  • езду;
  • падение предметов и так далее.

Чтобы реализовать обычный прыжок, как говорит Google, нужно проверить, что персонаж стоит на земле. Далее – менять координату Y для поднятия игрока вверх и закончить подъем в тот или иной момент. После – начать падение до тех пор, пока игрок не окажется на земле. Все это сопровождается соответствующей анимацией.

В движках физика уже прописана. Ее остается только настроить под собственную разработку. Это значительно упрощает создание видеоигры.

Механика

Механика – это то, как игрок будет взаимодействовать с игровым миром. Совокупность игровых механик формирует игровой процесс. Если в игре есть ходьба и прыжки, она может выступать платформером.

Google отмечает, что при добавлении механики получения опыта, прокачки навыков и повышения уровней, у разработчика получится RPG. Механика – это важный игровой компонент, наравне с графикой и сюжетом.

Графика

Раньше графика, если верить Google, создавалась только при помощи программного кода. Чуть позже появились спрайты и текстуры, а также 3D-модели. Все это нужно подготовить или с нуля, или через движки. А затем – добавить в игру.

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

Баланс

Google называет игровой баланс важной составляющей. Это значит, что каждый противник должен иметь сильные и слабые стороны. Так геймплей не будет выглядеть как борьба с полевыми цветами или многочасовая перестрелка с боссом.

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

Искусственный интеллект

Иногда в видеоиграх предусматривается взаимодействие игроков с NPC. В этом случае нужно приписать неигровым персонажам те или иные модели поведения. Лучше всего для этого использовать искусственный интеллект.

Такую работу Google называет одной из самых сложных. Это связано с тем, что придется учитывать огромное количество ситуаций, для которых задумана та или иная реакция.

Все это – только основы геймдева. Научиться писать игры с нуля или через движки помогут дистанционные компьютерные курсы.

Интересует GameDev-направление? Обратите внимание на авторские курсы в Otus!