Как создать простую 2D-игру на Unity
На создание игры обычно уходит много времени и сил, но движок Unity значительно облегчает процесс. И в 2D-, и в 3D-играх.



Евгений Кучерявый
Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Сохранитесь и подпишитесь: наш Telegram-канал «Чекпоинт» — уютное место, где мы рассказываем об играх и о том, как они создаются.
С помощью Unity сделаны такие игры, как:
- Outlast;
- Hearthstone;
- Cuphead;
- Rust;
- Firewatch;
- Inside;
- Cities: Skylines и другие.
Из статьи вы узнаете, из каких компонентов создаётся игра и как написать свой первый проект. Вот такие нас ждут этапы:
- Создаем проект в Unity.
- Добавляем первый объект.
- Пишем скрипт.
- Назначаем триггер.
Почему Unity
Unity в несколько раз ускоряет разработку, потому что берёт на себя физику, графику, анимацию и работу со звуком. На движке делают игры практически для всех платформ. Причём пользуются им не только инди-разработчики, но и крупные студии.
Как именно пользоваться движком Unity и создавать крутые проекты, — мы учим на курсе «Разработчик игр с 0 до PRO».
Как установить Unity
Скачиваем Unity на официальном сайте. Новичкам достаточно бесплатного тарифа Personal.
Последняя версия движка может не поддерживаться на старых компьютерах. Если так, то подходящую стоит поискать в архиве версий. Игра для этой статьи написана на Unity 5.5.0f3. Интерфейс более поздних версий не сильно менялся, поэтому руководство подойдёт и для них.
Игры на старых версиях движка потребляют больше ресурсов устройства при меньшей сложности. Кроме того, в них встречаются уязвимости и ошибки. Но главная проблема в том, что некоторые платформы больше не поддерживают игры, созданные на старых версиях, так как было изменено API.
- Запустите установщик и следуйте инструкциям.
Кроме самого движка, вам предложат установить Microsoft Visual Studio — интегрированную среду разработки. Это лучшие возможности по работе со скриптами в Unity, но она занимает много места на диске. - Если Microsoft Visual Studio установлена или используется другой редактор кода, уберите галочку. Альтернативами могут быть Microsoft Visual Studio Code (более лёгкая версия Visual Studio) или MonoDevelop — встроенный редактор Unity.
- Когда установка завершится, пора приступать к разработке своей первой игры.
Как создать проект в Unity
Запустите Unity и нажмите кнопку New или New project.

Укажите название проекта, его местоположение на диске и количество измерений. Лучше выбрать 2D, потому что с ним проще разобраться с Unity.

На подготовку файлов уйдёт какое-то время, затем появится окно редактора Unity:

На слабых компьютерах может появляться розовый фон и следующая ошибка:
SceneView Selected shader is expected to have 7 passes
Чтобы устранить ее, нажмите кнопку Gizmos, а потом уберите галочку с пункта Selection Outline:

Затем зайдите в пункт меню Edit и в подменю Graphics Emulation выберите Shader Model 2:

Проект создан, можно начинать работу. Полный код игры вы найдете в репозитории на GitHub. Там же есть все ассеты и скрипты.
Как добавить объект в Unity
1. Перетащите ассет из поля Assets внизу экрана.
Ассетами называют компоненты, которые нужны для создания игры. Для удобства поместите их в отдельные папки:
- Scenes — локации в игре.
- Scripts — скрипты на выбранном вами языке программирования, с помощью которых устроена механика игры.
- Sprites — двухмерные изображения предметов, персонажей, фонов и так далее.
- Prefabs — заготовки игровых объектов.
СПРАВКА
Создать папки и добавить файлы можно как в Unity, так и просто в обозревателе Windows. Создавать скрипты лучше с помощью движка, потому что он будет автоматически добавлять заготовку кода (подробнее об этом ниже).
2. Скопируйте несколько картинок игровых объектов
Теперь перетащите нужный спрайт из поля с ассетами в окно сцены. Чтобы сквозь него не пролетали другие объекты, добавьте к нему компонент типа Collider 2D из категории Physics 2D. Выбирайте тот тип, который соответствует форме спрайта: например, Circle Collider 2D (если это шар) или Box Collider 2D (если квадрат).

