Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
22 Янв 2024
13 мин
14942

Как создать игру на ПК

Рассказываем, как программировать игры и какие инструменты для этого нужны.

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

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

Разработка на Java — востребованное направление, такие специалисты будут нужны на рынке еще долго. На курсе «Java-разработчик» от Skypro освоить профессию можно с нуля за 11 месяцев, даже если вы гуманитарий и ничего не знаете об IT. Программа составлена от простого к сложному и адаптирована для новичков. Преподаватели — практикующие специалисты из крупных компаний: «Сбер», «Самокат» и других.

С чего начать разработку игры

Разработать игру — сложно. Особенно сложно сделать это самостоятельно. Слишком много информации, которую в одиночку не осилить. Чтобы начать разработку игры, нужно:

  • Придумать идею игры, жанр и сеттинг. Можно следовать трендам и разработать что-то хайповое. Можно сделать клон существующей игры, чтобы набраться опыта. А можно попробовать сразу сделать что-то уникальное.
  • Выбрать платформу. ПК и приставки и/или мобилки. Выбор платформы зависит от жанра игры, ваших возможностей и предпочтений.
  • Написать дизайн-документ. Там описывают всю игру: геймплейные механики и детали сюжета, параметры баланса, графический стиль и так далее.
  • Выбрать движок. Он должен подходить по требованиям для реализации выбранного жанра, графического стиля, а еще поддерживать экспорт на нужную платформу.
  • Собрать команду. Лучше разделить ответственность за разные стороны разработки игры между несколькими специалистами — так будет продуктивнее.

Среда разработки

Есть много разных движков и конструкторов игр. Выбрать сложно, но мы посмотрим статистику Steam и попробуем определиться:

Из статистики видно, что три самых популярных движка по выпущенным играм в Steam — это Unity, Unreal Engine и Game Maker: Studio.

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

На всех этих движках можно делать игры для ПК, консолей и мобильных платформ.

Unity

Самый популярный движок для разработки игр в любом жанре и на любой платформе. Де-факто — это стандарт для разработки мобильных проектов.

Плюсы:

  1. Персональная версия движка доступна бесплатно при годовом доходе меньше $200 000.
  2. Не самый сложный и довольно популярный язык программирования C#.
  3. Есть система визуального скриптинга Bolts, с помощью которой можно вносить изменения в игру дизайнеру самостоятельно, не задействуя программиста.
  4. Можно экспортировать игру для браузера.

Минусы:

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

Unreal Engine

Основной конкурент Unity среди 3D-движков, известен отличной картинкой и технологиями. Вместе с пятой версией движка Epic Games презентовали технологии Nanite и Lumen — они могут масштабировать и отображать модели из миллионов полигонов. А еще в них есть система динамического глобального освещения, которая делает картинку крайне реалистичной.

Плюсы:

  1. Движок бесплатный до первого заработанного миллиона в долларах, дальше нужно будет отдавать процент с дохода.
  2. Современные технологии фотореалистичного рендера — «Матрицу» на Unreal Engine порой тяжело отличить от фильма.
  3. Fortnite, который разрабатывают авторы Unreal Engine, позволяет заранее обкатывать на большой базе пользователей новые фичи движка.
  4. Визуальное программирование с помощью Blueprints — вместо того чтобы писать код вручную, можно расставлять мышью специальные блоки и связывать их между собой, создавая логику программы.

Минусы:

  1. Если не использовать Blueprints, то придется изучать довольно сложный язык C++.
  2. Не самое оптимальное решение для разработки мобильных игр — нужно приложить много усилий, чтобы оптимизировать рендер и размер игры для мобильных устройств.
  3. Не такой развитый функционал для создания 2D-игр по сравнению со специализированными движками (Game Maker) или с Unity.
  4. Нет возможности экспортировать игру для браузера.

Game Maker: Studio

Движок для создания двухмерных игр. Обычно его используют небольшие инди-команды.

Плюсы:

  1. На этом движке можно быстро прототипировать и разрабатывать 2D-игры.
  2. Для новичков есть режим визуального программирования без написания кода.
  3. Можно экспортировать игру для браузера.

Минусы:

  1. Не подходит для полноценного 3D, хотя в нём есть базовые функции по загрузке трехмерных объектов.
  2. Нет мультипоточности — если планируете делать сложный 2D-проект, нужно хорошо поработать над оптимизацией: распределять сложные вычисления между несколькими кадрами, оптимизировать алгоритмы, выносить сложные процессы типа поиска пути во внешние dll, написанные на C++, и использовать другие хитрости.
  3. Бесплатная только базовая версия, из которой можно экспортировать игру только для веба на сервис gx.games. Остальные версии движка с разными ограничениями — по подписке.

Какой язык программирования нужен

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

А если в движке есть система визуального программирования, как в Unreal Engine или Unity, можно обойтись вообще без написания кода. Как минимум для создания прототипа.

