Создание игры на unity: Как начать разрабатывать игру | Unity
Основы движка Unity 2021 с нуля
Представляем вам видео курс по изучению движка Unity и работы с ним. За курс мы разберем интерфейс Unity, научимся работать с основными функциями Unity, а также в конце курса создадим с вами небольшую 3D игру на Unity 5.
Полезные ссылки:
Информация про 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 разработке
За курс мы с вами учимся делать игры на Unity, но не углубляемся в детальный процесс. Если вы хотите получить больше информации относительно разработки игр на Unity, то рекомендую вам большую программу обучения по Unity.
В ходе программы обучения вы научитесь делать как 2Д, так и 3Д игры на Unity. Игры будут разрабатывать под обе платформы: Андроид и iOS. За программу вы научитесь создавать анимации, дизайн, прописывать скрипты, добавлять рекламу и монетизацию и выполнять публикацию игр в магазины Google Play и App Store.
Просмотреть курс обучения по Unity можно по этой ссылке.
Школа Unity 3D и 2D | Курсы программирования игр
Онлайн школа Unity 3d school
🎓 UNITY3DSCHOOL – это русскоязычная онлайн школа для обучения разработке игр на топовом движке Unity. Наши курсы превратят Вас из новичка в умелого и уверенного разработчика инди игр.📈 🏆 С нами Вы не только напишите свою первую готовую Android игру 🎮, но и сможете собрать о ней ценные отзывы 👍⭐ от других разработчиков и геймеров 👨💻 !
🔥Каталог Игр от unity3dschool поможет Вам в бесплатном продвижении игры 📡📢📨 и поиске потенциальных работодателей 🏢💵, которые смогут в полной мере оценить Ваши способности по готовым проектам 💡💪.
Курсы программирования на Unity
Мы разработали курсы программирования разных уровней сложности 🏫, чтобы любой желающий смог с нуля 👶 научится создавать игры. Платформа Unity, которая используется для разработки игры, доступна для загрузки с официального сайта 🌏 Unity Technologies совершенно бесплатно 🆓.
Все, что Вам понадобится для старта – это компьютер или ноутбук 💻 с операционной системой не ниже Windows 7 или macOS 10.12+ с 30 ГБ места на диске С 📁, а также наличие Интернета 🗼.
Рекомендуемый возраст для начала обучения – от 12 лет 1️⃣2️⃣. Видео записаны для школьников 💼, которые уже знакомы с осями координат 📊 и имеют базовые знания с математики ✖➗. Этого достаточно для изучения основ языка программирования C# 📚.
👩👨 Взрослая аудитория также может проходить курсы для возраста 12+. Поскольку такие курсы максимально детализированы 🎯, то материалы уроков будут восприниматься студентами еще быстрее 🏃. Если отдельные понятия или навыки работы в Unity у Вас уже есть 📖, в плеере можно выставить скорость урока 🚅, которая подходит именно Вам.
В дополнение к курсам по разработке игр 🎮 Вы можете пройти курсы по созданию уникальной игровой графики 🎨, которые научат Вас техникам рисования 👨🎨 в самых популярных графических редакторах – 🔸 Photoshop и 🔸 Zbrush. Эти курсы не являются обязательными для освоения игрового движка Unity, но владение приведенными техниками существенно расширят Ваши возможности ⚜ и станут отличным бонусом при поиске хороших вакансий ❤️.
Создание игр на движке Юнити
🎂 На UNITY3DSCHOOL есть все, что нужно для создания игры! Обучаясь в нашей онлайн школе Вы быстро освоите разработку 2D 🍧 или 3D 🍰 проекта игры и узнаете:
- ✅ как написать C# скрипт 📜
- ✅ как сделать ландшафт в юнити 🌴🌿
- ✅ как создать 3D модель в Zbrush 🐙
- ✅ как нарисовать в Photoshop собственные фоны 🌅 🌄 и персонажей игры 🐝 🐌
- ✅ как включить монетизацию 💰 и начать зарабатывать на игре 💸
- ✅ как настроить рекламу и внутриигровые покупки 🏪
- ✅ как выполнить сборку игры под Android ❇
- ✅ как опубликовать проект в Google Play Market 🔍
Не откладывайте мечты “на потом” – начните сейчас! 🚀
Обучение детей созданию трехмерных игр с нуля на Unity 3D в Екатеринбурге
Платформа Unity для разработки в реальном времени. 3D-, 2D-, VR- и AR-визуализация для игр, автомобильной и транспортной промышленности, кинематографа, анимации, архитектуры, инженерно-конструкторской отрасли.
Unity 3D — это популярный, удобный и функциональный движок, который позволяет создавать качественные красочные игры с высоким уровнем 3D-графики. Игры, созданные на Unity 3D, работают на наиболее популярных операционных системах — Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также игровых приставках PlayStation и Xbox.
Unity 3D используют крупнейшие разработчики компьютерных игр (Blizzard, EA, Wargaming и др.), а в список игр, созданных на Unity, входят Pokémon Go, Game Of Thrones: Seven Kingdoms и др.
Ребенок познакомится с игровым движком, его функциями, узнает, как создаются компьютерные игры и 3D-графика, научится пользоваться профессиональными инструментами, которые применяют крупнейшие международные компании, и создаст собственную компьютерную игру!
- Длительность модуля — 3 месяца
В КиберШколе KIBERone в Екатеринбурге обучение детей созданию трехмерных игр проводится на удобном и функциональном движке Unity 3D. Ваш ребенок посмотрит на игровой мир по-новому и наверняка захочет перейти от пассивной роли пользователя к более творческому, креативному и захватывающему процессу построения сценариев для игрового окружения и добавления новых возможностей в игру. Этот трехмесячный модуль познакомит юных геймеров с особенностями и функциями редактора Unity, заложит необходимые знания и даст навыки по разработке качественной красочной игры с высоким уровнем 3D-графики на платформах Windows/Linux/Mac/Web. Ребята научатся генерировать идеи и создавать концепцию, персонажей и ландшафт, смогут производить отладку игр. Данный модуль также включает обучение программированию на языке C# и станет для детей хорошим стартом на пути к работе в перспективной сфере GameDev.
Особенности обучения созданию игр на движке Unity 3D
Длительность модуля «Мир трехмерных игр на Unity 3D» в нашей КиберШколе для детей составляет 3 месяца. За это время ребята освоят движок Unity 3D и научатся пользоваться профессиональными инструментами, которые применяют крупнейшие разработчики компьютерных игр. Они освоят принципы проектирования игр, разработки алгоритмов и использования стандартных инструментов, повторят основы и отточат имеющиеся навыки программирования. По окончании модуля каждый ребенок создаст собственную трехмерную игру с приятной, сочной графикой, разнообразными локациями и крутыми уровнями для платформ PC, iOS, Android, Play Station или XBox, а также опубликует ее в цифровом магазине.
Модуль по обучению созданию игр с нуля на Unity 3D включает в себя:
- знакомство с основными методами языка C#;
- изучение шаг за шагом интерфейса и возможностей игрового движка;
- работу с трехмерной геометрией, с материалами и текстурами;
- создание персонажей, объектов и сцен;
- работу с камерой;
- расчет освещенности 3D-моделей;
- подбор необходимых звуков из библиотек;
- применение пост-эффектов для финальной обработки;
- импорт и сбор ресурсов, в т.ч. и анимаций;
- написание кодов для организации взаимодействия объектов игрового мира.
Обучать вашего ребенка программированию будут ведущие преподаватели крупных вузов страны и высококвалифицированные сотрудники крупных IT-компаний. Позвольте своим детям стать успешнее, чем их сверстники, ведь разработанные на Unity 3D игры можно публиковать официально и неплохо зарабатывать на их продаже.
Как Сделать Свою Хоррор Игру На Юнити Создание Локации Ayukistuido
Как Сделать Свою Хоррор Игру На Юнити Создание Локации Ayukistuido. В этом цикле видео-уроков я рассказываю как делать свою хоррор игру на движке Unity. В этом эпизоде я рассказываю о создании локации и подготовки будущего проекта.
ВК ►
Ссылка на проект ►
Теги для оптимизации видео:
unity 3d игра
unity 3d на андроид
unity 3d tutorial
unity3d уроки
unity 3d игра от первого лица
unity 3d school
unity 3d game
unity 3d анимация
unity 3d ассеты
unity 3d анимация ходьбы
unity 3d анимация персонажа
unity 3d без программирования
хоррор игры прохождение
хоррор игры на андроид
хоррор игры на пк
хоррор игры в роблоксе
хоррор игры 2020
хоррор игры с друзьями
хоррор игры для слабых пк
хоррор игры по сети
хоррор игры анастасиз
хоррор игры андроид
хоррор игры аниме
хоррор игры агент 3310
хоррор игры аид
хоррор игры алик кз
хоррор игры аутласт
хоррор игры алик
хоррор игры брайн
хоррор игры брайн мапс
хоррор игры без мата
хоррор игры бустер
хоррор игры бесплатно,
хоррор игры без интернета
хоррор игры без скримеров
хоррор игры булкин
хоррор игры в роблокс
хоррор игры винди
хоррор игры в стиме бесплатно
хоррор игры в майнкрафте
хоррор игры в роблоксе на двоих
хоррор игры в стиме
хоррор игры в реальной жизни
хоррор игры в стиме бесплатно по сети
все хоррор игры
играем в хоррор игры
хоррор игры гаррис мод
хоррор игры гача лайф
хоррор игры гренни
хоррор игры глаз
хоррор игры гидеон
хоррор игры головоломки
хоррор игры для двоих
хоррор игры для пк
хоррор игры для слабых пк по сети
хоррор игры для средних пк
хоррор игры для телефона
хоррор игры для мощных пк
хоррор игры для двоих на андроид
егор крид хоррор игры
какие есть хоррор игры
евгений чернявский хоррор игры
евгенбро хоррор игры
хоррор игры на иос
хоррор игры жека
самые жуткие хоррор игры
женя белозёров хоррор игры
игры в жанре хоррор на пк
хоррор игры зе виктори шоу
хоррор игры зомби
хоррор игры ивангай
хоррор игры испуги
хоррор игры играть
хоррор игры из плей маркета
хоррор игры инди
хоррор игры играть на двоих
хоррор игры на иксбокс 360
играть в хоррор игры
хоррор игры кооператив
хоррор игры коффи,
хоррор игры кооператив прохождение
хоррор игры кооп
хоррор игры кооператив бесплатно,
хоррор игры кооператив для слабых пк
хоррор игры куплинов виар
хоррор игры которые мало весят
хоррор игры лучшие
хоррор игры летсплей
хоррор игры локи бобо
хоррор игры лололошка
хоррор игры лучшие моменты
играю в хоррор игры летсплей
лучшие хоррор игры на андроид,
лучшее хоррор игры,
хоррор игры мультиплеер,
хоррор игры майнкрафт
хоррор игры мультиплеер на андроид,
хоррор игры мама
хоррор игры маньяк,
хоррор игры майнкрафт эдисон
хоррор игры мультиплеер бесплатно
хоррор игры мистер кей
хоррор игры на двоих
хоррор игры на андроид по сети
хоррор игры на слабый пк
хоррор игры на андроид с друзьями
хоррор игры на пс4
хоррор игры на реальных событиях
новые хоррор игры
хоррор игры онлайн
хоррор игры основанные
хоррор игры онлайн на андроид
хоррор игры онлайн на телефон
хоррор игры обзор
хоррор игры от 3 лица
хоррор игры очень страшные
хоррор игры онлайн для слабых пк
хоррор игры по сети на андроид
хоррор игры прохождение с друзьями
хоррор игры по сети на пк
хоррор игры приколы
хоррор игры прохождение винди
хоррор игры по сети с другом на андроид
хоррор игры роблокс
хоррор игры роман флоки
хоррор игры реакция
хоррор игры ржака
хоррор игры ребёнок
хоррор игры роблокс поззи
хоррор игры рейтинг
хоррор игры роблокс 2020
хоррор игры с брайаном
хоррор игры с друзьями на андроид
хоррор игры с винди
хоррор игры с кооперативом
хоррор игры смешные моменты
хоррор игры стрим
хоррор игры со скримерами,
совместные хоррор игры,
хоррор игры топ
хоррор игры тилька,
хоррор игры топ на пк
хоррор игры топ 10 на телефон
хоррор игры трейлеры
хоррор игры топ 10
хоррор игры трейлеры 2020
хоррор игры топ 2020
хоррор игры угар
хоррор игры утопия
хоррор игры до усрачки
хоррор игры фнаф
хоррор игры флоки,
хоррор игры фрост
хоррор игры фредди
хоррор игры флеш
брайн мапс хоррор игры фнаф
брайан хоррор игры фнаф
фрост хоррор игры фнаф
хоррор игры хард плей
хоррор игры хоррор игры
хорошие хоррор игры
лучшие хоррор игры
хорошие хоррор игры на андроид
хоррор игры с хорошей графикой
хард хоррор игры
хоррор игры 2000 х
хоррор игры через хамачи
хоррор игры шиморо
хоррор игры шутеры
школа монстров хоррор игры
виктори шоу хоррор игры
овер шоу хоррор игры
хоррор игры про школу
хоррор игры прохождение шиморо
шурик хоррор игры
хоррор игры эдисон
хоррор игры эволюция
хоррор игры это
хоррор игры эксайл
брайн мапс хоррор игры эмили
элисон роуз хоррор игры
хоррор игры прямой эфир
экшен хоррор игры
хоррор игры юджин
хоррор игры юлик
хоррор игры юля и мишка
хоррор игры ютуб
► AyukiStudio ◄
- Категория
- Разное
Вместе с Как Сделать Свою Хоррор Игру На Юнити Создание Локации Ayukistuido так же смотрят:
Движок Unity и основы создания игр
Достоинства Unity
Одно из главных достоинств движка Unity – он позволяет создавать кроссплатформенные проекты. Сегодня большие компании, такие как Microsoft и Intel, с выходом в продажу их новых продуктов также выпускают и библиотеки под Unity, позволяющие сделать разработку игр на этом движке под устройства данных компаний гораздо удобнее и проще.
Что нужно для того, чтобы стать Unity-разработчиком?
Тем, кто хочет заниматься разработкой игр на Unity, прежде всего, необходимо хорошо знать язык С#. Если вы хотите создавать простые игры, то вам будет вполне достаточно иметь базовые знания в области программирования. Однако если вы собираетесь заниматься разработкой сложных сетевых игр, тогда будьте готовы к тому, что нужно будет знать паттерны проектирования, а также иметь представление о том, каким образом осуществляется взаимодействие сервера и клиента. Также очень большим плюсом будет знать 3D-редакторы – Blender, 3DMax, Maya и иные программы аналогичной категории.
Кто занимается разработкой игр?
Разработку конкретной игры на Unity может вести и разработчик-одиночка, и коллектив разработчиков. Зачастую финансированием разработки занимается компания-издатель игры, также издатель занимается маркетингом и пиаром проекта. Если речь идет о разработке высокобюджетной игры на Unity – тогда подразумеваются многочисленная команда разработчиков и большой срок на реализацию проекта. Отметим, что коммуникабельность и навыки работы в команде для разработчика игр важны ничуть не меньше, чем практические навыки и теоретические знания.
Если игра создается небольшим коллективом или разработчиком-одиночкой, и при этом не имеет поддержки издательства – такой проект называется инди-игрой (независимая игра – с англ. Independent video game). При этом инди-игры могут быть довольно прибыльными и конкурировать с большими проектами. Например, такой игрой является Minecraft, которую создал один разработчик.Также Unity-разработчик может трудиться в сфере разработки игр и в качестве разработчика-любителя. Для таких разработчиков создание игр – это просто хобби, они не стремятся выпускать конечный продукт. Обычно любители создают модификации к уже существующим играм, либо их приглашают работать с конкретными составными частями или технологиями создаваемой игры.
Требования к Unity-разработчику
— Знать редактор Unity, иметь опыт работы с игровым движком Unity 3
— Иметь опыт работы с 3D-редакторами
— Иметь уверенные знания языка программирования C# и опыт работы с этим языком
— Знать ASP MVC, а также паттерны проектирования – это будет большим преимуществом
— Иметь хорошие теоретические знания алгоритмов, шаблонов проектирования, структуры данных
— Знать английский язык на уровне, позволяющем читать техническую документацию
— Уметь работать в команде.
Какие должности может занимать Unity-разработчик?
Unity-разработчик может работать на должностях:
— Unity Middle Game Developer
— Unity/VR Developer
— Junior Game Developer
— Unity Developer/ C# Unity Developer
— Team Lead Unity/Unity Developer
— Senior Unity/Unity Developer.
Если вы хотите научиться работать с движком Unity на хорошем базовом уровне – мы приглашаем вас на курсы академии «Шаг»!
Курс по Unity от XYZ School — создай собственную 2D-игру
Блок 3. UI и новые игровые механики
1. Введение в UI.
Рассказываем про канвас, Render Mode, Scale Mode. Базовые компоненты для верстки. На примерах разбираем компоненты UI. Создаем UI для Main Menu и запихиваем его в префаб. Создаем контроллер для Main Menu.
2. Скрины и HUD.
Создаем скрин для Main Menu + контроллер переключающий сцены. Создаем HUD основного геймплея. Привязываем к нему модель данных. Разбираем виджеты прогрессбаров.
Домашнее задание: Реализация прогрессбара для патронов.
3. Диалоговые NPC. UI диалога.
Создаем новый класс NPC — диалоговые npc при взаимодействии с которым выводится простой диалог. Создаем префаб для диалога, модель для хранения секвенций диалогов. В красивостях добавляем побуквенное появление текста, как в консольных играх.
Домашнее задание: добавление еще одного диалогового NPC.
4. Локализация.
Рассказываем зачем нужна локализация. Базовые принципы локализации. Создаем модуль для программной локализации, а также компоненты для локализации статических текстов.
5. Чекпоинты. Красивости (паралакс).
Реализуем механику чекпоинтов, чтобы не начинать игру всегда заново, а продолжать с определенной точки. Программируем save/load методы в модели. Делаем красивый паралакс: передний + фон. привязываем к передвижению игрока.
Доп. задание: создание еще одного уровня переднего паралакса.
6. Загрузка новых уровней.
Создаем новую сцену и контроллер для его загрузки и перехода. Рассказываем о разных подходах к созданию уровней. О возможностях замены сцены и аддитивной подгрузки сцен. Разделяем сцены на базовую часть и уровень.
7. Продвинутые механики: способности и прокачка.
Создаем модель для хранения и разблокирования перков в зависимости от набранных очков. реализуем UI и контроллер перков. Привязываем перки в меню быстрого доступа. Перки: щит, круговой удар.
Доп. задание: реализовать перк — рывок.
8. Прокачка персонажа.
На основе модели из предыдущей лекции делаем список модификаторов и прогрессию. Привязываем модификаторы к игровой модели и реализуем UI прокачки.
Доп. задание: реализовать модификатор скорости.
Курсовая: 2D Action.
Задание: самостоятельно разработать 2 игровых уровня. В уровнях должны присутствовать как минимум 2 новых моба с отличающимися стратегиями поведения.
Опыт создания игры на Unity без знания Unity
Введение
Добрый день. С недавних пор, передо мной (я программист) и моим знакомым дизайнером встала задача – необходимо заработать деньги на получение образования. Недолго думая, мы решили, что в связке «программист – дизайнер» можно было бы заработать на создании игры, так что эта история о том, как мы, имея нулевой опыт в данной сфере, пытались в неё влиться. Поскольку в Steam теперь можно загружать игры всего за 100$, то продавать свой продукт мы решили именно на этой площадке.
Начало разработки
Т.к. время на разработку у нас было ограничено (3-4 мес.), а сами мы тратили много времени на учебу, то необходимо было разработать какую-нибудь простенькую игру, которая могла бы хорошо продаться. Решили мы сделать игру, наподобие Hyper Light Drifter. Эта игра нам показалась простая в реализации, так что если сделать что-то подобное без красивых кат-сцен, то мы бы уложились вовремя и могли заработать нужную сумму. Хотели мы сделать игру с частично открытым миром, прокачкой, покупкой снаряжения и т.д. (в общем, обычная RPG). Главной особенностью игры было то, что единственные ваши враги – это боссы, а чтобы дойти до них – вам потребовалось бы бегать по миру, решать загадки, преодолевать ловушки и т.д. Для реализации программной части я выбрал Unity, т.к. знал все необходимые языки (c# и js). Проблема заключалась только в том, что мне он был незнаком (да и раньше в подобных движках не ковырялся), а сроки были невелики, так что пришлось изучать его прямо во время разработки игры. На данном этапе композитора у нас еще не было. У меня на примете было несколько знакомых музыкантов, и мы хотели обратиться к ним на более поздних этапах разработки. В случае их отказа можно было бы просто купить уже готовую музыку.
Первые трудности
Спустя месяц разработки, мы поняли, что абсолютно не укладываемся в сроки (3-4 месяца) и нужно что-то с этим делать. После размышлений мы решили, что можно преобразовать эту игру в формат арены, где на вас шли бесконечные потоки врагов. Спустя какое-то время мы были вдохновлены статьей про разработчика Адама Никерсона, где рассказывалось, как он без особых знаний программирования написал игру, которая неплохо продавалась и дала ему возможность делать новые игры, так что мы решили перенять его методы по продвижению игры и уже второй раз сменили концепцию, но в этот раз уже кардинально. Игра Адама Никерсона – это космическая аркада, где вам приходится отбиваться от бесконечных врагов с нарастающей сложностью. В этот раз мы просто взяли за основу игру Адама и добавили в неё некоторые отличия: ·
- динамичный геймплей;
- милая стилистика.
Так как механики главного героя, врагов, пули и т.п. в старой и новой игре были очень схожими, то код переписывать почти не пришлось. Таким образом было принято решение сделать аркадный космический шутер, т.к. потери при этом были минимальны и возможность уложиться в сроки стала реальной.
Процесс разработки новой игры
Процесс разработки – это рутинное программирование и рисование. Программировать игру на Unity с нулевыми знаниями движка было очень тяжело, но форумы и документация могли дать ответы на все возможные вопросы, а опыт программирования (7 лет) позволил быстро вникнуть в суть этого движка. Из-за постоянного потока новых знаний и функций Unity в процессе разработки, приходилось иногда переписывать некоторые функции для реализации более сложных механик или оптимизации игры.
Поддержка геймпадов
Изначально у меня был геймпад от XBOX360, а потому я наивно разрабатывал игру именно под него. Ближе к концу разработки, когда управление геймпадом было уже реализовано, мне предоставили геймпад Logitech 4, и, о ужас, индексация кнопок на нем была совсем другая! Поискав информацию в интернете, я нашел несколько способов добавления поддержки разных геймпадов:
- Написать код для поддержки геймпада
- Купить ассет (таких бесплатных мы не нашли в Assets Store), который выполнит пункт 1 за меня.
Т.к. денег на ассеты у нас не было, то я начал пытаться реализовать поддержку разных геймпадов через первый пункт, однако довольно быстро понял, что это неоправданно трудоемкий процесс и стоит оставить поддержку только геймпада XBOX360, надеясь, что другие XBOX-геймпады имеют те же индексы. Спустя какое-то время, позор и стыд за такой костыль начали терзать мою душу, а потому я с новыми силами начал искать информацию по данной теме, и, о чудо, я нашел богом забытый бесплатный ассет InControl на GitHub, который давным-давно не поддерживается (В Assets Store его поддержка продолжается, но он платный). Благодаря ему, можно за пару кликов настроить поддержку почти всех геймпадов!
Музыка
К счастью, один из знакомых композиторов согласился писать музыку для игры, но всё было не так хорошо, как хотелось. Некоторые его композиции не соответствовали концепции игры, так что было множество правок, которые занимали очень много времени. К сожалению, композитор был занят другими своими проектами, так что нам пришлось подключить к игре еще одного. Времени на музыку уходило немерено, а посему пришлось воспользоваться бесплатными музыкальными паками для звуков выстрела, смерти, клика, взрыва и т.д. Таким образом, композиторы разрабатывали только музыку, а звуки были взяты из бесплатных паков.
Системные требования
Для определения системных требований я пытался найти программу, которая бы анализировала потребляемые ресурсы игрой и выставляла рекомендуемую конфигурацию компьютера, но… такой просто нет (или просто не нашел). Пришлось анализировать потребляемые ресурсы самостоятельно и выставлять нужные требования.
Делаем игру дорогой дёшево
Пока я баловался с Assets Store в Unity, случайно наткнулся на ассет (https://assetstore.unity.com/packages/essentials/post-processing-stack-83912), связанный с пост-обработкой графики, одной из функций которого был блум всех отображаемых элементов в камере. Применив и грамотно настроив блум к элементам главного героя, (пули и сам гг) игра стала выглядеть намного «дороже» всего за несколько кликов мыши.
Продвижение игры
Понятное дело, что денег на рекламу у нас нет, да и для простенькой игры она была бы бесполезна, так что пришлось искать другие методы по продвижению. Вот что мы решили использовать:
- В Steam есть возможность ставить себе в профиль на публичное обозрение значки и достижения из игр, так что этим элементам мы уделили особое внимание (вдруг кто решит приобрести игру ради них).
- Нами было подмечено, что в сообществе Steam особо популярны сердечки, так что мы решили ставить их везде, куда только можно (карточки, фоны, смайлики, значки и. д.) ·
- Т.к. игру никто не знает, то мы постарались оформить её страницу визуально дорого (Пример дешевого оформления, пример дорогого оформления), а также необходимо было чтобы различные графические элементы (представление в списке, главная картинка и т.д.) выделялись на фоне других игр.
- Добавили поддержку геймпада, игру на двоих за одним компьютером, таблицы рекордов, достижения и всё что могли, лишь бы охватить больший круг геймеров. · Немного рассказали о своей игре на разных ресурсах, посвященных геймдеву.
Заключение
В итоге над этой игрой мы работали почти 4 месяца. Игра была выпущена совсем недавно и носит название NYAN DESTROYER. Перейти на страницу с ней можно по ссылке http://store.steampowered.com/app/773130/NYAN_DESTROYER/.
При разработке игры мы на практике изучили различные аспекты геймдева, и тот ценный опыт мы собираемся применить уже для создания более сложных игр.
Будем рады услышать ваши рекомендации и ответить на вопросы.
Как создать игру в Unity: руководство для начинающих
9 апреля 2020
Не нужно много усилий, чтобы придумать идею для игры, но усилия по ее воплощению несравнимы. Разработка игр — долгий и трудный процесс, который немногим компаниям и разработчикам удается довести до конца, поэтому большинство хороших игровых идей в конечном итоге отбрасываются или замораживаются в аду разработки.
Тем не менее, разработчики, которых не пугают строгость процесса и готовы выделить достаточно ресурсов, могут быть щедро вознаграждены в виде прибыли после выпуска игры.Чтобы помочь подающим надежды разработчикам в их стремлении создать успешную игру, мы будем опираться на наши собственные знания и опыт работы с платформой Unity и, надеюсь, поделимся с ними основами разработки игр на единстве.
Как вы, наверное, знаете, Unity — один из самых популярных игровых движков, доступных сегодня, на него приходится более половины современных мобильных игр и большая часть игр других форматов.
Сроки создания игры в Unity
Игры, как известно, разрабатываются долго, но временные рамки могут быть самыми разными, в зависимости от типа создаваемой игры.На уровне формата Unity поддерживает разработку игр для консолей, ПК, мобильных устройств и VR / AR, так что вы можете видеть, что диапазон весьма значительный. В дополнение к этому разнообразию, игры также бывают разных жанров и предлагают разное количество контента. Все эти факторы сильно влияют на сроки разработки.
Обращаясь к деталям, мы хотим упомянуть, что на создание большинства коммерческих названий уходит от нескольких месяцев до лет, но есть некоторые предостережения. Например, 2D-заголовки, как правило, создаются быстрее, чем 3D.Кроме того, создание большинства мобильных игр занимает в 2 или 3 раза меньше времени по сравнению с крупными играми AAA для ПК и консолей. Чтобы лучше понять, мы можем привести несколько примеров сроков разработки популярных игр на Unity:
Мобильный | |
Temple Run | 4 месяца |
Долина монументов | 10 месяцев |
Shadowgun Legends | 1,5 года |
Hitman: Go | 1 год |
AAA | |
Побег из Таркова | 4 года |
Deus Ex: The Fall | 2 года |
The Elder Scrolls: Legends | 2 года |
ВР | |
VRChat | 5 месяцев |
Удар сабля | 3 года |
Рик и Морти: Виртуальный Рикалити | 1 год |
Если игра, которую вы разрабатываете, не имеет строгих сроков, вы не должны устанавливать произвольные временные рамки для своей игры, а скорее посвятите столько времени, сколько необходимо, для реализации проекта с высоким уровнем качества и проверки. Тем не менее, чтобы разработка продолжалась в быстром темпе, вы можете установить прогнозы ETA и установить более конкретные сроки для прерывистых этапов и задач проекта.
Этапы программирования Unity
Типичный игровой проект включает в себя множество этапов работы, от первоначального планирования и концептуализации до маркетинга и выпуска. Поскольку разработчики обычно не участвуют в этапах подготовки и посткодирования, мы сосредоточимся только на этапе, когда используется Unity.Примечательно, что это также этап, который занимает больше всего времени и требует совместной работы большинства людей.
Очень сложно разбить хронологический порядок разработки Unity просто потому, что все студии осуществляют этот процесс по-разному и могут выбрать работу над разными вещами в порядке, который им лучше всего подходит, а не стандартизированному или популярному шаблону. . Еще один ключевой фактор, который следует учитывать, заключается в том, что многие этапы могут выполняться одновременно, поэтому нет первого, второго, третьего и т. Д.Таким образом, мы просто рассмотрим основные траектории процесса развития.
Прототипирование Unity
Если какой-либо из основных этапов разработки имеет хронологическую привязку, то это прототипирование. Прототипирование обычно выполняется до того, как основные ресурсы вливаются в проект, и направлено на определение жизнеспособности проекта и того, как он может выглядеть в конечном итоге.
Во время прототипирования создается миниатюрная версия игры, просто чтобы посмотреть, насколько хорошо она работает.Концепт-арт трансформируется в функциональные модели, механики строятся из тщательно продуманных планов, и создается своего рода пользовательский интерфейс для доступа к первой версии.
Вся эта работа служит для проверки того, будет ли игра достигать своей цели, быть интересной для игрока и практичной для создания. Например, изначально задуманная механика может оказаться очень сложной и трудоемкой, что побудит студию изменить или заменить их. Кроме того, прототип может служить доказательством концепции или MVP, демонстрирующим дистрибьюторам жизнеспособность проекта.
В то время как Unity предлагает свободу создания пользовательского интерфейса и соответствующего контента для прототипирования, он также предлагает Asset Store, где доступны различные пакеты для прототипирования, включающие множество стандартных GameObject, сборных элементов, текстур и других необходимых вещей.
Сценарии Unity
Сценарии (кодирование) — еще одна важная составляющая Unity. Вместо того, чтобы применяться на одном или двух этапах разработки, кодирование широко используется при создании игр Unity для самых разных функций и аспектов.
Заголовки Unity в основном основаны на коде C #, хотя для некоторых элементов также могут использоваться Javascript и Boo. Этот код может быть написан в IDE (интегрированных средах разработки), таких как Visual Studio и Rider, а также в инструментах визуального написания сценариев, таких как Bolt и Playmaker.
Элементы 2D
Даже если вы создаете 3D-проект, довольно часто можно реализовать определенные 2D-элементы, включая фон, спрайты и текстуры. 2D-изображения в Unity можно создавать и визуализировать в компоненте Sprite Renderer, в то время как 2D-физика поддерживается с помощью таких инструментов, как Box Collider и Rigidbody.Для полностью 2D-проектов уровни можно создавать с помощью удобной системы Tilemap.
Пользовательские интерфейсы
Пользовательский интерфейс вашей программы будет действовать как портал, через который пользователи получают к ней доступ и пользуются ею, поэтому важно сделать ее простой в использовании и удобной. К счастью, Unity предлагает несколько наборов инструментов для помощи в процессе создания пользовательского интерфейса. Во-первых, это набор инструментов UIElements, который в основном ориентирован на веб-игры и веб-приложения.
С другой стороны, Unity UI и IMGUI более широко используются при разработке игр. Пользовательский интерфейс Unity является более простым из двух, но не поддерживает создание пользовательского интерфейса в основной программе редактора Unity. IMGUI более сложен и управляется кодами и скриптами, но также позволяет более детальную настройку и отладку.
Unity Physics
Физика относится к миру, встроенному в программное обеспечение — как такие вещи, как гравитация, движение, удары и инерция. Поскольку Unity — один из лучших и наиболее всеобъемлющих движков, доступных разработчикам программного обеспечения, он имеет одни из самых инновационных физических движков в отрасли, которые были значительно улучшены и доработаны за последнее десятилетие.Лучшие практики в физике Unity включают управление ими с помощью скриптов и компонента Rigidbody, доступного как для 2D-, так и для 3D-проектов.
Графика
Это одна из самых сложных частей процесса проектирования. Чтобы игра выглядела красиво, дизайнеры тратят много времени и усилий на настройку и изменение шейдеров, освещения, углов камеры, визуальных эффектов и частиц. Unity предлагает проприетарную систему шейдеров, а также рекомендуемый набор методов, известный как Global Illumination.
Навигация обычно относится к тому, как персонажи и объекты перемещаются в игровом мире, хотя она также применяется к пользовательскому интерфейсу и тому, как пользователь перемещается по доступным меню и их параметрам. В большинстве игр есть карта, расположенная на определенном уровне, поэтому функции навигации применяются по уровням или остаются неизменными на каждом уровне. Навигация построена в пределах Сцены, и основные компоненты, используемые для управления ею, известны как NavMesh и OffMesh.
Сеть
Если вы создаете многопользовательскую игру или игру, в которой есть некоторые возможности для Интернета, вам нужно будет поработать с некоторыми сложными скриптами, чтобы все работало. К счастью, в Unity есть несколько инструментов, облегчающих этот процесс. Network Manager и High Level API доступны для простых многопользовательских игр, в то время как продвинутые, как правило, полагаются на NetworkTransport API.
Анимация Unity
Анимация в Unity сильно различается в зависимости от того, является ли контент 2D или 3D.2D-анимацию можно создать с помощью пакетов 2D Animation и 2D IK. С другой стороны, основной инструмент для 3D, известный как Animator, позволяет легко управлять движением объектов и персонажей с помощью первоклассной оснастки и реалистичных движений.
Unity Audio
И последнее, но не менее важное: звук является неотъемлемой частью любого релиза, включая речь, звуки, игровую музыку, звуковые эффекты и атмосферу. Встроенные функции Listener, Source и Mixer позволяют импортировать аудио и экспериментировать с ним множеством способов до и после добавления его в вашу видеоигру Unity.
Также следует уточнить, что в этом процессе участвуют как разработчики игр, так и дизайнеры. Гейм-дизайнеры создают модели, макет, механику, игровой процесс и структуру игры. Что касается разработчиков, они пишут код, позволяющий работать всему, что создано дизайнерами. Часто две роли объединяются или их обязанности и способности частично пересекаются.
Что понадобится создателю игр на Unity
Чтобы завершить игру на Unity, первое, что вам понадобится, это сама Unity.Вы можете скачать программное обеспечение бесплатно, но есть определенные ограничения на то, что вы можете с ним делать. Если проект носит коммерческий характер, вам, вероятно, придется выбрать один из платных планов (от 40 долларов в месяц), который предлагает больше возможностей и гибкость. Если у вас есть программное обеспечение, вам также может потребоваться загрузить определенные активы, компоненты, плагины и другой контент, адаптированный к потребностям вашего проекта.
С точки зрения аппаратного обеспечения вам понадобится мощный компьютер, поддерживающий рендеринг и обработку высокой графики. Если вы планируете выпустить свое программное обеспечение на определенной ОС (например, iOS, Android), вам потребуются устройства, работающие в этих системах, чтобы правильно определить, работает ли оно должным образом. Программное обеспечение VR и AR также можно протестировать исключительно на специальном оборудовании (обычно смартфоне, умных очках или гарнитуре), поэтому покупка или аренда этих гаджетов может оказаться необходимой.
Наконец, вам может понадобиться команда разработчиков, если это важный проект, а не хобби, чтобы скоротать время. Большинство крупных игровых студий нанимают десятки (если не 100+) разработчиков для работы над одной игрой просто потому, что нужно сделать так много работы, и им нужно придерживаться ограниченных временных рамок.Вы должны масштабировать свою команду вверх или вниз в соответствии с потребностями проекта в талантах и скоростью его развития.
Проблемы разработки игр на Unity для начинающих
В целом, Unity имеет отличный послужной список, позволяющий компаниям (особенно инди-студиям) легко создавать высококачественные игры, но она ни в коем случае не идеальна. Во-первых, во время своего первого проекта Unity многие люди осознают, что им не хватает опыта программирования (с C #) для реализации высокопроизводительных функций, поэтому они возвращаются к чтению и изучению того, как достичь того, к чему они стремились.
Кроме того, многие специалисты, долгое время работавшие над программированием на Unity 3D, жалуются на ошибки, а не на те, за которые они сами несут ответственность. Работая с платформой, вы можете столкнуться с ошибкой, присутствующей в самом программном обеспечении Unity, без исправления и необходимости переделать некоторые вещи, но то же самое, вероятно, можно сказать и о других игровых движках.
Наконец, вопрос цены. Бесплатная версия программного обеспечения не позволяет вам реализовать множество высококачественных функций, графики и ускорителей производительности, поэтому вы в конечном итоге платите огромную сумму за версии Pro или Enterprise.
Как впервые использовать Unity
Unity очень внимателен к своей пользовательской базе и предлагает широкий спектр материалов для обучения работе с движком. Например, центр обучения на их веб-сайте содержит десятки полезных руководств и видео-пошаговых инструкций, а центр документации предлагает руководства практически по всем основным темам, связанным с программным обеспечением Unity.
Кроме того, компания предлагает множество курсов, предназначенных для разработчиков с разным уровнем опыта работы с Unity.Достигнув значительного уровня опыта и знаний, некоторые специалисты даже предпочитают проходить сертификацию в данной области, что закрепляет их статус квалифицированных разработчиков и создает возможности для трудоустройства.
Наконец, многие сторонние ресурсы предлагают учебные материалы и программы. Например, у Udemy есть бесплатные и платные курсы по соответствующим предметам, а на YouTube можно найти бесчисленные полезные видео о Unity.
Услуги разработки игр для Unity
Если вы обнаружите, что у вас не хватает времени, ресурсов, знаний или персонала для создания игры вашего видения, вы не должны позволять надежде угаснуть.Вы всегда можете найти студию или компанию, которой вы доверяете, и позволить им воплотить ваше видение в жизнь. К выбору такой компании нелегко относиться легкомысленно, поскольку вам понадобится кто-то с опытом, талантом и самоотверженностью, необходимыми для выполнения проекта вовремя и в том виде, в каком вы этого хотите.
Game-Ace — студия из Восточной Европы с более чем 15-летним опытом разработки игр. В нашем портфолио сотни всевозможных игр — мобильные, AAA, VR / AR. Unity — это платформа, с которой мы хорошо знакомы.На самом деле, мы так хорошо знаем, что наша команда сертифицированных Unity специалистов является самой большой в Европе. Мы всегда находимся в поиске новых и интересных проектов, поэтому, если вы ищете надежного партнера для разработки вашей игры, не ищите дальше. Мы будем рады обсудить ваш проект и способы его реализации — просто напишите нам сообщение или позвоните нам.
Как создать простую 2D-игру в Unity
Иногда лучший способ заняться игровым дизайном — это сразу же начать.Увидеть результаты своей работы, перемещаясь на экране, — это увлекательно, и это творческое воодушевление является лучшим топливом для знакомства с игровым дизайном.
Из этого туториала Вы узнаете, как начать создавать игру с помощью Unity, начиная с идеи. Вы узнаете немного о том, как создавать 2D-игры на Unity. Кроме того, вы изучите хороший метод запуска для создания игр Unity 2d с нуля.
Важно отметить, что это руководство не сделает из вас полноценного разработчика Unity и не научит программировать.Однако это поможет вам быстро заставить что-то работать на экране.
Unity — один из самых популярных доступных бесплатных игровых движков. Он также имеет отличный 2D-движок, поэтому 3D-модели не нужны. Еще одна привлекательная особенность Unity заключается в том, что она не требует обширных знаний в области программирования.
Найди свой Bootcamp Match
- Career Karma подойдет тебе с лучшими техническими учебными курсами
- Получите эксклюзивные стипендии и подготовительные курсы
Разработка игр с Unity хороша для создания вещей, которые уже созданы.Например, на Unity были созданы Hollow Knight , фантастический платформер в жанре метроидвания, и Ori and the Blind Forest . Короче говоря, Unity идеально подходит для разработки небольших инди-игр.
Ниже приведено пошаговое руководство по созданию 2D-игры в Unity для начинающих.
Шаг 1: Идея
Шаг первый довольно прост. Вы легко можете сделать это в уме.
Перед тем, как начать, определитесь, какую игру вы делаете. Чтобы понять это, вы должны задать себе несколько вопросов по игровому дизайну:
- Это платформер, игра с видом сверху или, может быть, изометрическая?
- Какая будет тема и основная история?
- Как это будет выглядеть?
- Какой двигатель вы будете использовать?
- Самое главное, чем ваша игра будет выделяться? Какую новую механику или идею он вводит или что будет хорошо?
Хотя вам не нужны твердые или конкретные ответы на большинство этих вопросов, вам все же необходимо общее представление о том, что вы собираетесь делать, прежде чем начать. Вы можете расширить эту идею и создать ее базовый прототип позже. Кому-то нравится делать это на бумаге, а кто-то может просто провести мозговой штурм.
Для начала сделаем платформер. В этом примере особое правило платформеров состоит в том, что игрок должен управлять двумя персонажами одновременно, чтобы решать головоломки, а персонажи должны встретиться, чтобы пройти уровень.
Когда у вас появится несколько идей о том, что делать, у вас будет руководство, с которого можно начать. Теперь можно переходить к прототипированию.
Шаг 1.5: Получите инструменты
Чтобы создать игру в Unity, вам понадобится Unity. Вы можете скачать персональную версию здесь. Имейте в виду, что личная версия необходима только в том случае, если вы не получили более 100 тысяч долларов финансирования или дохода от своей игры. Надеемся, что после того, как вы это сделаете, этот учебник вам не понадобится.
Начните с загрузки «Unity Hub». Затем откройте концентратор, перейдите в «Установить» и нажмите «Добавить». В этом руководстве будет использоваться Unity версии 2019.2.14f1.Вы можете установить любые пакеты, которые вам нравятся или для которых есть место, в зависимости от того, на каких целях вы хотите запускать свою игру. В этом руководстве игра запускается в Windows, поэтому убедитесь, что установлен флажок «Поддержка сборки Windows».
Мы используем Unity версии 2019.2.14f1
Вы также можете создавать графику для своей игры. Поскольку Unity использует пиксельную графику, я настоятельно рекомендую использовать GraphicsGale. GraphicsGale бесплатна, проста в использовании и обладает множеством функций. Однако вы можете свободно использовать любой удобный вам редактор, будь то Photoshop, Blender или Windows Paint.Если вы можете создавать изображения с прозрачным фоном, все будет в порядке.
Шаг 2: Настройте свой проект
Во время установки Unity вы можете потратить время на подготовку некоторых своих ресурсов. Вам понадобится некоторая замещающая графика, называемая заполнителями, чтобы вы могли видеть, что вы делаете. Чтобы нарисовать все анимации вашего персонажа, врагов и окружающую среду, потребуется время, поэтому вы можете начать работу с простой графикой.
Мы используем GraphicsGale для этого урока, но вы можете использовать любой редактор, который вам нравится.Начните с того, что сделайте замену вашим стенам в игре. (Помните, вы всегда можете сделать больше позже.) Стены должны быть размером 100 на 100 пикселей.
Вот пример:
Сделайте что-нибудь быстрое и легкое, чтобы представить элементы нашей игры.
После завершения загрузки Unity вы можете открыть Unity Hub и начать новый проект. Назовите проект как хотите, но не забудьте выбрать 2D для настройки проекта.
Обязательно используйте 2D-шаблон.
Добро пожаловать в Unity! Теперь вы должны посмотреть на редактор Unity.Чтобы перемещаться по 2D-пространству в окне редактора, используйте среднюю кнопку мыши для панорамирования и колесо прокрутки для увеличения. Камера в центре поля представляет то, что увидит игрок.
Добро пожаловать
В Unity есть невероятная функция под названием Unity Asset Store. Asset Store полон готовых кусков игры, таких как модели, текстуры, утилиты или программы AI. Они доступны для продажи, а некоторые даже предлагаются бесплатно. Благодаря этому легко создать игру, не создавая слишком много ресурсов самостоятельно.Вы можете просто взять заранее запрограммированную игровую механику и прикрепить ее к своему собственному арту.
Чтобы получить доступ к этим бесплатным базовым программным ресурсам, просто перейдите на вкладку «Asset Store» в верхней части окна просмотра. Отсюда перейдите к «основным бесплатным ресурсам» и загрузите пакет «Standard Assets (for Unity 2017.3)». Возможно, вам придется войти в систему или создать учетную запись.
Загрузите стандартные ресурсы из Unity Store.
После загрузки пакета нажмите «Импорт» (она заменяет кнопку загрузки после загрузки ресурсов), чтобы импортировать пакет в текущий проект Unity. Вам будет представлен длинный список флажков. Что вы добавляете из пакета, зависит от вас. Для этого урока вам понадобятся только папка «2D» и папка «CrossPlatformInput» в «стандартных ресурсах».
Вам также понадобятся некоторые инструменты для создания 2D-игр в Unity, которые немного помогут. Перейдите по этой ссылке и загрузите Git в виде zip-архива. Затем разархивируйте и перетащите папку внутри в обозреватель ресурсов. Возможно, после этого вам придется перезапустить Unity, чтобы он работал правильно.
Перетаскивайте!
Теперь у вас должно быть все необходимое для начала работы.Пора закопаться и заставить его работать.
Шаг 3: Создайте карту
Чтобы начать создание карты, сначала вернитесь на вкладку «Сцена». В браузере ресурсов в нижней части экрана щелкните правой кнопкой мыши и выберите создать> папку. Назовите новую папку с ресурсами «Плитки».
Обозреватель ресурсов
Вам также может потребоваться добавить изображение-заполнитель в обозреватель ресурсов. Просто перетащите всю папку из окон в обозреватель ресурсов.
Затем создайте палитру, которая будет служить блоками для вашего персонажа.Перейдите в Window> 2D> Tile Palette, чтобы открыть окно Tile Palette. Щелкните «Создать новую палитру», чтобы создать новую палитру плиток. Назовите его «solid», но сохраните все значения по умолчанию и сохраните его в папке «Tiles».
Примечание по организации |
Легко создавать папки, когда вам нужна папка или файл, и затем оставьте его там, где вы его создали. Хотя это нормально, если вы планируете создать крошечную игру с тремя спрайтами, это не лучшая идея, если вы планируете расширять свою игру до чего-то большего.По мере роста вашего проекта недостаток организации вернется, чтобы укусить вас. |
Ваша новая палитра плитки, там еще ничего нет.
Чтобы добавить искусство в палитру, просто перетащите свой заполнитель для блоков уровня в окно выше.
Затем создайте что-нибудь для рисования с помощью палитры. В окне Hierarchy щелкните правой кнопкой мыши и выберите 2D Object> Tilemap.
Щелкните здесь правой кнопкой мыши, чтобы создать карту листов.
Теперь вы можете рисовать на своем уровне.Постарайтесь пока держать его в пределах границ камеры и добавить несколько платформ, на которые можно прыгать.
Удачи!
Наконец, нужно позаботиться об одном последнем шаге. Сейчас ваша карта — это только визуализация, и ваш персонаж не столкнется со стенами, которые вы построили. Фактически, ваш персонаж провалится прямо сквозь пол. Вы должны добавить свойство физики, чтобы игра знала, что эти квадраты имеют значение, и они созданы не только для того, чтобы красиво выглядеть.
Чтобы добавить физическое свойство, щелкните тайловую карту в редакторе, а затем прокрутите вниз в окне инспектора (с другой стороны).Нажмите кнопку «Добавить компонент».
Компонент, который вам нужно добавить, называется «Tilemap Collider 2D». Просто воспользуйтесь окном поиска, чтобы найти его и добавить в свою карту листов.
Шаг 4: Сделайте игрока
Теперь, когда у вас есть карта, следующий шаг — создать кого-то, кто будет перемещаться по ней. К счастью, Unity проделала большую часть тяжелой работы на этом этапе. Если вы зайдете в стандартную папку ресурсов> 2D> Prefabs в браузере ресурсов, вы увидите, что там есть маленький робот под названием «CharacterRobotBoy».prefab. ’
Вот он.
Это сборный. Помните, как к вашей тайловой карте был прикреплен компонент столкновения? Что ж, нашему персонажу нужно много компонентов, прикрепленных к нему, чтобы функционировать. Вместо того, чтобы каждый раз перестраивать каждый компонент, вы можете создавать префабы, которые будут служить игровыми объектами. Их можно использовать снова и снова.
Теперь перетащите мальчика-робота в свою сцену и щелкните по нему в иерархии. Глядя на все компоненты, прикрепленные к нему в Инспекторе, вы заметите, что у него есть система анимации, средство визуализации спрайтов и несколько различных функций управления столкновениями и контроля.
У него есть система анимации, рендерер спрайтов и несколько различных функций управления столкновениями.
Хотя вы можете использовать его сейчас, вам следует создать своего собственного персонажа, который в конечном итоге заменит его. Его спрайт и анимация будут служить вам заменой, пока вы продолжаете развиваться вокруг него.
Теперь, когда мальчик-робот находится в вашей сцене, вы можете играть за него. Нажмите кнопку воспроизведения в верхней части экрана, чтобы попробовать.
Это живая!
Поскольку идея игровой механики в этом уроке состоит в том, чтобы встретить двух персонажей, вам следует перетащить в сцену второго мальчика-робота, возможно, с другой стороны.Таким образом, каждый раз, когда вы играете в игру, вам придется координировать свои действия, чтобы встретить двух персонажей.
Шаг 5: Дорожная карта и сборка
Дорожная карта — один из многих шагов, которые вы можете предпринять отсюда. Теперь, когда у вас есть прототип, вся трудоемкая работа по настройке завершена.
Создание дорожной карты — отличный способ спланировать инди-игру. Вы можете составить дорожную карту, продумав все функции, которые вам нужны в игре, разместив их на временной шкале и перемежая их со временем, чтобы вносить улучшения и исправлять ошибки.
Например, ваша дорожная карта может выглядеть примерно так:
- Добавить систему монет
- Добавить здоровье и урон игрока
- Основные враги
- Проверка ошибок
- Уточнить базовый рисунок
- Создать сценарий завершения игры и победы
- Добавить Элементы пользовательского интерфейса
- Добавить систему меню
- И т. Д.
Это позволяет увидеть масштаб игры в перспективе и помогает увидеть, сколько работы осталось между этим прототипом и готовой игрой.Знать это расстояние важно, так как у вас не всегда есть неограниченное количество времени и внимания, которые можно вложить в игру. Например, у вас может быть крайний срок для игрового джема.
Roadmapping также помогает сдерживать ваши ожидания и дает вам возможность следовать. После того, как вы создадите дорожную карту, следующим шагом будет следовать ей, продолжая улучшать свою игру.
В этом туториале вы познакомитесь только с началом игры; Остальное зависит от тебя. У Unity есть активное сообщество, и существует множество обучающих ресурсов, которые выходят далеко за рамки этого простого учебника по игре.Некоторые из лучших учебных ресурсов включают курсы для начинающих по программированию или игровому дизайну. Путь к тому, чтобы стать разработчиком игр, начинается с вашей первой игры, какой бы простой она ни была, и с этого момента он только растет.
Как создать простую 2D-игру для Android с помощью Unity — Learn to Droid
Многие из самых успешных приложений для Android в магазине Google Play — это игры. Приступить к разработке игр для Android и создать свою первую игру может быть непросто, поскольку существует множество игровых движков на выбор, таких как Unity, libGDX, Unreal Engine и Corona SDK, а также другие, которые требуют от вас использования разных языков программирования.
Скриншот игры GemBuster, которую мы создадим в этом уроке.
Я собрал это руководство о том, как создать простую двухмерную игру для Android, используя популярный игровой движок Unity. Игра, которую мы сделаем в этом руководстве, будет GemBester, которая является урезанным клоном казуальной игры 3 в ряд Bejeweled от PopCap Games. Помимо игрового процесса, игра будет содержать 2D-графику, звуковые эффекты и систему подсчета очков.
Снимок экрана Bejeweled 3, игры в жанре «три в ряд» от PopCap Games
Прочтите, и мы рассмотрим некоторые преимущества использования игрового движка Unity для разработки игр для Android, прежде чем приступить к созданию нашей первой игры для Android с использованием Unity.
Каковы преимущества использования Unity для разработки игр для Android?
Как упоминалось во введении, в этом руководстве мы будем использовать игровой движок Unity для создания простой 2D-игры для Android.
Игровой движок Unity — это простой в использовании игровой движок с богатым набором функций, который повысит вашу продуктивность при создании игры.
Движок Unity поддерживает несколько платформ, что позволяет вам создать игру один раз и развернуть ее на многих различных платформах.Некоторые из платформ, поддерживаемых Unity, включают:
- Настольные платформы, такие как Windows, Mac и Linux
- Мобильные платформы, такие как Android и iOS
- Консольные платформы, такие как PS4, Xbox One и Nintendo Switch
Unity предлагает щедрый уровень бесплатного пользования для использования игрового движка даже в коммерческих целях целей, что снижает первоначальные затраты на разработку. Если вы зарабатываете менее 100 000 долларов дохода или финансирования от использования игрового движка Unity, вы имеете право использовать бесплатную личную лицензию Unity.
Если вы создаете хорошо принятую игру и ваш доход растет, цены на лицензии Plus и Pro на уровне 40 долларов в месяц и 150 долларов в месяц соответственно вполне разумны для той ценности, которую вы получаете.
В
Unity также есть Asset Store, где вы можете приобрести активы для использования в игре, такие как 2D-графика, 3D-графика, аудиофайлы и многое другое, чтобы помочь вам сэкономить на затратах на разработку.
Еще одной сильной стороной Unity является популярность игрового движка. Есть много бесплатных ресурсов, таких как учебные пособия и видеоролики на YouTube, которые доступны в Интернете, чтобы помочь вам, если вы можете застрять в нем.
Как установить Unity
В этом разделе поста я расскажу, как установить игровой движок Unity, чтобы вы могли начать создавать игры для Android.
Мы будем использовать лицензию Unity Personal для Физического лица, которую можно использовать бесплатно при условии, что вы заработаете менее 100 000 долларов дохода или финансирования от разработки игр.
Сначала мы перейдем в Unity Store и выберем кнопку «Начать» под лицензией Unity Personal для физического лица.
Далее в разделе «Пользователи впервые» нажмите кнопку «Начать здесь».
Просмотрите представленные условия и нажмите кнопку «Принять и загрузить».
Начнется загрузка приложения UnityHubSetup.
После завершения загрузки запустите приложение UnityHubSetup. Установите последнюю версию Unity с помощью UnityHub, нажав кнопку «Установить».
Затем мы создадим Unity ID, затем мы войдем в ваш Unity ID в UnityHub, пока устанавливается последняя версия Unity.После входа в систему выберите «Продолжить» и дождитесь завершения установки Unity.
После завершения установки Unity нажмите кнопку «Запустить Unity».
Это загрузит в редактор Unity образец проекта. На данный момент мы закроем редактор Unity, и в следующем разделе этого руководства мы создадим наш первый проект в Unity.
Создание вашего первого проекта Unity
В этом разделе мы создадим наш первый единый проект для нашей 2D-игры-головоломки «GemBuster».
Чтобы создать проект Unity, откройте приложение Unity Hub. Перейдите в раздел «Проекты» и выберите «НОВЫЙ».
Выберите 2D-шаблон, введите имя проекта как «Gem Buster» и нажмите кнопку «Создать».
Это создаст и загрузит проект Gem Bester Unity в редакторе Unity.
Настройка проекта Unity для сборки для Android
Затем мы настроим нашу среду Unity, чтобы мы могли создавать приложения для Android.
Откройте Unity Hub и перейдите в раздел «Установки».
Выберите 3 точки и выберите «Добавить модули».
Отметьте модуль «Поддержка сборки Android», проверьте модуль «Android SDK & NDK Tools» и «Модуль OpenJDK», нажмите кнопку «Далее» и следуйте инструкциям по установке модулей.
После завершения загрузки откройте свой проект Unity в редакторе Unity и откройте настройки сборки, выбрав «Файл», затем «Настройки сборки».
Выберите платформу «Android», затем выберите «Switch Platform».
Выберите подключенное устройство из раскрывающегося списка «Запуск устройства» и выберите «Сборка и запуск».
Введите имя APK и выберите Сохранить
Это запустит проект Unity на вашем устройстве Android, как показано на фотографии ниже.
Создание GemBuster (украшенный драгоценностями клон)
Что мы создадим
GemBuster — это простой клон казуальной игры 3 в ряд Bejeweled, созданный PopCap Games, которая также отвечает за создание других популярных казуальных игр, таких как Plants vs.Zombies Series и Peggle.
Образец видеозаписи игрового процесса Bejeweled 3
В игре GemBuster будет представлена сетка драгоценных камней 8 на 8, которые будут запускаться в случайном порядке. Игрок сможет выбрать драгоценный камень и переместить его на соседнюю плитку в сетке, чтобы поменять местами с драгоценными камнями. Если одинаковые драгоценные камни расположены в сетке 3 раза или больше, драгоценные камни будут удалены из сетки, игрок будет набирать очки, а существующие драгоценные камни упадут в пустые места, порождая больше драгоценных камней в сетке, чтобы заполнить все пустые места. .
<Скриншот GemBuster>
Мы будем использовать игровые ресурсы из популярных бесплатных пакетов игровых ресурсов Kenney.nl. Спрайты для драгоценных камней будут получены из набора ресурсов головоломки Kenney.nl. Звуковые эффекты падающих драгоценных камней взяты из пакета ресурсов Kenney.nl. <Активы для пользовательского интерфейса>.
Игра будет построена с использованием целевой версии Unity для Android.
Шаг 1. Импорт игровых ресурсов в проект Unity
Сначала нам нужно будет загрузить следующие бесплатные пакеты ресурсов от Kenney.nl.
Затем мы откроем наш проект GemBuster в Unity и добавим несколько каталогов в папку Assets.
Создадим следующие каталоги:
- Спрайты
- Звуки
- Скрипты
- Сцены
- Сборные
Импорт спрайтов
Каталог «Спрайты» будет содержать все изображения, которые мы хотим использовать в нашей игре. Разархивируйте архив Kenney.nl Puzzle Pack и скопируйте следующие изображения, которые мы будем использовать для 6 разноцветных драгоценных камней, в папку «Sprites» в Unity.
element_blue_diamond_glossy.png
element_green_diamond_glossy.png
element_grey_diamond_glossy.png
element_purple_diamond_glossy.png
element_red_diamond_glossy.png
element_yellow_diamond_glossy.png
Импорт звуков
Ознакомьтесь с упомянутыми выше пакетами ударных и интерфейсных звуков, которые бесплатно предлагает Kenney.nl. Нам понадобятся три звука, которые мы добавим в нашу игру GemBuster позже в этом уроке.
Найдите звук, который вам нравится, для каждого из приведенных ниже действий и скопируйте их в папку «Звуки» внутри каталога «Активы».
- Выбор драгоценного камня
- Замена драгоценного камня
- Очистка драгоценных камней
Я выбрал следующие аудиоклипы из пакета звуков воздействия и интерфейса Kenney.ml для GemBuster.
Сохранение игровой сцены
Обязательно сохраните сцену в Unity и дайте ей имя «GameScene». Поместите файл GameScene в папку Scenes в каталоге Assets.
Шаг 2: Создание сетки и отображение драгоценных камней на экране
В этом разделе руководства по игре GemBuster для Android мы реализуем сетку драгоценных камней 8 × 8 разных цветов, которая будет отображаться на экране в случайном порядке.
Создание префаба для драгоценного камня
В этом разделе руководства мы познакомимся с концепциями Unity для GameObjects и Prefabs.
В Unity GameObject — это объект, который помещается в сцену Unity и всегда имеет положение и поворот. Компоненты могут быть добавлены в GameObjects, такие как Box Collider, Light, SpriteRenderer или Script, чтобы изменить его внешний вид или функциональность.
В Unity префаб — это шаблон GameObject, который позволяет вам сохранять детали конфигурации GameObject в Asset, которые вы можете повторно использовать в сцене Unity.
Нам нужно будет создать префаб одного из спрайтов драгоценных камней, который мы будем использовать в нашем скрипте для создания сетки драгоценных камней. Прежде чем мы создадим префаб драгоценного камня, нам нужно будет сначала создать и настроить его как GameObject, а затем преобразовать GameObject в Prefab, сохранив все детали его конфигурации.
Чтобы создать GameObject драгоценного камня, который мы затем превратим в Prefab, перейдите в папку Sprites внутри папки Assets, выберите Sprite серого драгоценного камня и перетащите его в редактор сцены Unity.Найдите и на GameObject, который вы только что создали для серого драгоценного камня в иерархии сцен Unity. Затем настроим GameObject серого камня и установим масштаб X и Y на 1,25 в векторе преобразования, чтобы увеличить размер.
Теперь мы готовы создать префаб серого камня, перейдите в каталог Prefab в папке Unity Assets, затем перетащите GameObject серого камня из иерархии сцен Unity в папку Prefabs. Это создаст Prefab, и теперь вы можете удалить GameObject серого камня.
Создание сценария GridManager
Затем мы создадим наш первый скрипт Unity, который будет использоваться для создания сетки драгоценных камней 8 на 8.
В Unity сценарий — это код, который вы пишете на языке программирования C # для управления поведением GameObject в вашей игре. Скрипты пишутся с помощью редактора кода и состоят из классов и методов. Сценарии могут быть добавлены в GameObjects для отображения в вашей сцене в Unity.
Я рекомендую вам добавить в закладки следующие ресурсы, содержащие документацию, которая поможет вам писать сценарии C # в Unity.
Чтобы создать сценарий, перейдите в папку «Сценарии» внутри папки «Активы». Щелкните левой кнопкой мыши папку Assets, выберите «Создать», затем «C # Script». Дайте скрипту имя «GridManager» и нажмите клавишу ввода.
Теперь, когда сценарий создан, откройте его в редакторе кода, скопируйте и вставьте следующий код C # в сценарий GridManager. cs.
Как упоминалось выше, скрипты Unity написаны на языке программирования C # (произносится как C Sharp). Если у вас есть опыт работы с Java, вы можете заметить некоторое сходство в синтаксисе.
В Unity общедоступные переменные в скриптах можно настроить для GameObject в Unity Inspector. В скрипте GridManager у нас есть смесь следующих общедоступных и частных переменных.
- Экземпляр GridManager, то есть статическая переменная с общедоступной видимостью
- Две целочисленные переменные с общедоступной видимостью, представляющие количество строк и столбцов в сетке
- Частный многомерный массив GameObject, представляющий драгоценные камни, показанные в Сетка со столбцом и строкой Gem в Grid в качестве индексов массива
- Общедоступная переменная для списка спрайтов, которые должны быть заполнены Sprite для каждого цвета Gem
- Открытая переменная для GameObject объекта Префаб Gem, который мы будем использовать для создания каждого из Gems в сетке
Также в скрипте Unity для GridManager у нас есть три метода.Метод Start (), метод Update () и метод GenerateGrid (float, float). Наш класс для сценария GridManager является расширением класса MonoBehaviour.
Метод Start () вызывается в скрипте Unity, который расширяет класс MonoBehaviour при запуске игры. В нашем методе Start () мы сначала устанавливаем переменную экземпляра GridManager с помощью метода GetComponent.
После этого префаб Gem используется для получения ширины и высоты каждого Gem, который будет отображаться в сетке, путем получения SpriteRenderer из префаба Gem и доступа к границам.переменная размера в SpriteRenderer. Наконец, в методе Start () мы настраиваем сетку 8 x 8, вызывая метод GenerateGrid (float, float), передавая ширину и высоту Gem в качестве параметров.
Метод Update () вызывается в скрипте Unity, который расширяет класс MonoBehaviour с частотой один раз за кадр. Для нашего скрипта GridManager мы оставили метод Update () пустым.
Метод GenerateGrid (float, float) используется для создания сетки драгоценных камней 8 x 8. Сначала в методе GenerateGrid мы инициализируем многомерный массив Gems, используя количество столбцов и строк, которые должны быть предоставлены скрипту в Unity Inspector.
Затем мы запускаем два цикла for для создания Gem GameObject в каждой строке и столбце сетки.
Gem GameObject создается с использованием метода Instantiate (…) с префабом Gem в качестве GameObject для репликации в рассчитанной позиции с использованием 3D-вектора с вращением, соответствующим вращению префаба Gem.
Положение каждого драгоценного камня вычисляется с использованием координат сетки (с использованием трехмерного вектора transform.position) и добавления ширины или высоты камня, умноженной на индекс столбца или строки.
После создания Gem с использованием метода Instantiate (…) ему присваивается соответствующий столбец и строка в многомерном массиве. Затем между сеткой и Gem создается родительско-дочерняя связь с использованием переменной transform.parent на Gem.
Спрайт, который будет использоваться для Gem (который отличается для каждого цвета Gem), устанавливается с помощью SpriteRenderer на Gem путем присвоения переменной спрайта в SpriteRenderer Gem случайному спрайту в списке спрайтов, содержащих каждый цвет Gem .
Создание и настройка Grid GameObject
Теперь, когда у нас есть сценарий для GridManager, следующим шагом будет добавление сетки, которая будет отображаться в сцене Unity.
Для этого мы сначала откроем GameScene в Unity из папки Scenes в каталоге Assets. Затем мы добавим пустой GameObject в GameScene, щелкнув правой кнопкой мыши в иерархии сцен Unity и выбрав «Create Empty». Переименуйте GameObject, который вы только что создали, в «Grid».
Затем мы добавим скрипт GridManager к Grid GameObject в Unity Inspector, выбрав Grid GameObject, затем нажав кнопку «Добавить компонент», выбрав опцию «Сценарий», затем выбрав скрипт «GridManager».
Теперь, когда скрипт GridManager был добавлен в Grid GameObject, теперь мы заполним общедоступные переменные из скрипта GridManager в инспекторе Unity.
Поскольку нам нужна сетка 8 на 8, введите 8 в поля «Строки» и «Столбцы» в сценарии диспетчера сетки.В общедоступной переменной Gem Sprites для переменной Size введите 6, так как у нас есть 6 разных цветов Gems, это создаст элементы 0-5 в переменной Gem Sprites.
Затем перейдите в папку Sprites в каталоге Assets и найдите 6 различных Gem Sprites, перетащите каждый Gem Sprite в один из слотов Element.
Наконец, перейдите в папку Prefabs в каталоге Assets и найдите Gem Prefab, который вы создали ранее. Перетащите этот префаб Gem в переменную Gem в скрипте Grid Manager в Unity Inspector.
Теперь, если вы нажмете кнопку Play в редакторе Unity, вы должны увидеть сетку драгоценных камней 8 на 8 в случайном порядке, показанном на экране. Вам может потребоваться изменить положение Grid GameObject, если драгоценные камни выходят за пределы экрана, чтобы все драгоценные камни правильно отображались на экране.
Вы можете заметить, что у нас есть несколько драгоценных камней в сетке, которые отображаются как 3 или более в ряд по вертикали или горизонтали, это то, что мы рассмотрим на более поздних этапах обучения.
Шаг 3. Добавление сенсорных элементов управления для обмена драгоценными камнями
На третьем этапе учебника по созданию игры GemBuster мы создадим сценарий для драгоценного камня и реализуем базовые сенсорные элементы управления для выбора, отмены выбора и замены драгоценных камней.
Создание скрипта для драгоценного камня
Создайте новый скрипт C # в Unity, перейдя в папку Scripts внутри каталога Asset, щелкните правой кнопкой мыши, выберите «Create» и нажмите «C # Script». Переименовать в «Gem» и открыть скрипт в редакторе кода.
Скопируйте и вставьте следующий код C # в скрипт Gem.cs.
Все переменные в Gem Script являются частными. Следующие переменные определены в Gem Script.
- Переменная для цвета, который будет применен к SpriteRenderer на Gem, когда он выбран
- Переменная для цвета, который будет применен к SpriteRenderer на Gem, когда он не выбран
- Логическая переменная, для которой установлено значение истина, если Gem выбран, в противном случае для нее установлено значение false
- Переменная Gem, которая ссылается на ранее выбранный Gem, который используется для замены предыдущего Gem на текущий выбранный Gem
- Переменная SpriteRenderer, которая используется для применения цвета к Gem Sprite, если он выбран или не выбран, а также изменение Gem Sprite, если поменять местами два Gem
Следующие методы определены в Gem Script.
- Start ()
- Select ()
- Unselect ()
- OnMouseDown ()
- IsSelectedGemAdjacent ()
- SwapGem ()
Метод Start () используется для инициализации Gem. Он получает SpriteRenderer и по умолчанию Gem не выбран.
Метод Select () используется для выбора драгоценного камня в сетке 8 x 8. Метод Unselect () снимет выделение с текущего выбранного Gem.
Метод IsSelectedGemAdjacent () вычисляет соседние Gem, отправляя raycast в направлениях вверх, вниз, влево и вправо выбранного Gem и добавляя GameObjects, вызвавшие столкновение, в список.Затем этот список проверяется, содержит ли он ранее выбранный самоцвет. В этом случае выбранный Gem находится рядом с предыдущим Gem, и метод вернет true, в противном случае он вернет false.
Метод SwapGem () используется для смены соседних драгоценных камней, которые были выбраны один за другим. Это достигается заменой Sprite of the Gems временным значением Sprite.
Метод OnMouseDown () используется для обработки событий касания на Gem.Он определяет, нужно ли выбрать Gem, снять выделение или поменять местами с соседним Gem, используя ряд условных операторов.
Обновление префаба Gem
Теперь мы внесем два изменения в префаб Gem, который мы создали ранее в этом уроке. Нам нужно будет открыть Gem Prefab в Unity Inspector для редактирования, для этого найдите Gem Prefab внутри папки Prefabs в каталоге Assets и дважды щелкните по нему.
Сначала нам нужно назначить Gem Script, который мы только что создали, префабу Gem.Для этого нажмите кнопку «Добавить компонент», выберите «Сценарии», затем щелкните скрипт «Gem».
Затем нам нужно будет добавить 2D компонент Box Collider 2D в Gem Prefab. Это необходимо для того, чтобы, когда мы нажимаем на Gem, чтобы выбрать или поменять его местами, касания регистрировались только в том случае, если в GameObject присутствует коллайдер. Чтобы добавить Box Collider 2D в префаб Gem, нажмите кнопку «Добавить компонент», выберите «Physics 2D», затем нажмите «Box Collider 2D».
После внесения этих изменений в префаб Gem, Unity Inspector должен показать компоненты Gem Script и Box Collider 2D, добавленные в префаб Gem, как показано на скриншоте ниже.
Сохраните изменения в префабе Gem, затем перейдите к следующему разделу руководства.
Настройка параметров проекта Physics 2D Unity
На последней части шага, чтобы убедиться, что raycasting будет работать правильно при обнаружении смежных драгоценных камней, нам нужно будет отключить флаг «Запросы запускаются в коллайдерах» в настройках 2D-проекта Unity Physics.
Чтобы получить доступ к настройкам проекта Unity, выберите меню «Правка» и выберите пункт меню «Настройки проекта…».
Выберите параметр «Физика 2D» на левой боковой панели и снимите флажок «Запросы запускаются в коллайдерах».
Теперь, если вы запустите игру GemBuster, вы сможете поменять местами соседние драгоценные камни в сетке 8 x 8, как показано на снимке экрана ниже.
Шаг 4: Реализация сопоставления, очистки и падения драгоценных камней
На четвертом шаге этого урока мы доработаем логику игры, которая необходима для игры GemBuster.
Сначала мы изменим сценарий GridManager, чтобы обновить метод создания сетки, чтобы предотвратить совпадение 3 или более драгоценных камней, найденных в исходной созданной сетке.
После этого мы создадим несколько методов для обнаружения совпадений 3 или более драгоценных камней в сетке с использованием преобразования лучей против двух драгоценных камней, которые поменялись местами. После обнаружения совпадений мы создадим несколько методов для удаления этих драгоценных камней из сетки.
Наконец, на четвертом шаге учебника мы реализуем игровую логику, чтобы сбрасывать драгоценные камни, которые находятся над очищенными драгоценными камнями, и создавать новые игры там, где требуется, чтобы заполнить сетку драгоценных камней 8 x 8.
Изменение сценария создания сетки для предотвращения совпадений в исходной сетке
Мы начнем этот раздел с открытия GridManager.cs в редакторе кода, и мы внесем некоторые изменения в метод GenerateGrid (float, float) вместе с добавлением нового метода RandomSpriteExcluding (List
В методе GenerateGrid (float, float) мы меняем способ назначения нового Sprite Gem в Grid. Вместо того, чтобы выбирать любой спрайт драгоценного камня наугад, мы создадим список спрайтов для выбора для драгоценного камня, и сначала мы исключим спрайт камня слева от нового камня, если он существует. И мы также исключаем Sprite of the Gem под новым Gem, если он существует.Затем из этого списка возможных спрайтов мы выбираем случайный спрайт, гарантируя, что в исходной сетке не будет совпадений из 3 или более.
См. Фрагмент кода, показывающий изменения в сценарии GridManager.cs ниже.
Если вы внесете указанные выше изменения в сценарий GridManager, то при запуске игры GemBuster вы увидите, что сетка 8 x 8 не будет запускаться без совпадений из 3 или более подряд, как показано на снимке экрана ниже.
Обнаружение и удаление совпадений из 3 или более драгоценных камней в сетке
В этом разделе руководства мы изменим существующий Gem. cs Script, чтобы ввести некоторые новые методы для обнаружения и удаления совпадений 3 или более драгоценных камней в сетке.
См. Фрагмент кода, в котором показаны изменения для реализации игровой логики поиска и очистки совпадений в скрипте Gem.cs ниже.
В этом фрагменте кода были созданы три новых метода.
Приведение лучей используется в направлениях Vector2.left и Vector2.right замененного камня, чтобы проверить, совпадает ли соседний драгоценный камень с цветом замененного камня.
Если есть совпадение, драгоценный камень добавляется в Список, и преобразование лучей выполняется снова на соседний драгоценный камень, пока либо цвет соседнего драгоценного камня не совпадет, либо не будет достигнута левая или правая сторона сетки и больше не будет драгоценные камни для сравнения.
Метод FindVeriticalMatches () также возвращает список GameObjects, он использует ту же логику, что и метод FindHorizontalMatches (), но вместо использования Vector2.left и Vector2.right направление при сравнении цвета соседних драгоценных камней с замененным драгоценным камнем, он перемещается в направлении Vector2.up и Vector2.down.
Метод FindVeriticalMatches () проверяет, соответствует ли замененный драгоценный камень цвету соседнего драгоценного камня в направлении вверх и вниз, пока цвет не перестанет совпадать или не будет достигнута верхняя или нижняя граница сетки и не останется драгоценных камней для сравнения.
Метод ClearMatches () отвечает за вызов методов FindHorizontalMatches () и FindVerticalMatches () после того, как драгоценные камни переставлены местами в сетке.Если есть по крайней мере два драгоценных камня в Списке горизонтальных совпадений или Списке вертикальных совпадений, эти драгоценные камни будут удалены с экрана с помощью SpriteRenderer на Gem и установки для Sprite значения null. Требуется по крайней мере два драгоценных камня вместо трех, потому что обмененный драгоценный камень не включается в подсчет совпадений.
Метод ClearMatches () также вызывает метод DropGems () для экземпляра GridManager, если есть по крайней мере два совпадения по вертикали или горизонтали. Этот метод будет рассмотрен в следующем разделе этого руководства.
В дополнение к трем новым методам, метод OnMouseDown () также был немного изменен. После того, как пользователь поменял местами два соседних камня, метод ClearMatches () будет вызываться дважды для драгоценного камня, который был заменен.
Если вы внесете эти изменения и запустите игру GemBuster, вы увидите, что когда вы меняете местами два соседних камня и обнаруживается совпадение из 3 или более драгоценных камней, они будут удалены из сетки, как показано на снимке экрана ниже.
Реализация падающих и нереста драгоценных камней
В этом разделе руководства мы обновим GridManager.cs Скрипт для падения драгоценных камней, если под ними есть расчищенные места. В дополнение к этому мы реализуем создание новых драгоценных камней после очистки драгоценных камней, чтобы их можно было пополнять в сетке 8 × 8.
См. Пример кода сценария GridManager.cs, содержащего функциональные возможности для реализации падения и порождения драгоценных камней.
В этот сценарий GridManager добавлены три новых метода.
- GetDroppableGems ()
- GetSpawnableGems ()
- DropGems ()
Метод GetDroppableGems () возвращает список индексов x и y многомерного массива драгоценных камней, которые находятся над пустым местом в таблице.
Метод GetSpawnableGems () возвращает список индексов x и y многомерного массива драгоценных камней, который может иметь Gem, порожденный в этом месте из верхней части сетки.
Метод DropGems () использует как метод GetDroppableGems (), так и метод GetSpawnableGems (), чтобы убедиться, что все удаляемые драгоценные камни попадают в правильное место в сетке, а новые драгоценные камни создаются правильно.
Метод DropGems () сначала использует метод GetDroppableGems () и получает список индексов x и y, содержащих драгоценные камни, которые могут упасть.Затем он использует цикл while для понижения позиции каждого сбрасываемого драгоценного камня на одно деление за раз, пока больше не останется сбрасываемых драгоценных камней.
После этого метод DropGems () вызовет метод GetSpawnableGems () для получения списка индексов x и y, в которых может быть порожден драгоценный камень. Для каждого из этих индексов x и y создается случайный спрайт, который не приводит к созданию соответствия, и помещается в координаты x и y в сетке.
Наконец, каждый Gem в Grid извлекается, и для Gem вызывается метод GetMatches (), чтобы проверить, есть ли какие-либо новые совпадения, требующие повторения процесса сопоставления, очистки, удаления и порождения драгоценных камней.
Если вы внесете эти изменения в скрипт GridManager.cs и запустите игру GemBuster, вы увидите, что драгоценные камни будут выпадать, если под ними останется пустое место, а новые драгоценные камни будут появляться сверху, как показано на снимке экрана ниже.
Шаг 5: Добавление звука
Вернувшись к шагу 1, вы должны были загрузить несколько звуковых пакетов с Kenney.nl и добавить три звука в папку Sounds в каталоге Assets.
На этом этапе урока мы будем обновлять префаб Gem и Gem.cs Скрипт для воспроизведения следующих трех звуков во время игры в игре GemBuster.
- Выбор звука драгоценных камней
- Замена звука драгоценных камней
- Очистка звука драгоценных камней
Мы начнем с внесения следующих изменений в скрипт Gem.cs.
- Добавьте три общедоступные переменные AudioClip
- Добавление кода к методу Select (), методу Swap () и методу ClearMatches () для воспроизведения каждого из аудиоклипов
См. Отрывок кода из Gem.cs Скрипт ниже.
Затем нам нужно будет внести некоторые изменения в префаб Gem, чтобы установить для аудиоклипов переменные в скрипте, а затем добавить компонент «Источник звука».
Откройте префаб Gem, затем откройте папку Sounds в каталоге Assets и перетащите звуковые файлы в соответствующую переменную Audio Clip.
Затем, чтобы добавить компонент «Источник звука» в префаб Gem, нажмите кнопку «Добавить компонент», выберите «Аудио», затем выберите «Источник звука».
После того, как вы внесете эти изменения и запустите игру GemBuster, вы должны услышать разные звуки, воспроизводимые при выборе драгоценного камня, замене камня или удалении драгоценных камней из сетки.
Шаг 6: Добавление подсчета очков и таймера обратного отсчета
На шестом шаге этого урока мы добавим в игру систему подсчета очков, а также таймер обратного отсчета, который мы будем отображать в пользовательском интерфейсе игры.
Добавление холста с текстовыми полями
Мы начнем этот шаг учебного пособия с добавления некоторых текстовых полей на экран для отображения текущего счета, рекордов и таймера обратного отсчета.
Холст можно добавить на экран, щелкнув правой кнопкой мыши в иерархии сцен Unity, выбрав «UI», затем выбрав «Canvas».
Затем мы добавим панель на холст, щелкнув правой кнопкой мыши на холсте и выбрав «UI», затем «Panel».
Дайте панели имя «GameUIPanel» и убедитесь, что панель полностью прозрачна, сняв флажок «Изображение».
Затем мы добавим три текстовых поля на панель, щелкнув правой кнопкой мыши на панели в Unity Hierarchy, выбрав «UI» и нажав «Text».
Настройте каждое из трех текстовых полей в инспекторе Unity, присвоив им узнаваемое имя, задав текст, который будет отображаться, установите размер шрифта и настройте выравнивание текста по горизонтали и вертикали, как показано на снимке экрана ниже.
После настройки панели для игрового пользовательского интерфейса повторите соответствующие части описанного выше процесса, чтобы создать вторую панель под холстом, которая будет отображаться по окончании игры.
Добавьте на эту панель три текстовых поля: одно для отображения текста «Игра окончена», а два других — для отображения окончательного результата и рекорда.
Добавьте кнопку на панель, чтобы перезапустить игру с экрана Game Over, щелкнув правой кнопкой мыши на панели в иерархии Unity, выбрав «UI», затем щелкнув «Button».
Разверните кнопку в иерархии Unity, выберите элемент Text под кнопкой и обновите текст на «PLAY AGAIN» в Unity Inspector, как показано на скриншоте ниже.
Сделайте одно дополнительное изменение GameOverPanel, чтобы оно загружалось как неактивное (скрывая его от пользователя), сняв флажок рядом с названием панели в инспекторе Unity, как показано на снимке экрана ниже.
Настройка GameManager
Затем мы настроим GameManager, который будет отвечать за отслеживание игрового счета, таймер обратного отсчета игры, отображение экрана окончания игры и перезапуск игры.
Создайте новый сценарий под названием «GameManager», скопируйте и вставьте внутрь следующий код.
Затем создайте пустой GameObject в иерархии Unity и присвойте ему имя «GameManager». Затем добавьте сценарий GameManager в GameManager GameObject.
Затем перетащите соответствующие текстовые поля, панели и кнопки из иерархии Unity в общедоступные переменные в Unity Inspector для GameManager GameObject.
Наконец, мы внесем два небольших изменения в Gem Script.
Первое изменение — в методе OnMouseDown (), где мы добавим в оператор if условие для возврата null в начале метода OnMouseDown (), чтобы проверить, закончена ли игра, используя логическую переменную из GameManager.Это позволит нам предотвратить взаимодействие пользователя с игровым процессом, если игра окончена, пока игра не будет перезапущена.
Второе изменение касается метода ClearMatches (), где метод IncreaseScore () в GameManager вызывается для добавления очков к счету после вызова метода DropGems () в GridManager.
См. Фрагмент кода ниже, содержащий изменения в скрипте Gem.cs.
Если вы внесете указанные выше изменения и запустите игру GemBuster, вы должны увидеть что-то вроде скриншота, показанного во введении к этому посту.
Теперь, когда вы завершили игру GemBuster, чтобы создать APK для вашего Android-приложения в Unity, выберите «Файл», затем «Настройки сборки». Затем нажмите кнопку «Построить», выберите имя файла и расположение для файла APK, выберите «Сохранить» и дождитесь создания APK.
Введение в мобильную разработку с помощью Unity
Две вещи были представлены в 2008 году почти одновременно. IOS и Google Play Store открыли мир мобильных игр. Этот новый мир представил новый способ играть в игры на вашем смартфоне.С тех пор создавать свои собственные приложения и выпускать их в магазине стало намного проще, чтобы все могли мгновенно загружать и играть. Поэтому неудивительно, что Unity можно использовать для простого создания ваших собственных мобильных проектов. Собираетесь ли вы создать игру для себя или для всего мира, для iOS или Android, вы можете воплотить это видение в жизнь с помощью Unity.
Но с чего начать? С того же места, где должен начинать любой творец, — с основ. Следуйте инструкциям, и вы создадите на Unity базовое приложение, которое выполняет три простые задачи.Первая цель — нажать на объект, чтобы он изменил цвет. Затем будет создана кнопка, которую пользователь может нажать всякий раз, когда захочет заблокировать игровую камеру на месте. Зачем вам блокировать камеру? Что ж, для конечной цели вы будете вращать игровую камеру с помощью гироскопа вашего телефона. Верно, если в реальной жизни перемещать телефон, камера будет перемещаться в вашей игре. Все эти задачи в совокупности создают простое приложение, которое знакомит вас с основами создания мобильной игры в Unity.
Настройка
Создание проекта похоже на любой другой проект Unity. Мобильный проект не меняет эту часть процесса. После открытия Unity создайте новый проект, как показано на рисунке 1.
Рисунок 1: Создание нового проекта
Затем назовите это MobileIntro . Убедитесь, что это проект 3D , затем выберите Location для проекта. После того, как вы все это сделаете, вы готовы к созданию проекта. Он должен выглядеть как на рисунке 2.
Рисунок 2: Именование и создание проекта.
Вы можете начать с создания объектов, которые будут важны для этого проекта. Начнем с создания куба. Это будет объект, на который пользователь может нажать, чтобы изменить его цвет на случайный. Чтобы создать этот объект, нажмите кнопку Create в окне Hierarchy . Затем перейдите к 3D Object-> Cube , чтобы создать кубический объект, как показано на рисунке 3.
Рисунок 3: Создание куба.
В настоящее время куб довольно мал, и любой, кто делал практически что-либо с помощью мобильного приложения, знает, насколько сложно нажимать на мелкие объекты. Вам нужно увеличить размер куба. Щелкните объект Cube в иерархии Hierarchy . После этого перейдите в окно Inspector и найдите компонент Transform . Это должен быть первый компонент, который вы увидите в самом верху окна Inspector . После обнаружения замените все переменные в полях Scale на четыре, как показано на рисунке 4.
Рисунок 4: Название объекта и установка масштаба.
Затем вы создадите еще два объекта. Первый — это просто менеджер, который будет содержать скрипт, запускающий проект. Второй — это пользовательский интерфейс (UI), с которым пользователь может взаимодействовать, чтобы зафиксировать игровую камеру в ее текущем положении. Используя то же самое меню Create в окне Hierarchy , создайте пустой игровой объект и назовите его GameManager . Затем, снова используя меню Create , перейдите к UI-> Button , чтобы создать кнопку, которую пользователь будет нажимать для выполнения функции блокировки камеры.По завершении иерархия должна выглядеть так, как показано на рисунке 5 ниже.
Рисунок 5: Текущая иерархия.
Возможно, вам потребуется отрегулировать положение только что созданной кнопки, чтобы она заняла именно то положение, которое вам нужно. Выберите объект Button в окне Hierarchy и перейдите к компоненту Transform в Inspector . Установите привязку в левую верхнюю часть экрана. Затем установите Pos X на 50 и Pos Y на -40.Наконец, измените Width и Height кнопки на 100, как показано на рисунке 6.
Рисунок 6: Установка привязки, положения, ширины и высоты.
Затем вы захотите изменить текст кнопки на LOCK. В окне Hierarchy щелкните стрелку рядом с объектом Button , как показано на рисунке 7.
Рисунок 7: Открытие дочерних объектов.
Появится объект кнопки Text .Выберите его и перейдите к компоненту Text в окне Inspector . Затем вам нужно будет изменить текст на LOCK , а затем отрегулировать размер текста, используя Font Size . По завершении компонент должен выглядеть, как показано на рисунке 8 ниже.
Рисунок 8: Установка размера текста и шрифта.
После завершения все объекты, необходимые для проекта, готовы, но еще не время писать код. Поскольку это мобильный проект, вам нужно будет выполнить несколько действий, чтобы программа работала на вашем мобильном устройстве.В верхнем меню выберите File-> Build Settings , как показано на рисунке 9.
Рисунок 9: Открытие настроек сборки.
Откроется диалоговое окно «Параметры сборки», в котором показано множество платформ, на которых можно запустить приложение, созданное в Unity. Однако для каждой платформы необходимо установить разные модули. На рисунке 10 показано диалоговое окно и сообщение об установке модуля для разработки под Android.
Рисунок 10: Параметры сборки без установленных необходимых модулей.
Здесь вы можете создать свой проект, который будет запускаться на любом устройстве, которое вы выберете. Кроме того, вы можете перейти к настройкам проигрывателя и изменить некоторые свойства вашей сборки, такие как изображение, которое будет использовать ваше приложение. В зависимости от того, как вы установили Unity, вам также может потребоваться установить модули Android или iOS для вашей копии Unity. Для этого вы можете использовать тот же установщик Unity, который вы использовали для установки Unity на свой компьютер. Только не забудьте выбрать для установки только модуль Android и / или iOS.
Вам также может потребоваться загрузить SDK для работы вашего проекта. В этом примере будет показано, как установить Android SDK, в частности. Это можно сделать либо с помощью инструментов командной строки, либо с помощью приложения Android Studio. Инструкции для обоих методов можно найти в документации Unity здесь.
Если вы уже выполнили все вышеперечисленное, сообщите Unity, что это мобильный проект. Еще раз, рисунки в примерах покажут выбор устройств Android в качестве предпочтительной платформы, но вы также легко сможете использовать этот проект на устройстве iOS.Выберите подходящее мобильное устройство, затем в нижней части окна Build Settings вам нужно будет щелкнуть Switch Platform , как показано на рисунке 11.
Рисунок 11: Коммутационные платформы.
Как только это будет сделано, Unity перестроит проект и установит целевую платформу по вашему выбору. После завершения процесса вы увидите, что логотип Unity будет рядом с выбранной вами платформой. Теперь вам нужно изменить некоторые настройки проигрывателя для вашего проекта.Непосредственно справа от кнопки Switch Platform (теперь неактивной) щелкните Player Settings , как показано на рисунке 12.
Рисунок 12: Платформа выбрана. Теперь о настройках плеера.
Окно инспектора изменится, показывая, какие настройки проигрывателя вы можете изменить для своего проекта. Здесь вы можете многое сделать, например изменить значок приложения или настройки API. В этом проекте вы начнете с изменения ориентации приложения. Щелкните «Разрешение и презентация», «», затем найдите настройки «Ориентация и ».В этом проекте предполагается, что вы установили ориентацию на Альбомная Правая . На рисунке 13 показаны настройки.
Рисунок 13: Установка ориентации приложения по умолчанию.
После этого найдите Другие настройки . Чтобы позже протестировать свой проект на телефоне, вам нужно будет указать имя пакета для проекта. В разделе Другие настройки вам нужно будет найти поле Имя пакета . Требуемый формат для этого имени пакета — com.CompanyName.PackageName . Оставьте com часть имени и измените CompanyName и PackageName . Его можно установить как угодно, но в примере ниже на рис. 14 будет просто использовать com.mycompany.mobileintro в качестве имени пакета для проекта.
Рисунок 14: Создание имени пакета для файла apk.
Настройки вашего проекта для мобильных устройств настроены, и пора написать код проекта.Щелкните правой кнопкой мыши в окне Assets и выберите Create-> C # Script , как показано на рисунке 15.
Рисунок 15: Создание сценария C #.
Назовите этот сценарий PlayScript . Когда вы закончите, окно Assets должно выглядеть примерно так, как показано на рисунке 16.
Рисунок 16. Окно Assets с PlayScript
Дважды щелкните сценарий, чтобы открыть его в Visual Studio.
Код
К счастью, для создания этого проекта не требуется никаких дополнительных операторов using.Строка , использующая UnityEngine
, уже должна быть в коде при создании. Кроме того, вам нужно добавить с помощью UnityEngine.UI
, чтобы изменить текст кнопки пользовательского интерфейса. Наконец, вам нужно будет объявить некоторые переменные, которые будут относиться к трем объектам в проекте. Эти объекты — игровая камера, текст на кнопке и созданный вами куб.
общедоступный GameObject mainCamera; публичный MeshRenderer cubeRender; общедоступная текстовая кнопка Текст; |
После этого будет объявлено несколько частных переменных.Один из них — типа Гироскоп
. Как вы уже догадались, это связано с внутренним гироскопом вашего телефона, который будет использоваться для перемещения игровой камеры. Следующая переменная, называемая rotMultiplier
, используется для увеличения скорости движения камеры при повороте телефона. По умолчанию он не уйдет далеко. С помощью этой переменной вы можете увеличить количество перемещений камеры, когда гироскоп обнаруживает вращение. В этом примере значение rotMultiplier
равно пятидесяти, но вам может потребоваться изменить это число в вашем собственном проекте.Наконец, создается логическое значение
, которое сообщит проекту, блокировать камеру или нет.
частный гироскоп Gyroscope; частное число с плавающей запятой rotMultiplier = 50; private bool lockCam = false; |
Теперь вы перейдете к функции Start
. Каждый раз при запуске игры будет производиться быстрая проверка, есть ли на телефоне, который вы используете, гироскоп.В наши дни большинство мобильных устройств имеют гироскопы, так зачем вообще нужен чек? В первую очередь это делается для включения функций гироскопа для Unity. Если по какой-либо причине на мобильном устройстве отсутствует гироскоп, это может предотвратить сбой проекта. В этом случае вы, скорее всего, захотите добавить оператор else
после оператора if
и выполнить все, что вы хотите, чтобы проект делал в случае, если гироскоп недоступен. Однако в этом примере предполагается, что ваше устройство оснащено гироскопом и дополнительный код не требуется.В интересах правильного программирования в этом примере будет использоваться оператор if.
if (SystemInfo.supportsGyroscope) { gyro = Input.gyro; gyro.enabled = true; } |
Функция Start
завершена, и код должен выглядеть примерно так, как показано на рисунке 17.
Рисунок 17: Объявления переменных и функция Start .
Затем вам нужно перейти к функции Обновить
. Здесь вы введете код для функции обнаружения касания куба, а также поворота камеры. Код, который улавливается при касании куба, выглядит следующим образом:
if (Input.GetMouseButtonDown (0)) { Ray ray = mainCamera.GetComponent new Vector3 (Input.GetTouch (0) .position.x, Input.GetTouch (0) .position.y, 0)); RaycastHit RaycastHit; if (Physics.Raycast (ray, out raycastHit)) { float r, g, b; r = Случайный диапазон (0,0f, 1,0f); g = Случайный диапазон (0,0f, 1,0f); b = Случайный диапазон (0,0f, 1,0f); cubeRender.material.color = new Color (r, g, b); } } |
Это любопытно.Почему вам нужен ввод с помощью мыши? Вот небольшой полезный совет о Unity. Вы можете использовать один и тот же код, который вы использовали бы как для игр, запускаемых на настольном компьютере, так и для игр, запускаемых на мобильных устройствах. Хотя вы можете специально искать касание экрана, вам может быть проще просто искать щелчок мышью. Кроме того, если вы стремитесь создать проект, который может работать как на ПК, так и на мобильных устройствах, вам потребуется меньше кода для каждой версии. Это также может быть полезно при тестировании программы на настольном компьютере перед дальнейшим тестированием на мобильных устройствах.
Вы проверяете, произошло ли нажатие мыши . Как только вы это сделаете, raycast
будет создан в точке, где в это время находился курсор мыши . raycast
можно рассматривать как стрелу, стреляющую вперед. Если он во что-то попадает, программа может получить информацию о том, что было поражено, и даже изменить рассматриваемый объект при ударе. Хороший пример этого — почти каждый шутер от первого лица. Каждый раз, когда вы стреляете из пистолета, вы на самом деле не стреляете пулей из пистолета.Скорее игра стреляет из пистолета raycast
. В зависимости от того, во что он попадает, произойдет определенное действие, будь то нанесение урона противнику или оставление дыры в стене.
В этом случае, когда raycast
попадает в ваш куб, куб получает новый случайный цвет, применяемый к нему. После получения трех случайных чисел, представляющих красный, зеленый и синий, вы получаете переменную цвета из cubeRender
и назначаете новый цвет. После этого вы создаете код, который управляет движением камеры.Следующие две строки кода довольно просты. Если переменная lockCam
имеет значение false, то поверните камеру на основе входных сигналов от гироскопа.
if (lockCam == false) mainCamera.transform.rotation = Quaternion.Euler ( gyro.attitude.x * rotMultiplier, gyro.attitude.y * rotMultiplier, 0); |
Теперь, когда этот код введен в функцию Update
, вы можете двигаться дальше.Код должен выглядеть как на рисунке 18.
Рисунок 18. Функция обновления .
Перед выходом из Visual Studio необходимо создать последнюю функцию. Эта функция, называемая LockCamera
, будет использоваться в кнопке пользовательского интерфейса, которую вы создали ранее. Всякий раз, когда вы нажимаете эту кнопку, будет вызываться эта функция. Все, что он делает, это устанавливает lockCam
в значение true или false и изменяет текст на вашей кнопке. Код, расположенный под функцией Update
, выглядит следующим образом:
public void LockButton () { if (lockCam == false) { lockCam = true; кнопка Текст.текст = «РАЗБЛОКИРОВАТЬ»; } else { lockCam = false; buttonText.text = «БЛОКИРОВКА»; } } |
Итак, код этого проекта готов. Сохраните свою работу и вернитесь в редактор Unity, чтобы завершить проект.
Завершение проекта
Помните объект GameManager ранее? Вы прикрепите к этому объекту свой только что созданный скрипт.Выбрав GameManager в иерархии , щелкните и перетащите PlayScript из окна ресурсов в Inspector , как показано на рисунке 19.
Рисунок 19: Присоединение PlayScript к GameManager
Затем вам нужно заполнить поля Main Camera и Cube Render . В иерархии выберите объект Main Camera и перетащите его в поле Main Camera .Аналогичным образом перетащите Cube в Cube Render. На рисунке 20 показано, как это выглядит.
Рисунок 20. Установка переменных для основной камеры, текста кнопки, и Cube Render .
Затем найдите объект Button в иерархии Hierarchy . После выбора найдите список событий On Click в Inspector , как показано на рисунке 21.
Рисунок 21: Список событий On Click , в настоящее время пустой.
Щелкните значок + , чтобы добавить новое событие On Click к кнопке, показанной на рисунке 22.
Рисунок 22. Добавление события On Click .
После этого вам нужно будет щелкнуть и перетащить GameManager из иерархии в поле Object . На рисунке 23 показано, что делать.
Рисунок 23. Установка GameManager в качестве объекта для извлечения кода.
Когда это будет завершено, щелкните раскрывающееся меню, в котором сейчас указано Нет функции .Перейдите к PlayScript-> LockButton , чтобы настроить функцию LockButton на событие On Click этой кнопки, как показано на рисунке 24.
Рисунок 24. Установка LockButton в качестве функции, вызываемой при нажатии кнопки.
Осталось два шага, прежде чем вы сможете правильно протестировать свой проект. Установлены необходимые для проекта модули и SDK. К сожалению, SDK не принесет много пользы, если Unity не знает, где он находится.Перейдите в Edit-> Preferences , чтобы позаботиться об этом, как показано на рисунке 25.
Рисунок 25. Доступ к настройкам Unity.
Откроется диалоговое окно Unity Preferences , в котором можно настроить такие параметры, как цвета, используемые Unity. Для этого проекта вам нужно перейти к External Tools , показанному на Рисунке 26.
Рисунок 26: Переход к Внешние инструменты .
Прокрутите вниз, пока не найдете настройки для Android.Здесь вы указываете путь к файлу для вашего SDK, а также JDK (Java Development Kit) и Android NDK. Вы также можете скачать нужные вам вещи с помощью удобной кнопки Скачать . Для мобильных проектов вам, по крайней мере, нужно заполнить SDK и JDK. После установки всего, что вам нужно, используйте кнопку Browse и найдите путь к вашему SDK и JDK, как показано на рисунке 27.
Рисунок 27: Указание пути для Android SDK и JDK.
Есть еще один шаг, чтобы запустить этот проект на вашем телефоне, но он выполняется за пределами Unity.Вам нужно будет включить режим разработчика на своем мобильном устройстве, чтобы собрать проект на свой телефон. На Android вам просто нужно перейти в Настройки -> О телефоне -> Информация о программном обеспечении, а затем найти номер сборки . Коснитесь Build Number несколько раз, чтобы включить режим разработчика на вашем телефоне. Для iOS процесс немного другой. Вам потребуется запустить Xcode на рабочем столе, а затем подключить USB-кабель от телефона к компьютеру.Оттуда перемещайтесь по своим настройкам, пока не найдете Developer . Это означает, что на вашем телефоне включен режим разработчика.
После того, как все вышеперечисленные шаги были выполнены, ваш проект теперь готов, но как вы протестируете это на своем телефоне? В конце концов, сложно проверить работу гироскопа на настольном компьютере. Вы можете обойти это, перейдя в Файл-> Настройки сборки . Оказавшись там, вам нужно будет нажать кнопку Build and Run в нижней части окна, показанного на рисунке 28.
Рисунок 28: Создание проекта и запуск его на мобильном устройстве.
Это создаст вашу игру, а затем загрузит ее на ваш телефон. После этого программа должна начать работать на вашем телефоне. Конечно, для работы этого метода вам понадобится USB-кабель, соединяющий ваш компьютер с мобильным устройством. Перед началом сборки появится другое окно с сообщением, что вам нужно сохранить файл apk где-нибудь на вашем компьютере. Вы можете сохранить этот файл где угодно, так как он не повлияет на сборку apk на ваш телефон.Кроме того, возможно, что появится диалоговое окно с сообщением о JDK, в котором говорится, что обнаружена последняя версия. Идите вперед и нажмите Да в этом диалоговом окне.
После завершения сборки вы должны увидеть, что ваш проект начинает воспроизводиться на вашем телефоне. Если по какой-то причине оно не запускается автоматически, попробуйте поискать в своих приложениях и посмотреть, нет ли где-нибудь MobileIntro . Как только игра начнется, поверните устройство и обратите внимание, как внутриигровая камера движется вместе с движениями вашего телефона.Если вам нравится определенный ракурс, вы можете нажать кнопку пользовательского интерфейса в правом верхнем углу, чтобы зафиксировать камеру на месте. Наконец, попробуйте коснуться куба и посмотреть, как он меняет цвет на случайный. Помните, я сказал, что вы можете искать ввод с помощью мыши при поиске касаний на экране телефона? Вы можете увидеть это в действии, коснувшись куба и нажав кнопку пользовательского интерфейса. Приложение будет выглядеть примерно так, как показано на рисунке 29.
Рисунок 29: Мобильный проект в действии.
Заключение
Как видите, создать мобильный проект проще, чем вы думаете.Если вы когда-нибудь захотите создать еще одну мобильную игру в будущем, некоторые настройки, которые вы отредактировали здесь, в Unity, будут перенесены в другие проекты, а именно путь к SDK. В некоторых случаях нет большой разницы между кодом для мобильного проекта и кодом для ПК-проекта, поэтому управление разными версиями одного и того же приложения также становится проще. Однако было бы немного неприятно, если бы все, что вы делали, это код, работающий как на ПК, так и на мобильном телефоне, поэтому вы использовали гироскоп своего мобильного устройства, чтобы перемещать камеру в такт своим движениям.Отсюда вы можете построить этот примерный проект, чтобы создать свой собственный мобильный опыт, каким бы он ни был.
Unity стрелялки | Создание FPS в Unity
Вы хотите создать на Unity шутер или, в частности, шутер от первого лица (FPS)? Вы пришли в нужное место. Такие игры, как Quake, Counter-Strike, Call of Duty и другие, были одними из первых шутеров от первого лица, которые произвели революцию в индустрии компьютерных игр. А теперь у нас есть новые записи, такие как Doom (2016) и Battlefield Hardline, которые выводят игровой процесс FPS на совершенно новый уровень.В этом блоге мы научимся делать стрелялку, которая в нашем случае является FPS, в Unity.
Версия Unity, которую мы собираемся использовать для этой игры, — это Unity Personal Edition версии 5.5.1 f1. Причина, по которой я выбрал разработку мобильных игр Unity для нашей игры FPS, заключается в том, что она избавляет от необходимости использовать сложные математические операции для «движения» и «осмотра с помощью мыши».
Необходимые условия для создания игры-стрелялки в Unity
Чтобы создать свою первую игру FPS в Unity, вам необходимо иметь базовые знания C # и математику.Кроме того, вам необходимо иметь некоторые знания о разработке приложений Unity и ознакомиться с интерфейсом Unity и основными концепциями создания сценариев.
Первые элементы шутера, которые следует учитывать в этой игре, следующие:
- WSAD-Маневры и прыжки
- Оружие
- Пули, взрывающиеся при попадании
- Наведи и стреляй мышью
- Прилично выглядящий уровень
- Что-то стрелять в
Самым важным понятием в редакторе Unity является GameObject.Каждый объект, который вы хотите создать в своей игре, должен быть GameObject. Однако вам нужно добавить компоненты к GameObject, чтобы придать ему свойства, чтобы он мог стать персонажем, средой или специальным эффектом. Вы можете добавлять различные комбинации компонентов в GameObject в зависимости от типа создаваемого объекта.
Начнем с настройки проекта и сцены
Во-первых, мы собираемся создать новый проект, перейдя в «Файл» и щелкнув «Новый проект».Следующий шаг — дать нашему новому проекту имя и сохранить его в желаемом месте.
Теперь мы сохраним сцену по умолчанию (с желаемым именем или именем по умолчанию)
Пора создать игрока (Капсула). Для этого вам нужно перейти в Иерархию, как показано ниже. Щелкните правой кнопкой мыши по иерархии и выберите из вариантов 3D-объект. Это откроет больше возможностей, в том числе капсула.
Щелкните Capsule и установите преобразование Capsule в «Inspector», как показано ниже.
Следующий шаг — сделать основную камеру дочерней по отношению к капсуле игрока и установить ее преобразование, как показано ниже.
Теперь мы добавим новый скрипт к основной камере и назовем его MouseLook.
Ознакомьтесь с приведенным ниже сценарием.
Мы не можем представить нашу игру без площадки. Поэтому мы добавим в сцену самолет.
Следующим шагом является масштабирование плоскости до (15, 0, 0). Затем нам нужно добавить к нашей сцене несколько кубов, сферу и цилиндр, чтобы создать уровень.Мы будем размещать их над землей случайным образом. Если сейчас запустить игру, игрок осмотрится.
Переименуйте капсулу в «Капсулу игрока».
Теперь мы добавим новый скрипт в капсулу игрока и назовем его «PlayerMovement». Скрипт для капсулы игрока упомянут ниже.
Продолжение…
Продолжение…
Мы хотим, чтобы наши GameObject действовали реально под действием силы тяжести или делали что-то особенное под действием дополнительных сил.Чтобы это произошло, нам нужно добавить жесткие тела в наши GameObject. Чтобы добавить твердые тела, мы сначала нажмем «Добавить компоненты», а затем «Физика», как показано ниже.
Щелчок по Physics откроет нам «RigidBody» с несколькими вариантами, как показано ниже (в правом нижнем углу). Следующим шагом является установка ограничений твердого тела, чтобы игрок не упал при незначительных движениях. Здесь мы в основном добавляем физику в наши GameObject, чтобы игра выглядела реальной.
Наш шутер от первого лица не может быть полным без оружия. Итак, теперь мы добавим оружие в нашу игру. Создайте пустой игровой объект и назовите его «Gun».
Следующим шагом является установка его преобразования на заданные значения.
Пришло время создать вложенный куб в «Gun». Щелкните правой кнопкой мыши «Пистолет» и выберите 3D-куб. Теперь установите преобразование куба в указанные ниже значения.
Теперь прикрепите GunScript к GameObject Gun. Код, который нужно вставить в него, указан ниже.
Продолжение …
Установите переменные скрипта на заданные значения в редакторе. Для перетаскивания поля камеры выберите «MainCamera», который является дочерним по отношению к GameObject «PlayerCapsule».
Ни одно оружие в любой игре FPS в этом мире бесполезно, пока оно не стреляет. Сказав это, теперь мы создадим и добавим скрипт, чтобы гарантировать, что пушка срабатывает при каждом срабатывании.
Для начала мы сначала добавим новый куб к объекту Gun и назовем его Sight (необязательно).Мы установим значения, как показано ниже, чтобы оружие выглядело так, как оно выглядит.
Следующий шаг — добавить в Gun пустой игровой объект и назвать его SpawnPoint. Положение этого объекта будет работать как точка генерации снарядов пули при стрельбе. Переменные показаны ниже.
Теперь мы собираемся добавить еще один пустой игровой объект в Gun и назовем его BulletSpawnPoint. Положение этого объекта будет работать как точка, откуда мы будем моделировать стрельбу пулей с помощью «Raycasting».Переменные показаны ниже.
Теперь назначьте «SpawnPoint» и «BulletSpawnPoint» переменным GunScript «ShellSpawnPos» и «BulletSpawnPos». Чтобы помочь игрокам целиться в цель, нам нужно добавить перекрестие в нашу пушку. Вы можете скачать любое перекрестие по вашему выбору в формате PNG из Интернета.
Следующий шаг — создать 2D-спрайт в объекте Gun, назвать его «Crosshair» и назначить его загруженному «спрайту».
Примечание: При импорте изображения в PNG обязательно переключите режим изображения на спрайт, как показано ниже.
Двигаясь вперед, нам нужно установить значения перекрестия, как показано ниже.
Теперь мы создадим «Оболочку», для которой создадим сферу и назовем ее «Оболочка».
Мы также настроим Shell, как показано ниже.
Теперь добавьте Rigidbody и ShellScript в оболочку и установите значения обоих компонентов, как показано ниже.
Пришло время создать папку в представлении «Проект» и назвать ее «Ресурсы».Теперь перетащите объект Shell GameObject из Hierarchy в папку Resources. Теперь мы удалим оболочку из иерархии. Окончательный редактор будет выглядеть так, как показано ниже.
Вот и все! Мы рассмотрели все этапы подготовки нашей игры FPS. Как ты это нашел? Разве не было легко создать свою первую игру FPS с помощью Unity? Я уверен, что это было. Однако, если у вас все еще есть какие-либо вопросы или вы не можете ничего понять в учебнике, не стесняйтесь, поделитесь своими проблемами в поле для комментариев ниже.
Какой игровой движок самый лучший: подходит ли вам Unity?
Поделиться статьей
Для разработчиков, только начинающих работать в индустрии, задача выбора лучшего игрового движка может быть сложной. Здесь мы постараемся решить многие проблемы, связанные с одним из самых популярных игровых движков, Unity, чтобы вы могли убедиться, что это правильный игровой движок для вашего проекта.
Вы можете прочитать другие наши подробные руководства по всем основным игровым движкам на этой странице.
Глядя через зону Rezzed на EGX, соучредитель Tea for Two Гарри Уильямс шутит, что 99% инди-разработчиков, представленных на выставке, вероятно, используют Unity.
Хотя это утверждение трудно подкрепить холодными неопровержимыми фактами, это, без сомнения, наиболее распространенное мнение, когда дело доходит до Unity: движок известен как среда разработки для инди и мобильных игр . Некоторые данные частично подтверждают этот образ: по данным компании, по состоянию на сентябрь 2019 года 52% из 1000 лучших мобильных игр были на платформе Unity, а также 60% всего контента AR / VR.Игроки Unity находятся в , 195 странах, — буквально в каждой стране на планете.
Движок, который поддерживает более 25 платформ от очевидной iOS до PS4, до менее заметной Windows Mixed Reality или Android TV, был установлен более 33 миллиардов раз всего за последние 12 месяцев. Платформа разработки в реальном времени позволяет создавать контент в 2D, 3D, VR и AR, и за последние 12 месяцев ее количество достигло 3 миллиарда устройств .
И есть причина популярности Unity, особенно для небольших проектов: это бесплатно . Персональная лицензия движка позволяет людям создавать коммерческие игры бесплатно при условии, что они не заработали или не получили более $ 100 000 дохода или финансирования, полученного от использования Unity за последние 12 месяцев.
Между тем, цены на бизнес-планы изменились в начале 2020 года. Бизнес-лицензии теперь начинаются с 40 долларов в месяц для версии Plus, на которую вы имеете право, если вы не заработали или получили более 200 000 долларов дохода. или финансирование, полученное от использования Unity за последние 12 месяцев.
Затем идет версия Pro , которая не имеет никаких ограничений по доходам или финансированию, но возвращает разработчикам 150 долларов в месяц . Это дает доступ к дополнительной поддержке и обслуживанию клиентов, а также к возможностям доступа к исходному коду.
Все описанные выше планы являются годовыми, и вы можете узнать о них больше на веб-сайте Unity.
В чем преимущества Unity?
- Unity имеет широкий охват, что упрощает набор персонала
Охват Unity — одна из его основных сильных сторон, как сразу отметил руководитель разработки No More Robots Дэн Фостер, который контролировал и поддерживал развитие издательского лейбла игр более года (все они созданы в Unity bar Hypnospace Outlaw, созданном с помощью Construct 2), после шести лет работы программистом в Team17.
«Многие люди уже знают Unity, что очень удобно, если у вас когда-нибудь появятся подрядчики», — начинает он объяснять. «Вы не хотите изучать новый движок. То же самое можно сказать и о Unreal, но, особенно в инди-разработчиках, гораздо больше людей склонны использовать Unity. Поскольку у него есть большая основа в мобильной разработке, возможно, это помогло он попадает в инди-сцену.
RageSquid and No More Robots ‘Descenders
«Сейчас так много людей используют его, планка для найма кого-то, кто знает, как его использовать, намного ниже, что действительно ценно, если вы хочу, чтобы все делалось быстро и дешево.»
Саймон Гергес, директор программного обеспечения в Playtonic, где обе записи Yooka-Laylee были созданы на Unity, добавляет, что движок используется на многих уровнях образования, что также делает процесс найма очень простым.
- Unity — хороший движок для новичков
Поскольку Unity является бесплатным, он представляет собой очень ценный инструмент для студентов и начинающих разработчиков.
Чай для двоих Уильямс начал использовать Unity в 2008 году. По профессии он работал программистом. Ubisoft и EA до его недавнего перехода к инди-разработке с помощью симулятора горнолыжного курорта Snowtopia.Он согласен с тем, что Unity — хороший движок для новичков, говоря, что он справляется со всей дополнительной сложностью выполнения чего-либо в 3D.
Snowtopia «Чай для двоих»
«Если вы хотите начать изучать программирование и просто хотите что-то сделать, Unity — хорошее место для начала», — говорит он. «Когда вам нужно заниматься тяжелым дизайном уровней, это хорошо для вас, потому что у вас есть все инструменты».
Простота использования Unity для новичков пошла еще дальше, когда в июле 2020 года компания объявила, что инструмент визуального написания сценариев Bolt теперь будет включен во все планы Unity в будущем без каких-либо дополнительных затрат.Bolt позволяет разработчикам реализовывать логику в своих проектах, не зная, как кодировать.
«Bolt имеет визуальные графы на основе узлов, которые программисты и непрограммисты могут использовать для разработки окончательной логики или быстрого создания прототипов», — говорится в заявлении Unity Technologies. «Bolt также имеет API, который программисты могут использовать для более сложных задач или для создания настраиваемых узлов, которые могут использоваться другими членами команды».
Unity изначально приобрела плагин Bolt у издателя Ludiq в ноябре 2019 года.В настоящее время компания работает над следующей версией инструмента, Bolt 2, которая должна «улучшить возможности, масштабируемость, производительность и простоту использования», — заявили в Unity Technologies. Bolt 2 также будет бесплатно включен во все планы Unity после его выпуска.
Вы можете узнать больше о Bolt на его странице Asset Store.
Способность Unity выполнять задачи очень быстро — еще одна ценная сила — она позволяет выполнять очень быструю итерацию и может быть чрезвычайно полезна, когда вы проводите мозговой штурм для новой концепции игры.
Стэн Луазо, художник и соучредитель Pajama Llama, разработчик Flotsam, получивший приз за лучшую игру Unity на Gamescom 2019, говорит, что именно поэтому его команда выбрала эту игру.
«Если вы хотите научиться программированию и просто хотите что-то сделать, Unity — хорошее место для начала»
Стэн Луазо, Pajama Llama
«Мы выбрали Unity, потому что это быстрый движок, который вы можете создать. игра создается довольно быстро, даже без кода или с очень простым кодированием », — говорит он.«Сначала мы хотели создать прототип нескольких игр, а затем начали делать Flotsam».
- Unity упрощает переносимость
Уильямс добавляет, что, помимо скорости разработки, Unity также быстро переносится, поскольку ваша игра по существу готова к запуску на всех различных платформах одним щелчком мыши. Здесь стоит повторить, что Unity доступен для 25 различных платформ, что делает его очень ценной функцией.
Гергес подчеркивает простоту этого процесса переносимости, поскольку Yooka-Laylee доступен на PS4, Xbox One, Switch, ПК, macOS и Linux.
«Для такой компании, как мы, специализирующейся на мультиплатформенных играх, простота развертывания и повторения сборок из ведущего формата значительно упрощает нашу жизнь», — говорит он.
- Unity имеет большой и разнообразный магазин ресурсов.
Директор студии Playtonic Гэвин Прайс также хвалит «хорошо укомплектованный Asset Store» Unity за дополнительные инструменты, очень хорошо документированные и поддерживаемые большим сообществом разработчиков, которые помогают разобраться во всем. »
Около 1.5 миллионов разработчиков ежемесячно посещают Asset Store, чтобы просмотреть 56 000 доступных пакетов, что представляет собой более миллиона индивидуальных ресурсов, доступных для использования создателями.
Однако Луазо предупреждает, что некоторые ресурсы могут стать недоступными со временем, поэтому вам следует избегать использования слишком большого количества ресурсов, которые сильно влияют на игру, поскольку это может привести к серьезным задержкам в вашем пути разработки.
- Unity позволяет создавать собственные инструменты.
Unity Asset Store не только упрощает разработчикам покупку инструментов, но и позволяет легко создавать инструменты.
«Это то, что действительно, очень полезно при создании игр, потому что вам нужно постоянно сокращать сложность сборки», — говорит Фостер.
«Если вы хотите быстро создать небольшую игру, Unity — действительно хороший движок для этого. Он будет рендерить вещи по-своему, и, возможно, вы будете использовать определенные плагины, но вы не перейдете на слишком низкий уровень. Он предоставляет вам множество инструментов, но вы не можете изменить его фундаментальные части. Он дает вам достаточно гибкости, чтобы делать множество вещей, но вы не можете углубиться в детали.»
» Unity приложила немало усилий, чтобы сделать движок модульным и расширяемым «
Тревор Блом, Vertigo Games
- Unity подходит для разработчиков виртуальной реальности
Все качества, отмеченные респондентами Unity — идеальный движок для виртуальной реальности, отмечает Тревор Блом, ведущий технический специалист Vertigo Games, разработчика Arizona Sunshine.Стоит отметить, что Unreal также является движком, получившим высокую оценку за свои возможности VR.
«Первоначальная причина, по которой мы выбрали Unity, заключается в том, что у нас был большой опыт работы с движком из предыдущей работы», — говорит он. «Вскоре стало очевидно, что VR важна для Unity, поскольку они были и остаются на переднем крае технологий. Новые API, функции и парадигмы внедряются быстро, поскольку они работают вместе с мощными системами VR.
» Кроме того, Unity очень популярен среди инди-разработчиков и небольших команд, а это именно то, чем и является большинство команд разработчиков VR. Недавно они приложили много усилий, чтобы сделать двигатель модульным и расширяемым, что идеально подходит нашей растущей команде.»
Vertigo Games ‘Arizona Sunshine
Каковы недостатки Unity?
- Unity не подходит для больших проектов
Невозможность углубляться в детали является сильной и слабой стороной Unity. С одной стороны, это обеспечивает быстрый процесс, хорошо адаптированный для новичков, с другой стороны, это означает, что Unity, вероятно, не то, что вам нужно, если вы надеетесь сделать что-то очень индивидуальное или в больших масштабах. Возможно, вы захотите пересмотреть свой выбор, если вы стремитесь сделать игру AAA, или большой ландшафт с множеством вещей на экране одновременно, или сетевые игры.
«У Unity много аспектов AAA, но я не думаю, что он уже достаточно хорош с точки зрения вещей открытого мира», — говорит Фостер. «[Unity Technologies] перестраивает эту сетевую модель в настоящий момент, так что в будущем это может оказаться неверным, но сейчас вы натыкаетесь на эту стену, вы не можете углубиться достаточно глубоко, чтобы провести серьезную оптимизацию, или вам нужно сделать много необычных уловок, поскольку Unity не дает вам достаточно места для изменения того, что вам нужно. Вот где вы поражаете негибкость Unity ».
- Unity продвигает плохие методы кода
Для Williams из Tea for Two проблема заключается в том, что Unity не обязательно должна была стать игровым движком; изначально он предназначался для веб-разработки и JavaScript.
«Unity продвигает плохой код, потому что он предназначен для небольших проектов»
Гарри Уильямс, Чай вдвоем
«Некоторые вещи не очень хорошо адаптированы к C # и разработке игр», — говорит он. «Я». переключился с MonoGame на Unity, но для меня это было непростое решение, потому что я не очень люблю Unity. Он способствует распространению плохого кода, потому что предназначен для небольших проектов.
поведения, и вы добавили объекты, и у вас было что-то динамическое.Но если вы сделаете только это, вы упустите возможность, например, отделения данных от кода, и все начнет переплетаться. Так что не все хорошо в долгосрочной перспективе. И все, что унаследовано от ранней стадии Unity ».
Интересно, что это проблема, которую британский разработчик Клифф Харрис затронул несколько лет назад во время выступления на GDC под названием« К черту Unity и лошадь, на которой он ехал. «
- Unity не так удобен для художников, как Unreal из коробки.
В Бельгии, где базируется Pajama Llama, именно программисты выбрали Unity для создания Flotsam.И как художник Луазо считает, что Unreal было бы лучше для начала.
«Я бы сказал, что вы можете делать то же самое в Unity, но из коробки [Unreal] намного лучше», — говорит он. «Такие вещи, как освещение и шейдеры, у вас намного больше возможностей. Я думаю, что это немного более удобно для художников. С Unity вы можете делать то же самое, но вам просто нужно приложить немного больше усилий, чтобы добраться до точки, в которой вы будет с Unreal «.
Pajama Llama’s Flotsam
- Отсутствуют функции пользовательского интерфейса Unity
Луазо также отвечает за создание всего пользовательского интерфейса на Flotsam и считает эту область улучшенной для Unity.
«Это нормально, как художник я могу использовать это, но, думаю, этого еще немного не хватает», — говорит он. «Иногда бывает трудно найти определенные функции пользовательского интерфейса».
Совет для новых пользователей Unity
Для начинающих разработчиков Unity, студентов или новичков большая часть собранных нами советов вращается вокруг одной простой рекомендации, выходящей за рамки этого конкретного движка: просто создайте что-нибудь, даже если это очень простая игра. Есть реальная ценность в завершении даже небольшого проекта от начала до конца.
«Если вы только начинаете разработку игр, вы должны просто делать вещи и заставлять их работать, в любом случае, вы можете», — говорит Уильямс. «Тогда, если вы сделаете это, позже вы должны расширить свой кругозор и попытаться изучить вещи, выходящие за рамки разработки игр, выйти за рамки и посмотреть, что вы можете сделать больше, чем обычный способ Unity».
Однако Playtonic’s Price считает, что вам не стоит заходить туда без структуры.
«Поставьте себе цели и сравните тесты и попробуйте», — советует он. «Не пытайтесь принимать решение только на основании мыслей и предположений.«
- Научитесь создавать свои собственные инструменты
« Узнайте, как создавать свои собственные инструменты с помощью Unity »
Дэн Фостер, No More Robots
После завершения нескольких небольших проектов вам следует выходите за рамки основ и исследуйте другие возможности.
«Узнайте, как создавать собственные инструменты с помощью Unity, — говорит Фостер. — Все это на C #. Узнайте, что делает ваш код, когда дело доходит до создания мусора. Сборщик мусора — это демон, который замедлит вашу игру, когда вы собираетесь ставить вещи на мобильный телефон и на Switch, Xbox, PS4.А если вы напишете код, который не генерирует мусор, ваш код будет работать быстро, и вам больше не придется о нем беспокоиться ».
- Обратитесь к сообществу
Хорошие новости, если вы Учитывая, что Unity является вашим игровым движком, его сообщество достаточно велико, и, вероятно, большинство ваших проблем — это всего лишь поиск в Google от решения. Существуют тысячи руководств для любого уровня разработки, от новичка до интенсивной оптимизации, поэтому вам следует полностью полагаться на это сообщество.
Гергес указывает, что игры — это «забавные твари», и что он «еще не работал над тем, что не вызвало бы должных моментов в голове». И мы говорим о ком-то, кто работал в играх 15 лет. Он продолжает: «Мы много раз получали пользу от сообщества и получали прямую поддержку от Unity, чтобы помочь преодолеть препятствия и сложные ситуации».
В заключение Прайс упомянул проверенный опыт Unity в области фантастических игр на многих платформах и в уже существующих жанрах.
«Как разработчик, независимо от того, какой движок вы используете, вы должны творчески подходить к тому, как вы используете его для достижения видения», — говорит он. «Unity может создать любую игру, которую захочет создать ваше воображение».
Создание игры с помощью Unity и Blender
Процесс разработки игрового процесса можно разделить на пять основных этапов.
У разных людей разные подходы к разработке игры. Некоторым дизайнерам нравится начинать с дизайна персонажей или сюжетной линии, и только после этого они решают, какой тип игрового процесса для этого подходит.С другой стороны, некоторые дизайнеры предпочитают начинать с игрового процесса. Не существует абсолютного правила, как начать разрабатывать игру; это полностью зависит от того, что вас вдохновляет в первую очередь: вдруг в вашей голове всплыла хорошая история? Вас вдохновила игра, в которую вы любили играть в детстве? Или вас вдохновили глупые разговоры с лучшими друзьями? Запишите свои первоначальные идеи; кто знает, однажды она может стать следующей популярной игрой.
Мне нравится начинать с выбора жанра игры и разработки геймплея, прежде всего.Я считаю, что очень важно спроектировать игровой процесс на ранней стадии, чтобы его можно было многократно тестировать и проверять, увлекателен ли игровой процесс или нет. В противном случае все время, которое мы потратили на написание хорошей сюжетной линии, могло бы быть потрачено впустую, если бы мы только выяснили, что игровой процесс просто не работает так, как мы предполагали. Вы можете попробовать поэкспериментировать с разными подходами и посмотреть, какой из них вам больше подходит.
Одна ошибка, сделанная большинством новичков в разработке игр, — это пренебрежение важностью документа по дизайну игры ( GDD ).GDD — это обычно совместные усилия внутри команды разработчиков, направленные на систематизацию идей и помощь в передаче видения дизайнера остальной части команды. Это также помогает убедиться, что все работают вместе на одной странице, избегая предположений и конфликтующих рабочих процессов.
Помимо этого, GDD также очень полезен для индивидуальных разработчиков. Это позволяет вам увидеть более широкую картину вашей игры и легко обнаружить любые серьезные недостатки в игровом дизайне. Помимо этого, вы также можете просмотреть список всех аспектов игры и решить, что нужно сделать, в зависимости от их приоритета.
В большинстве случаев для создания GDD достаточно обычного офисного пакета, такого как Microsoft Office, OpenOffice или LibreOffice. Однако, если вы работаете в команде, лучше всего использовать редактор, который позволяет сотрудничать между членами команды в режиме реального времени. Я лично считаю, что Документы Google очень полезны для этой цели, особенно во время мозговых штурмов, когда каждый член команды может поделиться своими идеями и позволить другим увидеть их во время обсуждения. Постарайтесь выбрать наиболее подходящий инструмент для вас и вашей команды.
Выбор жанра игры на ранней стадии также очень важен. Это дает вам чувство направления и закладывает основу для дальнейшего совершенствования и внедрения инноваций. Существует много разных жанров игр, таких как шутер от первого лица, ролевые игры, стратегии в реальном времени, приключения, боевики и головоломки.
В качестве альтернативы, вы также можете изобрести свой собственный жанр, если вы относитесь к тому типу людей, которые любят пробовать новые идеи и всегда мыслить нестандартно. Хотя это может показаться чрезмерно амбициозным, но на самом деле это выполнимо, поскольку игровые жанры изобретаются все время .Однако для следования по этому пути требуется тонна прототипов, чтобы доказать, что ваша идея работоспособна и увлекательна, поскольку вы пытаетесь создать что-то, чего никто раньше даже не видел.
Если вы не знаете, какой жанр выбрать в данный момент, вы можете посмотреть статистику самых продаваемых жанров видеоигр, и, надеюсь, она вдохновит вас:
Важно определиться с жанром раньше, чем вы начнете работать над игрой. По сути, переключение игрового жанра во время разработки означает все заново начинать с нуля.
Геймплей — это то, что связывает действия игроков с целью игры и ее основными проблемами. Геймплей будет определять, что игрок может или не может делать в игре, а также условия, которые позволяют игроку продвигаться по игре. Дизайн игрового процесса включает в себя широкий спектр аспектов проектирования, таких как дизайн уровней, балансировка игрового процесса, прогнозирование поведения игрока и планирование выбора. Все это можно включить в так называемую игровую механику .
Игровая механика — это конструкция правил, составляющих игровой процесс игры.Он определяет, какие действия может предпринять игрок, как действия взаимодействуют с игровыми состояниями и как другие игровые объекты реагируют на действия игрока. Геймплей определяет, чем является игра для игрока, тогда как игровая механика — это части, которые определяют сам игровой процесс. Другими словами, игровой процесс — это не что иное, как набор игровой механики. Часто геймеры популяризируют известные игры благодаря их игровой механике. Например, Gears of War была известна своей механикой обложек, когда она впервые была выпущена в 2006 году.Prince of Persia поразил людей, впервые показав две свои знаменитые механики — механику паркура, а также механику манипулирования временем. Angry Birds не загрузили бы два миллиарда раз по всему миру, если бы в ней не было механики рогатки!
Мы можем разделить набор игровой механики на две основные категории: базовая механика и вспомогательная механика. Базовая механика — самая важная механика в вашей игре. Вы не можете просто изменить основную механику вашей игры, потому что это нарушит природу и суть вашей игры.Например, уберите механику стрельбы из Counter Strike, и игра просто станет чем-то другим, но чем-то отличным от Counter Strike. Нет никакого смысла играть в Counter Strike без механики стрельбы. Однако суб-механику можно убрать, не прерывая игру. Опять же, мы используем Counter Strike в качестве примера, но на этот раз мы уберем только механику прыжков. Теперь игроки больше не могут прыгать, но это не делает Counter Strike другой игрой; это все еще шутер от первого лица, вы все еще можете делать хедшоты.На раннем этапе важно определить, каковы основные механики вашей игры, но не так важно для суб-механики. Вы можете добавить вспомогательную механику позже, на этапе производства, потому что, как упоминалось ранее, это не сломает игру. Сильная и прочная основная механика обеспечит успех вашей игры, поэтому сосредоточьтесь на ней прежде всего. После этого вы можете попробовать поэкспериментировать с различными суб-механиками, чтобы улучшить игровой процесс.
Короче говоря, правильное планирование гарантирует, что игровой процесс будет сбалансированным, непредсказуемым и понятным для игрока.Даже опытный гейм-дизайнер вряд ли сможет создать идеальный игровой процесс за один выстрел. Чтобы сделать игровой процесс правильным и увлекательным, требуется множество тестов и итераций. Формула проста: тест, тест и еще тесты!
Уровень — это место, где игрок взаимодействует с элементами игрового процесса. Его также можно назвать картой или сценой. Как дизайнер уровней, вы отвечаете за разработку макета уровней в соответствии с целями вашего игрового процесса: есть ли на этом уровне миссии? Этот уровень предназначен для многопользовательской игры? Примерно как долго вы ожидаете, что пользователь будет играть на этом уровне? Вам нужно задать себе самые разные вопросы, прежде чем вы начнете разрабатывать свой уровень.
Одним из важных аспектов дизайна уровней является управление потоком. Уровень игры с хорошим управлением потоком может направить игрока к цели уровня и предотвратить холостой ход или моменты непреднамеренной путаницы в игре. Вы должны четко понимать намерение и цель конкретного уровня, а затем использовать элементы внутри уровня, такие как освещение, реквизит и предметы. Вы можете подсознательно вести игрока к цели. Вы узнаете об этом больше позже, когда мы будем проектировать среду.
Давайте посмотрим на примерный уровень, который я разработал для этой книги. Игроки должны искать ключ, чтобы открыть ворота и сразиться с финальным боссом. Исследуя окружающую среду, игрок время от времени будет сталкиваться с монстрами и участвовать в интенсивных битвах. Есть также некоторые предметы, расположенные случайным образом по пути, чтобы игрок мог подбирать, восстанавливать здоровье и помогать продвигаться в игре. Вот изображение, показывающее простой уровень с простым геймплеем, чтобы продемонстрировать, как выглядит макет карты:
Быстрое прототипирование — хороший способ быстро проверить свою игровую идею и посмотреть, работает ли она так, как вы хотите.Иногда идея игры может звучать хорошо только на бумаге, но она просто не работает так, как вы можете себе представить. Меньше всего вам нужно осознавать, что вы работали над плохой идеей в середине фазы разработки. Быстрое прототипирование не только избавляет вас от этой ситуации, но также позволяет мыслить нестандартно и свободно экспериментировать со всевозможными случайными идеями. Если идея работает, то это здорово; если это не сработает, просто выбросьте его и попробуйте другие идеи.
Когда вы быстро прототипируете свою игру, вам следует перестать беспокоиться о графике и сосредоточиться только на игровой механике.Персонаж может быть просто кубом, сферой или чем-нибудь простым. Уровень может быть просто самолетом или с большим количеством кубиков на нем, выступающих в качестве препятствий.