Коллайдер позволяет указать границы объекта, через которые не сможет пройти другой объект, для которого также указаны рамки.
Основы движка Unity

Изучение Unity для начинающих / Урок #1 – Что такое Unity? Введение в Unity с нуля
Представляем вам видео курс по изучению движка Unity и работы с ним. За курс мы с нуля разберем базовый интерфейс Unity, научимся работать с основными функциями Unity и в конце курса создадим небольшую 3D игру на Unity 5. Курс рассчитан для начинающих в сфере создания игр.
Видеоурок
Полезные ссылки:
- Официальный сайт Unity ;
- Онлайн C# редактор кода .
Информация про Unity
Unity – это игровой движок, на котором строится большая часть современных игр на разных платформах. Посредством движка реально создавать игры, ориентированные на запуск на компьютерах (Windows, Linux, MacOS), мобильных телефонах, планшетных компьютерах (Android, iOS, Windows Phone) и даже игровых приставках PlayStation, Xbox, Nintendo.
Как создавать игры в Unity?
В основе Unity лежит компонентно-ориентированная концепция. По сути, любая игра состоит из массы объектов, разбавленных дополнительными компонентами. Для примера, во время создания платформера мы создаём GameObject, к нему дополнительно прикрепляем графическую составляющую, что отвечает за отображение персонажа, и управляющий компонент, он обеспечивает управление персонажем за счёт мыши, клавиатуры, джойстика или тачскрин. Движок не накладывает ограничения на количество подобных модулей. К GameObject можем добавить столько компонентов, сколько будет необходимо. Вся работа на движке строится на том самом создании GameObject и применение к ним подходящих компонентов.

Новичков может ввести в заблуждение видимая простота процесса, хотя это не так. Для создания уникальной и популярной игры придётся с нуля писать массу компонентов. Если точнее, в среде Юнити это называется скриптом. Родной язык создания скриптов – C#, но ещё частично задействуется JavaScript и Boo (обрезанный вариант Python).
Поддерживаемые платформы
Многие крупные проекты предпочитают Unity из-за огромного списка платформ совместимых с движком. Готовое приложение реально запустить на любой компьютерной операционной системе, популярных мобильных платформах и SmartTV. Что уж говорить, даже браузерные игры и приложения для специфических платформ (вроде Tizen OS) преимущественно разрабатываются на Юнити.
Однако, здесь не всё так гладко. При необходимости писать специфические алгоритмы, основанные на низкоуровневом коде, под тот же самый Андроид нужно иметь доскональные знания Java. Только по завершению работы с Java-кодом его придётся компоновать с Unity.

То же самое справедливо и в отношении iOS. Ещё одна особенность iOS, что под неё разрабатывать возможно только с компьютера или планшета от Apple. При отсутствии Macbook или аналогичного устройства выпуск игры быстро застопорится и Unity здесь вовсе не причём, Apple сама накладывает подобное ограничение. Вывод прост: если в планах есть iOS-разработка, заранее следует подобрать подходящее устройство для сборки.
Как и где разработать игру на движке?
Длительный процесс разработки игр можем проводить как в рамках Windows, так и Mac OS X. Уже существуют версии редактора под Linux, но рассчитывать на стабильную их работу пока что не приходится. Большую часть времени по созданию игры разработчик проводит внутри редактора Unity. Ещё приходится много времени писать код скриптов, его создавать можем либо в стандартном MonoDevelop, либо в любом редакторе стороннего разработчика. Сейчас активно пользуются Visual Studio, а также Sublime Text, но только при должной настройке.

Разработка игры
Мы изучим как создать свои 2D и 3D игры на Unity. Процесс создания 2Д и 3Д игр на Unity прост. Он разделяется на два этапа:
- построения дизайна через Unity;
- написание кода на основе языка C#.
Многие останавливаются лишь на вопросе «Как создавать игры на Unity?», так как далее не находят нужной информации и останавливаются. Мы же с вами за курс изучим интерфейс программы и научимся строить игры на Unity.
Примеры игр
Конечно же, перед изучением чего-либо хочется более точно понимать что вы сможете получить по итогу. По этой причине мы предлагаем взглянуть на несколько проектов, что были созданы на основе движка Unity.
Среди крупных проектов можно отметить следующие проекты:
- игра «Firewatch» с красивой и насыщенной графикой;
- проект игры про Рика и Морти в формате дополненной реальности (проект «Virtual Rick-ality»);
- игра «The Forest» про выживания в дикой местности;
- мобильный нуарный проект «Inside»;
- космическая игра «Kerbal Space Program».
Это лишь мизерная часть из тех проектов, которым стоило бы уделить время. На самом деле таковых проектов несчетное количество. Если вы решили делать игры, то начать изучать движок Unity это всегда хорошая затея.
Дополнительные курсы по Unity разработке
За курс мы с вами учимся делать игры на Unity, но не углубляемся в детальный процесс. Если вы хотите получить больше информации относительно разработки игр на Unity, то рекомендуем вам дополнительные курсы.
На нашем сайте вы можете найти более углубленный курс по Unity. В нем представлено множество важных концепций, что присутствуют в самом движке. Полный курс по языку Unity можно просмотреть здесь .
Также на сайте есть более углубленная программа по изучению разработки мобильных и компьютерных игр. Ознакомится с программой обучения по Unity можно по этой ссылке .
В ходе программы обучения вы научитесь делать как 2Д, так и 3Д игры на Unity. Игры будут разрабатывать под обе платформы: Андроид и iOS. За программу вы научитесь создавать анимации, дизайн, прописывать скрипты, добавлять рекламу и монетизацию и выполнять публикацию игр в магазины Google Play и App Store.
Задание к уроку
Установка Unity
Установите Unity и текстовый редактор для работы со скриптами.
В качестве текстового редактора можете использовать любую подходящую программу. Например: Visual Studio, Rider, Atom и так далее.
Посмотреть ответ
Установить Unity можно на официальном сайте. Урок по установке:
Чтобы установить среду разработки необходимо скачать одну из удобных вам программ: Visual Studio , MonoDevelop , Atom и так далее.
Разработка игры на Unity с нуля до релиза. Часть 2
«Разработка игры с нуля до релиза» — это серии статей, где я покажу, как создать свою игру с самого нуля до публикации в Google Play и Itch.io на ОС GNU\Linux.
- 1 часть — установка и настройка приложений
- 2 часть — работа с Unity
- 3 часть — Github Desktop и Git
- 4 часть — публикация в Google Play и Itch.io
В прошлой части я показал, как установить Unity, Rider и GitHub Desktop и как настроить их. В этой же статье мы полностью уделим внимание Unity. Я расскажу где что находится и покажу как настроить Build под Android для дальнейшей публикации.
2.1 Создание проекта
Перейдём во вкладку Projects

Нажимаем New и выбираем тип, имя, местоположение проекта


После создания проекта, вы будете наблюдать следующую картину:

Предлагаюсь пройтись по основным окнам:
Scene
Здесь проводится основная работа над проектом. В этом коне вы добавляете все модели или спрайты, камеры, свет и другие игровые элементы, составляющие вашу игру.

Game
В окне Game вы можете просмотреть результат своей работы.

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

Inspector
В окне инспектора добавляются и настраиваются любые свойства игрового объекта.

Console
Это окно используется для отладки проекта или вывода системных сообщений (ошибки, предупреждение и т.д.)

Верхняя панель задач
На этой панели есть все функции для манипуляций в окне Scene.

- Q → Перемещение в сцене
- W → Перемещение объекта
- E → Поворот
- R → Размер
- T → 2D изменение
- Y → Трансформация
Это самое основное, но и не всё. Подробно о других окнах Unity вы сможете узнать в интернете по ходу изучения движка. А сейчас я покажу как настроить Build игры под Android на примере игры которую я сделал за пару часов.
2.2 Настройка Player Settings
Чтобы настроить сборку проекта, надо перейти в File → Build Settings → Player Settings. Мы увидим такое окно. Начнём его настраивать:

- Название компании
- Название проекта
- Версия проекта

Resolution и Presentation
Fullscreen Mode — как будет открываться твой проект — в полноэкранном или в окошке.
Default Orientation — Какой ориентации будет ваша игра, выбирайте по тому, как вы задумывали (вертикальная, горизонтальная или авто-поворот).

Splash Image
Начальная заставка будет всегда появляться при запуске игры. Вы можете её изменить, добавить свои картинки, изменить цвет и т.д. Если вы хотите убрать её, придётся заплатить

Other settings
Package Name — имя продукта.
Version и Bundle Version Code — версия ваши игры. Bundle Version Code нужен для публикации в Google Play, и он может быть только целочисленным.
API Level — нужно для выбора Android версии, под которые будет работать ваша игра. Используют в основном для оптимизации.
Scripting Backend — Mono/IL2CPP. На данный момент используют IL2CPP, ведь он быстрее и легче, да и Google Play также не пропускает игру без этого сценария.
Api Compatibility Level — версия .NET компилятора. Лучше брать самую высокую, по очевидным причинам.
Target Architectures — различные версии ядeр. ARMv7 уже устарел, но иногда от его отсутствия ломается сборка игры, поэтому советуются выбирать ARMv7 и ARMv64, а две остальные только если хотите делать игры на Chrome OS.

Publishing Settings
Также для того, чтобы выложить игру, надо создать java-ключ . Для этого надо создать его в разделе Keystore Manager.

Заполните поля Password, Alias и Validity.

Теперь перед каждой сборкой под публикацию в магазин, надо будет вводить пароль от ключа.
Можно билдить. Если вам надо только протестировать игру, вы можете использовать Development Build, или Unity Remote. Готово ✅

Статья получилась короткая, но здесь я показал только самое основное, что сам использую ежедневно в разработке игр. В следующей части я покажу как работать с GitHub Desktop. Если хотите дополнить меня, то пишите в комментарии. Спасибо за прочтение статьи!
Опыт разработки первой мобильной игры на Unity или как полностью перевернуть свою жизнь
Доброго времени суток! Меня зовут Николай, и я хочу рассказать свою историю и поделиться своим небольшим опытом в разработке своей первой игры. С чего начинал и какие трудности пришлось преодолеть на пути разработки. Статья ориентирована на тех, кто начинает, думает начать или уже разрабатывает свою первую игру. Зачем? Потому что на стадии разработки своей первой игры, сам не однократно читал статьи о подобном опыте, после прочтения которых «наматывал сопли на кулак» и продолжал разработку дальше. От идеи до выпуска в магазин.
Внимание! Статья получилось длинной, так что запаситесь чаем! Если не хочется долго читать, то выжимка из советов в концы статьи.
С чего все начиналось
Шел третий курс универа
По образованию я моряк, однако, после первого рейса, я понял, что перспектива отстуствия на «земле» по 6 месяцев в году меня не радовала, хоть по зарплате в этой отрасли никого не обижают.
Выбор направления
Появилась острая необходимость найти «дело», которое будет приносить удовольствие, не придется отрываться от современного мира на длительный срок и иметь финансовый достаток в перспективе сравнимый с моей по образованию профессией. Конец 4 курса универа и мой выбор пал на IT индустрию, а именно на python разработчика. Уделив 2 недели теории, в частности технической документации языка, я начал развивать логику и выполняя задачки каждый день на протяжении полугода, пока в конце декабря 2018 года не обнаружил геймдев.
А вот и Unity!
Выглядит комично или даже банально, но я повелся на клик-бэйт видео с подобным названием «Как сделать свою первую игру за 15 минут» или «Делаю крутую игру за 5 минут без регистрации и смс». Посмотрев данные материалы, в голове появилась мысль, выделить себе пару дней в своем графике, и утолить свое любопытство, установив данную среду разработки на свой компьютер. Потыкав разные кнопочки, и написав код методом «copy-paste», я пришел в неописуемый восторг! Моя творческая натура внутри меня ликовала. Ведь это было так приятно наблюдать за тем, что ты «сам» написал пару минут назад, сейчас заставляет кубик крутиться, перемещаться или менять цвет. Так уж вышло, что средой разработки установленной на мой компьютер оказалась Unity.
Почему Unity?
Он бесплатный, не такой сложный в освоении, большое сообщество и тонны ресурсов для самообучения, поэтому отлично подходит для начинающих разработчиков. Мобильный рынок заполнен проектами созданные на Unity. Даже такие крупные компании как Blizzard, Riot Games, CD Project RED выпустили всеми известные хиты как Hearthstone, Wild Rift и Gwent, используя эту платформу. Приняв волевое решение, я решил уйти в геймдев на пару с Unity.
Подготовка к разработке
Формирование идеи
Определившись с выбором рабочей платформы для разработки игры, я отправился читать статьи людей, у которых имелся уже хоть какой то опыт в данной сфере, чтобы выбрать нужное мне направление. ПК или смартфоны? 2Д или 3Д? Сингл или мультиплеер?
Прочитав большое количество статей и проанализировав их, все советы сходились к тому, чтобы:
- Проект неразрабатыватьбольше 2-х месяцев, иначе увеличивается вероятность потерять энтузиазм и он окажется на полке «потом доделаю» так не дойдя до выпуска;
- Проект должен быть простой, легкий, желательно иметь небольшую изюминку. Иначе нафантазировав себе в голове крутой ААА проект с сетевым режимом и открытом миром, рискуете себе «сломать зубы», потеряв всякую мотивацию к разработке и потеряться где то в пучине депрессии и отчаяния;
Мой выбор
2Д мобильная аркада с сетевым режимом до 6 человек , рейтинговой системой и вознаграждением. Разработка, которой заняла отнюдь не 2 , а все «12 месяцев».
Аргументы «за»:
- Мне показалось заставлять двигаться 2Д объекты будет проще, чем те же 3Д;
- Мобильный рынок огромен и его доля более половины всей игровой индустрии;
- Писать сюжеты для игр я не умею, да и опыта в этом нет никакого, поэтому я решил сделать упор на веселье. А играть всегда веселее вместе! Поэтому сетевая;
- Продолжительность жизни игр с сетевым режимом дольше, где ты можешь соревноваться с друзьями за лучший результат, чем у игр, где простенький сюжет, пройдя которую ты забудешь и никогда не вернешься.
Аргументы «против»:
- Игра уже становилась не так уж проста, как советовали более опытные коллеги;
- Сложность и продолжительность разработки для не опытного «птенца» увеличивалась многократно.
Аргументы «за» были очень привлекательны и я решил рискнуть. Как говорится — «Чем чёрт не шутит» и «Была не была»!
Знакомство с Unity и его изучение
Учится чему то с нуля, это как учится кататься на велосипеде. Главное стараться и упорно трудиться, и тогда рано или поздно точно должно получится.
Начинал с малого, а именно перемещал разные объекты в пространстве, писав самый примитивный код.
Совет: знайте, чтобы вы не делали или не хотели начать делать, это с вероятность больше 90% уже было сделано до вас. Научитесь правильно искать нужную информацию.
После полумесяца изучения Unity, было необходимо разработать какой то план разработки, которому бы я следовал. Держать все в голове было невозможно, да и нецелесообразно. Сейчас я использую обычный текстовый редактор, где записывваю свои мысли о реализации той или иной фичи, но для начала хватить и обычного листка бумаги и карандаша.
Совет: попытайтесь как можно точно расписать предполагаемый план, по которому будете разрабатывать свою будущую игру. Управление персонажем, основной геймплей, музыка и эффекты, механика игры, интерфес.
Как только я накидал определенный план действий и уже собирался начать делать свой первый будущей «шедевр», встал серьезный вопрос
Где я возьму картинки, музыку и остальные элементы для своей будущей игры? Ведь я совершенно не умею сам это создавать
На помощь пришел фирменный магазин Unity, а именно unityAssetStore. Замечательная площадка, где фрилансеры выкладывают свои работы с целью их продать, а разработчики могут приобрести их для использования в своих проектах, тем самым ускоряя разработку и экономя драгоценное время и нервы.
На пути всей разработки игры, да и после выпуска, мои знакомые и друзьям задают мне практически одни и те же вопросы.
А ты сам все это нарисовал? А музыку ты писал тоже сам?
Как можете догадаться, они получали отрицательный ответ на все подобного рода вопросы.
Совет: Не чурайтесь использовать чужие наработки или шаблоны, которые продают или прибегать к работе фрилансеров! Это взаимосвязанная выгода! Конечному пользователю все равно, сами вы рисовали самолетик несколько часов или потратили 10$ на его покупку в магазине, ведь главное результат!
Разумеется, необходимо иметь базовые навыки такие как изменения размера изображения, цвета или редактирование определеного участка звука.
Совет: Отслеживайте скидки на продаваемые ассеты в различным магазинах, особенно под новый год! Можно приобрести кучу ассетов по выгодной цене со скидкой до 90% в такое время.
Непосредственная разработка
Первые шаги
Закончив с подготовительной частью, я принялся за работу. Ввиду того, что я заканчивал университет, и было необходимо готовиться к квалификационным экзаменам и защите диплома. На разработку игры в день уходило не более 3 часов в день. Такой режим продолжался до самого начала лета 2019 года.
На этом этапе моя игра имела следующий вид:

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

Интерфес и меню
Не малая важная часть разработки игры, о которой начинающие разработчики не задумываются это Меню, его визуальное оформление и работоспособность. Когда уже основная часть геймплея готова, появляется ложное чувство того, что проект уже готов, и можно завтра его готовить для публикации в магазине. К сожалению, это не делается за пару дней. Это тяжелая и рутинная работа, которая требует концентрации и повышенной ответственности. Когда что-то светиться, крутиться и перемещается в меню, это располагает к себе пользователя. Не зря же все крупные вендоры компьютерного желаза продают свой товар с большим акцентом на динамическую RGB подстветку, значит есть положительный результат!
Совет: Перед тем как создавать свое меню, поиграйте в разные игры подобного или смежного жанра. Выделите для себя полезные фичи интерфейса и меню. Что в них интересного и что вам нравится.
На этом этапе разработки, многие проекты так и не доходят до выпуска в мир. Тут несколько факторов способствуют:
- усталость
- потеря интереса
- неувереность в своих силах
- все кажется адом и этому нет конца и края
Совет: Скажу то, что я прочитал когда сам проходил этот этап. НЕ СДАВАЙСЯ! Как бы не было сложно, ни в кое случае НЕ СДАВАЙСЯ и НИ ШАГУ НАЗАД! Дойдя до самого конца ты познаешь лавину экстаза и самоудовлетворения от того, что ты не бросил все! И разумеется бесценный опыт.
Однопользовательский режим
Сетевая игра это, конечно, хорошо, но что если у пользователя отсуствует подступ к Информационно-Телекоммуникационной Системе Общего Пользования?(Интернет)
Разумеется, было принято решение сделать простенький сингл режим, где игрок будет собирать определенный ресурс на время, а ему попутно будут мешаться ИИ, затруднив выполнение миссии.
Две недели работы, и первоначальный вид был такой:

Оптимизация
Фух! Оптимизация это такая штука, о которой ты начинаешь задумываться, когда твой проект на смартфоне выдает 10-15 кадров в секунду с фризами и просадками до 4 кадров секунду. Как только тестирования проекта доходит до сборки его на телефоне, все встает на свои места. При разработке прилождений на мобильные смартфоны, оптимизация имеет очень важную роль. Ведь в них не скрывается такая вычислительная мощность как на ПК.
Я начал оптимизировать свой проект, только спустя 8 месяцев разработки. Из-за чего оптимизировать надо было много и долго:
- картинки
- материалы
- звук
- шейдеры
- настройки камеры, рендеринга
- интерфейс
- скрипты
Это заняло у меня еще не меньше двух недель.
Совет: Не затягивайте с оптимизацией! Изучите сразу вопрос, как стоит правильно использовать определенные настройки в работе с теми или иными ресурсами в вашем проекте, чтобы добиться наилучшей производительности.
Одна голова хорошо, а несколько лучше
Обязательно спрашивайте мнение других людей о вашем проекте на разных этапах разработки. Разная точка зрения под разным углом даст хороший фидбэк и новые идеи для дальнейней работы. Не принимайте в свой адрес негативные отзывы о вашем проекте, как что то ужасное. Негативный отзыв, а еще лучше конструктивная критика — это невероятная удача и стимул сделать свой проект лучше!
Совет: Найдите так называемых «жертв», которых будете использовать в качестве тестировщиков среди ваших родственников, близких друзей и коллег по цеху. Брат, сестера, мама, папа, парень, девушка, друг, подруга, кто угодно. Дайте ему смартфон с игрой, посадите его рядом и просто наблюдайте, что ему не нравится, а что нравится. Главное — просто молчите и смотрите!
Реклама и внутриигровые покупки
Настал черёд встроить в свой проект рекламу и сделать магазин. Кто бы что не говорил, но на одном энтузиазме далеко не уедешь и святым духом сыт не будешь. Посему, это необходимый блок разработки. Тут главное грамотно подойти к этому делу, чтобы игрок не «плевался» и выгода была для обеих сторон!
Софта для рекламных интеграций имеется множетство, в том числе и от самой Unity, так называемая Unity Ads. Однако, мой выбор пал на Google AdMob. Почему не Unity Ads? Почитав обзоры, я узнал, что контент рекламы содержит казино, рулетки и ставки. Тут уже на вкус и цвет, как говорится, но я не хочу чтобы реклама была связана с подобного рода сервисами. Я использовал межстраничную и рекламу с вознаграждением.
Совет: Реклама с вознаграждением, намного лучше, ведь игрок сам нажимает на просмотр рекламы, чтобы получить какие-либо «плюшки» в игре. Разработчик и пользователь в плюсе!
Покупки в игре, я реализовал подобным образом:

Финальная версия игры
«12 месяцев» кропотливой работы , и финальная версия выглядит примерно так:


Казалось бы, все сделано и осталось дело за малым, а именно опубликовать игру. Но не все так просто как кажется!
Совет: Тут необходимо открыть еще одно «второе» дыхание , к ранее уже открытым +100500
Публикация игры
Большим плюсом выбора Unity — кроссплатформенность, что позволяет один проект выпустить на всех желаемых платформах (Android, iOS,PC,WebGl и др). К моменту написания статьи игра была опубликована только для Android в Google Play Market, но не за горами ios в Apple Store.
Какие «подводные камни» имеются?
Технически публикация приложения в Google Play Market не составляет никакого труда — всё интуитивно понятно и легко. Пройти проверку по возрастному рейтингу, загрузить картинки из игры, логотип и впринципе все готово.
Так в чем же проблема и где те самые «подводные камни»?
Политика конфиденциальности
Для публикации она не является необходимым элементом, однако, если в вашем приложении имеется реклама или внутриигровые покупки, то в кратчайшие сроки стоит обзавестись данной «бумажкой» и указать сссылку на неё в Google Play Console. К счастью, есть моножество ресурсов, которые генерирует данный документ за считанные секунды и сразу предлагают разместить на их сайте, удовлетворяя запросам гугла.
Если проигнорировать предупреждения от гугл, что у вас отсутствует политика конфидециальности, то приложение могут легко снять с публикации.
Совет: Не откладывайте на потом этот пункт, делайте его параллельно с публикацией!
Идентификатор клиента OAuth
Если у вас в игре имеется система достижений, рейтинга от гугл или вы хотя бы сохраняете данные игры в облаке от гугл, то необходимо, чтобы пользователь проходил процесс авторизации, используя гугл аккаунт, а значит, предоставлял некоторые разрешения на управления его данными. Теперь по порядку. При настройке игровых сервисов в Google Play Console, необходимо: создать приложение для авторизации пользователя в Google Cloud Platforms, настроить учетные данные для идентификатора клиента OAuth и Окно запроса доступа OAuth. Пожалуй, это главный «подводный камень».
Сложность состоит не в его первоначальной настройке, чтобы сервисы исправно работали, а в том чтобы приложение было опубликовано и не имело ограничений по количеству пользователей. Если вы намерены создавать крупнобюджетный проект, который будет привлекать тысячи игроков, то вам придется обязательно пройти этот этап.

Сайт игры
Это не является обязательным пунктом, но лучше сделать сайт, где будут размещены новости вашего проекта, а так же политика конфиденциальности и прочие материалы для ознакомления. Оказывается в 2021 году сделать легкий и простой сайт достаточно просто. С шаблонами для разработки сайтов в Word Press, не долго думая, я останавливаюсь на нем. Для сайта необходим хостинг и собственный домен. Взвесив все «за» и «против», решил потратить пару тысяч рублей на его аренду, сроком на 48 месяцев и не «париться». В сети огромное количество предложений, так что проблем с этим тоже не было. Пару часов уходит на его настройку, и еще пару часов на наполнение его контентом. И вот уже есть свой собственный сайт для игры!
Совет: Чтобы получить заветную галочку во вкладке Окно запроса доступа OAuth в Google Cloud Platforms, иметь сайт игры и свой домен , где так же будет размещена политика конфиденциальности — является обязательным пунктом!