Как выбрать платформу

При выборе платформы стоит ориентироваться на жанр игры: времена, когда на ПК играли в «собери в ряд», давно в прошлом, сейчас для этого есть смартфоны. А для хардкорной RPG больше подойдет консоль или компьютер.

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

Но если требуется много кнопок (авиасимуляторы), высокая точность управления (платформеры) или на экран нужно выводить много информации (стратегии) — то смартфон в качестве платформы не подойдет.

ПК и приставки равнозначны по возможным жанрам. За исключением части хардкорных игр, где геймпад приставки не подходит для управления: авиа- и другие симуляторы или стратегии в реальном времени.

ПК

Плюсы:

  1. Для разработки и тестирования не нужны специальные устройства — достаточно компьютера.
  2. Большая аудитория хардкорных и мидкорных геймеров.
    Много инди-площадок, на которые можно бесплатно выложить свою игру и получить обратную связь.

Минусы:

  1. Большая конкуренция — за 2021 год в Steam вышло почти 12 тысяч игр, 27% из них продались тиражом меньше ста копий.
  2. Нужно быть готовыми, что ваша игра окажется на торрентах в день релиза.
  3. Всегда есть вероятность, что найдется игрок с такой конфигурацией ПК, на которой ваша игра будет работать некорректно.

Приставки

Плюсы:

  1. На консоли гораздо сложнее создать игру, поэтому здесь меньше конкуренция.
  2. Оптимизировать и поддерживать игру проще на консоли. потому что есть всего несколько конфигураций устройств, на которых будет запускаться игра.
  3. Большая аудитория хардкорных и мидкорных геймеров.
  4. Маленький процент пиратства.

Минусы:

  1. Для инди-разработчика сложно самостоятельно договориться и оформить соглашение с консольными платформодержателями, поэтому ему понадобится издатель с выходом на консольный рынок.
  2. Для тестирования игры во время разработки нужен девкит — специальная версия консоли для разработчиков. Такие устройства в магазине не найти, их могут прислать только соответствующие платформодержатели после заключения договора.
  3. Управление в игре должно быть заточено под геймпад. Если вы делаете игру на ПК и на консоли, придется поддерживать два разных способа управления — «клавамышь» или геймпад.
  4. Не все жанры приживаются на консолях — сомнительное удовольствие играть с геймпада в стратегию в реальном времени.

Мобилки

Плюсы:

  1. Можно очень быстро сделать прототип игры: в мобильных играх обычно мало механик.
  2. Гиперказуальные игры прототипируются от пары часов до пары дней.
  3. Требования к графике сильно ниже, чем на ПК или на консолях.

Минусы:

  1. Огромная конкуренция — в 2021 году в Google Play было выпущено 187 тысяч игр: это 520 игр в день.
  2. Нужно вложить много денег в рекламу — без нее вашей игры фактически не существует.
    Добро пожаловать в мир аналитики — CPI, DAU, MAU, Retention, ARPU и еще много других непонятных слов, в которых придется разобраться и которые напрямую влияют на успех мобильной игры.
  3. Даже если игра не предполагает обновлений после релиза, этим всё равно нужно будет заниматься: в Google Play или AppStore периодически меняются правила по защите персональных данных — и вместе с этим устаревают SDK, с помощью которых показывается реклама или собирается аналитика. Если SDK периодически не обновлять, то игру просто удалят.

Игры и другие приложения для мобильных устройств часто разрабатывают на Java. Это один из самых популярных языков программирования. Освоить его можно на курсе Skypro «Java-разработчик». Обучение проводят эксперты — руководители направлений в топовых компаниях. Они дают необходимый минимум теории и много практики. А кураторы помогают и поддерживают мотивацию. За несколько месяцев можно выйти с нуля на уровень уверенного новичка в разработке.

Браузеры

Плюсы:

  1. Проще всего начать играть — не нужно ничего устанавливать, браузер есть и в телефоне, и на ПК.

Минусы:

  1. Далеко не все движки позволяют экспортировать игру в браузер — например, в Unreal Engine такой возможности нет.
  2. Управление в игре нужно адаптировать под сенсорное управление, если вы хотите, чтобы играть можно было с телефона.
  3. Браузер — не самая эффективная платформа для сложных 3D-игр, поэтому игру придется сильно оптимизировать и урезать графику.

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

Геймплей и игровые механики

Геймплей — это взаимодействие игрока с игровыми механиками: стрельба из оружия, инвентарь, замедление времени, стелс, регенерация здоровья и так далее.

Игровых механик может быть немного. Например, в гиперказуальных играх может быть одна игровая механика: в Flappy Bird нужно управлять птичкой тапами и избегать препятствий. Врезался — проиграл. Вот и вся игра.

Сюжет и персонажи