Совет: Так же, если используете рекламу от Google Admob, то сайт тоже необходим. В корневую папку вашего сайта добавляется файл app-ads.txt. Это позволяет рекламодателям понять, какие источники объявлений имеют право продавать рекламный инвентарь. Если не пройти авторизацию, то доход с рекламы будет сильно снижен!

GDPR
Еще одно бюрократическое препятствие осталось, на пути для публикации. Если ваше приложение имеет рекламу, то она может быть персонализированной, а значит ваше приложение собирает данные пользователей, чтобы успешно показывать рекламу. GDPR — (General Data Protection Regulation) — это закон, принятый Европейским Парламентом, который описывает правила защиты данных для граждан ЕС. Это значит,чтобы показывать персональну рекламу, необходимо перед первым запуском вашей игры, пользователь должен принять соглашение, что ознакомлен с политикой конфиденциальности вашего приложения, а так же прочитать в каких целях будет использоваться его персональные данные и дать согласие/отказаться на их обработку. Разумееется это распространяется на резидентов из стран ЕС.



После выполнения всех выше изложенных пунктов, мое приложение успешно опубликовано в Google Play Market и не знает никаких проблем.
Краткая выжимка советов
- Изучите рынок и определитесь с направлением и жанром игры. Главное не стройте в начале «наполеоновские» планы, которые могут и не реализоваться!
- Распишите план действий и пытайтесь четко следовать ему, попутно внося небольшие правки. Старайтесь укладываться в установленные планом сроки.
- Обязательно спрашивайте мнение ваших близких и друзей о вашей игре на протяжении всей разработки.
- Не стесняйтесь приобретать ресурсы для ускорения разработки и повышения качества своего проекта.
- Старайтесь писать программный код максимально понятный вам и другим людям, чтобы его можно было прочитать спустя месяцы разработки и понять его смысл.
- Изучите базовые навыки работы с редактированием изображений и звуков.
- Соорудите себе в браузере пул полезных закладок с библиотекой различных ресурсов, имея быстрый к ним доступ.
- Научитесь использовать на базовом уровне Git. Незаменимый помощник при разработке игры, чтобы контролировать внесенные изменения.
- Последнее и наверно самое важное. Никогда не сдавайтесь , верьте в себя, упорно трудитесь и рано или поздно, но у вас все обязательно получится! Если получилось у меня и миллионов других начинающих разработчиков данного ремесла, то почему не должно получится и у вас!?
Заключение
Премного благодарен вам, что вы дочитали конца эту длинную статью! Надеюсь, что те кто только пробуют себя в роли разработчика, подчерпнут для себя некоторые полезные вещи и получат заряд мотивации, а «бывалые» найдут эту историю как минимум не скучной.
Не знаю, кто сказал, что разработка игр это веселое занятие. Это ни разу не вёселое занятие, требующее повышенной концентрации, ответственности к деталям, высокого уровня самодисциплины и упорства. Интересно ли?! Разумеется да, иначе бы я не начинал этот путь. Играть в игры и делать их, это совершенно разные вещи. Но в любом случае, это безумно интересно! Сделанный выбор однажды в универе, полностью перевернул моё мышление и всю мою жизнь. Не бойтесь и дерзайте!
Если я где-то ошибся и был не прав — буду рад правкам и пожеланиям в комментариях. Готов ответить на любые вопросы по данной теме.
Чтобы не было недопониманий на счет даты релиза.
Впервые игра была опубликована 2 декабря 2019 года, и это было 10 месяцев разработки. После я был вынужден отдать долг своей родине. Срочную службу в армии я нес до 2 декабря 2020. После демобилизации, я сразу продолжил разработку. И 4 февраля 2021, после «12 месяцев» разработки, я выпустил проект.
Если Вам интересно посмотреть на результат моей работы, то вы можете найти в Google Play Market.
Название игры — Starlake