Интересный сюжет не может испортить игру. А харизматичный герой добавит эпичности игре даже с очень условным сюжетом — мало кто вспомнит подробности истории из первого Doom (1993), но Думгая вспомнят точно.

Графический дизайн

Стилизацию и гейм-дизайн игры определяет графический дизайн. В шутере может быть фотореалистичная графика, а в головоломке — простые и минималистичные формы. И наоборот. Дизайн должен соответствовать задумке игры.

Звук

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

Баланс

Необязательно искать идеальный баланс — главное, чтобы игрок ощущал челлендж и верил, что только благодаря отточенным навыкам ему удалось пройти этот сложный уровень. Но на самом деле игра ему поддалась в нужный момент.

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

Этапы создания

Концептирование

Сначала нужно придумать идею игры, а потом выбрать жанр и сеттинг, которые смогут в полной мере раскрыть эту идею.

Затем нужно перенести придуманную игру из головы в дизайн-документ. В нём описать все механики, геймплей, сюжет и другие составляющие игры. Это по сути инструкция к разработке игры для самих разработчиков. Задумав новую фичу, дизайнер сперва описывает ее в дизайн-документе — и уже после этого исполнители могут обращаться к этому документу и реализовывать фичи.

На этом этапе можно жонглировать идеями и изменять концепт хоть каждый день: временные расходы на это минимальны.

Прототипирование

Идея игры есть, дизайн-документ готов — можно приступать к разработке. Но если вы придумали нечто экспериментальное и поэтому не уверены в сочетаемости выбранных механик, сначала можно сделать прототип игры.

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

На этом этапе еще можно изменять дизайн-документ без особых трудностей: прототип можно быстро переделать.

Производство

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

В процессе разработки стоит начать заниматься раскруткой игры: публиковать на Reddit гифки с интересными моментами из геймплея, участвовать в «Скриншотных субботниках», фестивалях демоверсий в Steam. Таким образом к релизу уже можно собрать сообщество и получить какое-то количество вишлистов.

Тестирование

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

Тестировщика еще называют специалистом по качеству продукта. Именно он отвечает за то, чтобы в готовом релизе всё было идеально: даже при высокой нагрузке игра не зависала и не выдавала ошибку. Для этого специалист проверяет отдельные куски кода, всю программу и готовую игру с помощью ручных и автоматических тестов. Чтобы уметь их создавать, а потом писать отчеты о найденных ошибках, можно пройти курс Skypro «Инженер по тестированию».

Есть несколько путей, по которым можно пойти:

  1. Обратиться в специальные компании, которые тестируют на аутсорсе. Там всё серьезно: видеоотчеты с веб-камерой, направленной на тестера, подробная обратная связь и инструкции по воспроизведению ошибок. Но это дорого.
  2. Найти несколько тестировщиков-любителей. Выбирать лучше тщательно, чтобы ваш продукт протестировали не совсем новички.
  3. Использовать комьюнити: там есть самые заинтересованные в игре люди, от которых можно ожидать полной отдачи и внимания к деталям, хотя баг-репорты вряд ли будут профессиональными. Но это бесплатно.

Релиз

Нельзя просто так взять и зарелизить игру без рекламной кампании — или результат будет посредственным. Анонс стоит проводить минимум за полгода-год до релиза: за это время нужно собрать вокруг игры комьюнити и достаточное количество вишлистов в Steam.

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

Техподдержка

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

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

Команда

Часто в инди-разработке один человек занимается сразу несколькими вещами одновременно, например дизайном, тестированием и маркетингом, а другой программирует и рисует. Но чем крупнее команда, тем более специализированные роли отводятся ее участникам.

Гейм-дизайнер

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

Программист

Проектирует архитектуру игры, программирует механики. Совершает ошибки в коде — поэтому у тестировщиков всегда есть работа.

Тестировщик

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

Получить профессию тестировщика можно на курсе Skypro «Инженер по тестированию». За несколько месяцев изучите базовую теорию, научитесь проводить ручные и автоматические тесты, освоите основы SQL и Python. Под руководством опытных наставников и кураторов будете практиковаться на реальных задачах, а курсовые положите в портфолио.

Художник

Рисует спрайты, фоны, иконки, создает 3D-модели, текстурирует, настраивает анимации. Арт-директор следит за общем стилем игры и сочетанием разных элементов.

Маркетолог

Если речь о мобильной игре — то человек, который умеет настраивать монетизацию и закупать трафик, будет чуть ли не важнее геймдизайнера.

Коротко о главном

  • Обязательно составьте дизайн-документ.
  • Если не уверены в игровых механиках, которые выбрали, сделайте прототип и протестируйте его на ком-нибудь.
  • Начинайте раскрутку игры уже во время разработки: на релизе заниматься этим будет уже поздно.
  • При выборе движка исходите из требований к жанру, стилистике и платформе.
  • Можно попробовать всё сделать самому, но лучше собрать команду и заняться тем, что действительно нравится в разработке игры.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий