Введение
Слово предупреждения перед началом — данный текст не является самым исчерпывающим и всеохватывающим руководством по написанию скриптов в Unity. Данное руководство предназначено для человека, который хочет использовать Unity и который не имеет никаких знаний о каком-либо виде программирования. Используйте информацию отсюда, чтобы получить начальный опыт и отбросить некоторые опасения при добавлении скриптов к своим игровым объектам.
Написание скриптов, или программирование вообще, изучается на самых первых этапах, особенно полными новичками. Скорее всего, вам необходимо преодолеть некоторые неоправданные страхи относительно того, насколько удивительно трудным кажется написание скриптов. Основы использования скриптов Unity на самом деле не так и сложны. Мы делаем некоторые каждодневные вещи, которые похожи на последовательные процедуры в скриптах.
Существует множество книг, руководств и уроков по программированию, которые могут показать вам, как на самом деле разобраться в деталях. Также имеется множество видео-уроков для изучения Unity, и они почти все обучают основам написания скриптов. После прохождения всех этапов в данном руководстве, вы почувствуете себя более комфортнее, изучая подобные уроки. По крайней мере, у вас появится основное понимание того, что говорят другие авторы.
Я сам новичок в Unity. Я также знаю о том, что значит, когда нравится изучать и другие языки программирования. Я должен был пройти через беспорядок, как и вы. Я надеюсь, что данное руководство прояснит основы написания скриптов, которые я изучил, и я надеюсь, что обучение через «призму новичка» просветит вас тоже.
Уроки с первого по седьмой для полных новичков, для тех, кто не имеет абсолютно никакого представления о программировании вообще. Я на самом деле рассказываю о низком уровне и основах. Я просто стараюсь объяснить основные понятия на примере каждодневных жизненных ситуаций. Я не хочу, чтобы вы всегда имели расплывчатое пятно в своем сознании, которое бы заставило вас сдаться.
Уроки восьмой и выше фактически начинают рассматривать применение концепции написания скриптов в Unity.
Кажется, что большая часть начинающих может довольно легко узнать о том, как пользоваться Unity, это в первую очередь касается работы скриптов, которых они так боятся. Данное руководство для новичков предполагает, что вы на собственном опыте изучили из других источников, как в общих формах обращаться с редактором Unity, даже просто работая с файлами ресурсов. Это руководство только об изучении основ по работе со скриптами.
Хорошие ресурсы для разработки игр в Unity
Сообщество разработчиков игр — одно из лучших среди всех, и в индустрии есть множество высококвалифицированных профессионалов, которые размещают контент бесплатно или почти бесплатно. В этой области требуются 3D-моделисты, концептуальные художники, геймдизайнеры, программисты и так далее. Я связал несколько отличных общих ресурсов, с которыми я столкнулся, для каждого из этих полей ниже:
Watch this video on YouTube
Watch this video on YouTube
Watch this video on YouTube
Концептуальное искусство
- Школа дизайна Фэн Чжу (более 90 часов уроков по концепт-арту)
- Тайлер Эдлин Арт (Великое арт-сообщество BST с отзывами профессионалов о ежемесячных испытаниях)
- Art Cafe (Интервью и мастер-классы с известными концепт-художниками)
- Трент Канюга (иллюстратор и 2D-художник, который также создает свою собственную игру)
3D моделирование
- CG Cookie (лучшие основы моделирования сетки в Blender, у них есть множество другого отличного контента для блендера)
- Тор Фрик (модельеры и скульпторы твердых поверхностей в Blender)
- Глеб Александров (Краткие мощные уроки по рендерингу в Blender)
Игровой дизайн
- DoubleFine Amnesia Fortnight (разработчики игр, которые проводят двухнедельный хакатон и записывают весь процесс проектирования)
- Инструментарий GameMakers (изучает принципы игрового дизайна)
Программирование
- Handmade Hero (Написание игры и движка с нуля на C)
- Джонатан Блоу (инди-разработчик, транслирующий свою разработку игры)
- Brackeys ( хорошие учебные пособия по Unity)
Шаг 2. Получите инструменты
Чтобы создать игру в Unity, вам понадобится Unity. Вы можете скачать персональную версию здесь . Имейте в виду, что личная версия необходима только в том случае, если вы не получили более 100 тысяч долларов для финансирования или дохода от своей игры.
Начните с загрузки Unity Hub. Затем откройте концентратор, выберите «Установить» и нажмите «Добавить». В этом руководстве будет использоваться версия Unity 2019.2.14f1. Вы можете установить любые пакеты, которые хотите или для которых есть место. В этом руководстве игра будет запущена в Windows, поэтому убедитесь, что установлен флажок «Поддержка сборки Windows».
Мы используем Unity версии 2019.2.14f1
Вы также можете создавать графику для своей игры. Поскольку Unity использует пиксельную графику , я настоятельно рекомендую использовать GraphicsGale . GraphicsGale бесплатна, проста в использовании и обладает множеством функций. Однако вы можете свободно использовать любой удобный вам редактор, будь то Photoshop, Blender или Windows Paint.
Smartyschool
Уникальный онлайн курс по созданию компьютерных игр с помощью Unity. В этот курс специалисты вложили всю свою любовь к информационным технологиям, программированию, дизайну и компьютерным играм.
Курс направлен на изучение создания и программирования компьютерных игр на языке C# в Unity. Unity сегодня признанный лидер индустрии разработки компьютерных игр, а с помощью этого игрового «движка» были созданы настоящие шедевры.
Unity отдали свой голос многие известные компании, которые сегодня создают свои игры с помощью этой IDE. Популярность Unity заключается в относительной простоте освоения, кроссплатформенности, в большом сообществе разработчиков и энтузиастов, поддержке и регулярных обновлениях.
Курс создан в соответствии с рекомендациями самой компании Unity Technologies и охватывает все основные аспекты разработки компьютерной игры.
Чему вы научитесь:
- Разработаете концепцию своей игры, которую будете реализовывать на курсе;
- Изучите особенности представления объектов в компьютерном трехмерном пространстве;
- Научитесь использовать интерфейс Unity по максимуму;
- Изучите основы языка программирования C#;
- Сможете подготавливать и импортировать различные элементы для своей игры: трехмерные объекты, спрайты, текстуры, аудио файлы;
- Научитесь освещать свои игры с помощью продвинутой системы глобального освещения Unity;
- Разберетесь в тонкостях построения игровых сцен с помощью Unity;
- Изучите особенности использования физики твердых тел и определения столкновений при создании игры;
- Научитесь создавать элементы графического интерфейса вашей игры;
- Научитесь анимировать игровые объекты с помощью невероятных инструментов Unity;
- Освоите инструменты для коллективной разработки и контроля версий;
- Научитесь создавать код для различных платформ;
- Научитесь создавать 2D игры;
- И сможете создавать много элегантного кода…
Шаг 5. Сделайте персонажа
Теперь, когда у вас есть карта, следующий шаг — создать кого-нибудь, кто будет перемещаться по ней. К счастью, Unity проделала большую часть тяжёлой работы на этом этапе. Если вы зайдёте в папку стандартных ресурсов> 2D> Prefabs в браузере ресурсов, вы увидите, что там есть маленький робот под названием «CharacterRobotBoy.prefab».
Вот он.
Помните, как к вашей тайловой карте был прикреплён компонент столкновения? Что ж, нашему персонажу нужно много компонентов, прикреплённых к нему, чтобы функционировать. Вместо того, чтобы каждый раз перестраивать каждый компонент, вы можете создавать префабы, которые будут служить игровыми объектами. Их можно использовать снова и снова.
Теперь перетащите мальчика-робота в свою сцену и щёлкните по нему в иерархии. Глядя на все компоненты, прикреплённые к нему, вы заметите, что у него есть система анимации, средство рендеринга спрайтов и несколько различных функций столкновения и управления.
У него есть система анимации, средство визуализации спрайтов и несколько различных функций управления столкновениями и контроля.
Хотя вы можете использовать его сейчас, вам следует создать собственного персонажа, который в итоге заменит его. Его спрайт и анимация будут служить вам заменой, пока вы продолжаете развиваться вокруг него.
Теперь, когда мальчик-робот находится в вашей сцене, вы можете играть за него. Нажмите кнопку воспроизведения в верхней части экрана, чтобы попробовать.
Поскольку идея игровой механики в этом уроке состоит в том, чтобы встретить двух персонажей, вам следует перетащить в сцену второго мальчика-робота, возможно, с другой стороны. Таким образом, каждый раз, когда вы играете в игру, вам придётся координировать свои действия, чтобы встретить двух персонажей.
С чего начать?
Первым шагом этого урока является загрузка Unity. Но подождите — есть четыре разные версии. Какую из них выбрать?
Все версии Unity предоставляют одинаковые функции движка
- Personal: бесплатно
- Plus: $ 40 / мес
- Pro: $ 150 / мес
Существует также версия Enterprise, в которой ваши пользовательские потребности определяют стоимость подписки.
Наиболее заметное различие между этими версиями заключается в том, что игры, созданные с помощью персональной версии, должны начинаться с заставки Unity, тогда как любая из платных версий позволяет либо удалить заставку, либо создать собственную.
Кроме того, существуют различные сервисы внутри Unity, такие как Cloud Build и Analytics, которые становятся доступными в платных версиях.В Unity есть несколько строгих правил о том, как вы можете использовать персональную версию. Перед тем, как приступить к работе, обязательно ознакомьтесь с FAQ по Unity, чтобы узнать, имеете ли вы право его использовать.
Для выполнения этих уроков достаточно персональной версии, поэтому нажимаем на кнопку начать. Это приведет вас к странице загрузки, на которой нужно принять условия использования и загрузить установщик.
Запустите установщик и следуйте инструкциям на экране. Дождитесь завершения установки и запустите Unity Hub. Вам будет предложено создать учетную запись.
Создав учетную запись, запустите Unity. Нажмите File-New Project чтобы создать новый проект.
- 1. Назовите свой проект Spaceship и выберите место на жестком диске, чтобы сохранить его.
- 2. Вы заметите, что у вас есть несколько вариантов выбора шаблонов. Каждый шаблон предварительно настраивает Unity, чтобы сэкономить ваше время в зависимости от того, что вы хотите сделать. Сейчас выберите 3D.
- 3. Нажмите Create, и Unity откроет ваш первый проект.
Что почитать
- «Разработка игр на Unity 2018 за 24 часа», Майк Гейг. Книга поможет в сжатые сроки обучить читателя принципам unity разработки.
- «Unity для разработчика. Мобильные мультиплатформенные игры», Джон Мэннинг, Пэрис Батфилд-Эддисон. Советы авторов книги помогут сделать красивый и интерактивный 2D и 3D контент для игр.
- «Unity и С#. Геймдев от идеи до реализации», Джереми Гибсон Бонд. Книга поможет разобраться в методах и техниках прототипирования и геймдизайна игр.
- «Unity в действии. Мультиплатформенная разработка на C#», Джозеф Хокинг. Знания, полученные в книге, помогут разработать свою игру, с помощью современных подходов и идей для создания игр.
Уроки для начинающих
В авторском блоге размещены подборки обучающих видеоматериалов по IT. Предмет обзора отражен как в бесплатных мини-курсах, так и в отдельных тематических видео-уроках.
Серия «Юнити-уроки для начинающих» представляет пятую версию движка. На девяти занятиях пользователи изучат принципы создания и выбор объектов, игровую механику, проигрыш, главное меню, динамику, эффекты, нюансы добавления рекламы. В курс включен познавательный урок «Реальный доход и статистика».
Цикл «2D-игра на Unity-5» состоит из 20 видеороликов. Ментор обещает научить писать скрипты, работать в Юнити, создавать мобильный игровой продукт. По окончании у юзеров будет готов гейм-проект, который можно попробовать загрузить в App Store и Google Play.
Graphical Design
155 бесплатных видео насчитывается в тематическом плейлисте на канале Graphical Design. Каждый из уроков посвящен определенной функции движка или примеру его использования.
Среди изучаемых тем – «2D-платформер», «2D-свет», «движение по клику в 3D», «отслеживание персонажа», «спрайт-маска», «эффект воды», «ускорение персонажа», «диалоги», «сбор и накапливание кристаллов», «локализация», «рестарт уровня» и др. Интересен и мини-курс «U-C#-ООП», где рассматриваются вопросы наследования, свойств, методов и циклов.
Туториалы от Flatingo
На ютуб-канале инди-разработчика выложены обучающие материалы для тех, кто разделяет увлечение автора
По интересующей дисциплине внимание заслуживают подборки «U-уроки» или «Создание игр на Unity3D, рисование 2D-графики».
В первом случае юзеров ждут ознакомительные ролики, во втором собраны видеоуроки, мастер-классы с демонстрацией процесса работы, лайфхаки по недопущению ошибок, советы по продвижению и др.
Coursera
Бизнес, IT, наука о данных, иностранные языки – области, в которых международный образовательный сервис Coursera предлагает онлайн-программы ведущих мировых вузов и предприятий.
Специализация «Game Design and Development», представлена университетом штата Мичиган (США). Контент – теоретическая база и практические рекомендации по производству видеоигр с использованием Unity-5. Потребители научатся разрабатывать концепцию, прототипировать и тестировать идеи, ориентироваться в лицензировании и маркетинге. Партнером является известный портал онлайн-игр, который предоставляет шанс для старта и монетизации начинающим профи. Наличие субтитров (в том числе и на русском) помогает с восприятием англоязычных наставников.
ITVDN
Бесплатный видеокурс «Введение в U и основы программирования» обеспечивает стартовыми знаниями для вхождения в сферу геймдева. Юзеры разберутся с устройством редактора и его функциями, узнают об отличиях класса от объекта.
Юнити отлично подходит начинающим мастерам, так как позволяет быстро создать объекты и построить сцену, используя свой контент или предложения библиотек. Некоторые возможности движка будут интересны и крупным «игроделам», которые производят продукт более высокого класса.
— Курсы по геймдизайну и разработке игр
— Обучение созданию игр с нуля
Туториалы от Flatingo
На ютуб-канале инди-разработчика выложены обучающие материалы для тех, кто разделяет увлечение автора
По интересующей дисциплине внимание заслуживают подборки «U-уроки» или «Создание игр на Unity3D, рисование 2D-графики».
В первом случае юзеров ждут ознакомительные ролики, во втором собраны видеоуроки, мастер-классы с демонстрацией процесса работы, лайфхаки по недопущению ошибок, советы по продвижению и др.
Coursera
Бизнес, IT, наука о данных, иностранные языки – области, в которых международный образовательный сервис Coursera предлагает онлайн-программы ведущих мировых вузов и предприятий.
Специализация «Game Design and Development», представлена университетом штата Мичиган (США). Контент – теоретическая база и практические рекомендации по производству видеоигр с использованием Unity-5. Потребители научатся разрабатывать концепцию, прототипировать и тестировать идеи, ориентироваться в лицензировании и маркетинге. Партнером является известный портал онлайн-игр, который предоставляет шанс для старта и монетизации начинающим профи. Наличие субтитров (в том числе и на русском) помогает с восприятием англоязычных наставников.
ITVDN
Бесплатный видеокурс «Введение в U и основы программирования» обеспечивает стартовыми знаниями для вхождения в сферу геймдева. Юзеры разберутся с устройством редактора и его функциями, узнают об отличиях класса от объекта.
Юнити отлично подходит начинающим мастерам, так как позволяет быстро создать объекты и построить сцену, используя свой контент или предложения библиотек. Некоторые возможности движка будут интересны и крупным «игроделам», которые производят продукт более высокого класса.
— Курсы по геймдизайну и разработке игр
— Обучение созданию игр с нуля
— Курсы по Unreal Engine
Создание проекта
После обучения можно перейти к созданию своей первой игры на Unity с помощью кнопки NEW в меню проектов.
Новому проекту присваивается имя, выбираются место хранения на диске и темплейт — то есть шаблон для разработки, внешний вид и функционал которого зависит от количества измерений в игре. Проще начинать с 2D-проектов, так как для этого формата создано больше готовых ассетов. Конечно, можно сразу начать делать 3D-игры, но в этом случае многие элементы и анимации придется самостоятельно создавать с нуля или выделять бюджет на то, чтобы делегировать эту часть работы другим специалистам.
Задачи юнити разработчика
Основная обязанность unity разработчика — создание игр для компьютеров и мобильных устройств, участие в проекте, включая тестирование, модификацию, поддержку и обновления игр.
Также разработчик выполняет и другие задачи:
создание геймдизайна: игровой контент и правила для персонажей;
составление шейдеров — программа для видеокарты, которая позволяет реализовать разные спецэффекты: преломление, затенение, рассеяние света и другие характеристики;
использование трехмерной графики 3D моделирования для игр;
подготовка анимации и графики;
понимание математики и физики (это важно как в процессе работы, так и при изучении С#).
Объекты Unity Game
Что такое GameObjects
GameObjects — это основной строительный блок всего игрового движка Unity. Название почти выдает это:Все, что вы помещаете в сцену в Unity, должно быть заключено в «игровой объект».
Если у вас есть опыт веб-дизайна, вы можете думать о GameObjects как о элементах <div>! Чрезвычайно скучные контейнеры, но они легко расширяемы для создания сложной функциональности или визуальных эффектов.
Я поднял это прямо из окна редактора Unity, чтобы подчеркнуть это.
Буквально все, от эффектов частиц, камер, игроков, элементов пользовательского интерфейса… (список продолжается) — это GameObject.
Создание иерархии
Как и <div> в веб-разработке, GameObject также является контейнером. Подобно тому, как вы вкладываете <div> для создания разнообразных и желаемых макетов или абстракций, вы можете сделать то же самое с игровыми объектами.Логика вложения игровых объектов во многом такая же, как и при веб-разработке, я приведу несколько примеров …
Беспорядок и эффективность
Позиционирование
Доступ к другим игровым объектам и компонентам
Часто нам нужно взаимодействовать с другими GameObject, а также с их ассоциированными компонентами. Если у вас есть ссылка на игровой объект, это довольно просто.ComponentName comp = some_game_object.GetComponent <ComponentName> ();
После этого вы можете получить доступ к любому из общедоступных методов / переменных компонента, чтобы управлять GameObject. Это простой момент, однако на самом деле получить ссылку на GameObject можно несколькими способами …
Доступ через переменную инспектора
Это самый простой способ. Просто создайте общедоступную переменную для GameObject, как мы продемонстрировали ранее с префабами, и вручную перетащите ее на компонент через инспектор. Затем перейдите к переменной, как указано выше.
Доступ через теги
Мы можем пометить GameObjects или prefabs через инспектор, а затем использовать функции поиска игровых объектов, чтобы найти ссылки на них.
Это просто делается, как показано ниже.GameObject some_game_object = GameObject.FindGameObjectWithTag («Кирпич»);
Доступ через преобразование
Если мы хотим получить доступ к компонентам в каком-либо родительском объекте, мы можем легко сделать это с помощью атрибута transform.ComponentName comp = gameObject.transform.parent.GetComponent <ComponentName> ();
Доступ через SendMessage
В качестве альтернативы, если мы хотим отправить сообщение многим другим компонентам или хотим отправить сообщение объекту, который находится далеко вверх по вложенной иерархии, мы можем использовать функции отправки сообщения, которые принимают имя функции, за которым следуют аргументы.gameObject.SendMessage («MethodName», параметры); // Трансляция сообщениеgameObject.SendMessageUpwards («ИмяМетода», параметры); // Получено только компонентами, вложенными выше.
Настройка интерфейса
В стандартном интерфейсе проекта шесть элементов рабочей области:
- Верхняя панель инструментов — в ней находятся стандартные вкладки File, Edit, Help, как во многих других интерфейсах, а также вкладки Assets, GameObject, Components и Window.
- Scene — окно сцены, в котором выстраивается игровое пространство (элементы игрового мира, текстуры, фигурки персонажей и прочее).
- Games — это окно игры, в котором можно посмотреть глазами пользователя, как будут двигаться элементы и работать игровые механики.
- Hierarchy — окно иерархии, в нем перечислен список всех элементов (GameObject), которые помещены в окно Scene.
- Project — это система папок, в которых хранятся ассеты по категориям (текстуры, шрифты, звуки и т.д.).
- Inspector — окно для изменения элементов игры, их размера, цвета, положения в пространстве и других характеристик.
И чем Unity не является
Я сомневаюсь, что нужно описывать все, чем Unity не является. Однако Unity по умолчанию не является системой, в которой проектируют двухмерные ресурсы и трехмерные модели (кроме террейнов). Вы можете вставить группу зомби в сцену и управлять ими, но создать самих зомби с помощью инструментария Unity, предлагаемого по умолчанию, нельзя. В этом смысле Unity не является инструментом создания ресурсов, подобным Autodesk Maya, 3DSMax, Blender или даже Adobe Photoshop. Однако существует минимум один сторонний плагин (ProBuilder) для моделирования трехмерных компонентов прямо в среде Unity; также имеются плагины для построения двухмерных миров, например 2D Terrain Editor, позволяющий создавать двухмерные тайловые среды (2D tiled environments). И еще вы можете проектировать террейны в Unity, используя его Terrain Tools, чтобы создавать потрясающие ландшафты с деревьями, травой, горами и т. д. Поэтому я вновь в сомнении: стоит ли очерчивать границы возможностей Unity.
Какова роль Microsoft? Microsoft и Unity тесно сотрудничают, чтобы обеспечить полную поддержку для всего стека платформ Microsoft. Unity поддерживает автономные исполняемые Windows-файлы, приложения Windows Phone, Windows Store, Xbox 360 и Xbox One.
XYZ School
Получить углубленные знания по геймдев-направлениям в рамках 30 авторских онлайн-курсов рекомендует интернет-школа XYZ. По словам основателей, цель – сделать обучение осмысленным, связывая воедино ожидания работодателей, компетенции экспертов и возможности преподавателей.
Базовый кейс «Создай свой собственный платформер» предлагает начать рассмотрение дисциплины с азов, а затем овладеть продвинутыми приемами для проектирования архитектуры 2D-игр, написания кода, создания AI, анимации, оптимизации и монетизации проекта. Формат – онлайн-лекции, стримы преподавателей, проверка домашних заданий.
Получить представление о предмете неофиты могут на бесплатном онлайн-интенсиве «Первая игра за 3 дня». Новички познакомятся основами проектирования, посмотрят, что у движка «под капотом», и создадут дебютную гиперказуалку. Бесплатный контент также представлен на ютуб-канале школы.
Расширенные возможности
Мы не будем вдаваться в подробности сейчас, но, возможно, в следующей статье — просто чтобы вы знали, что они существуют.
Создание графического интерфейса
Unity имеет полноценный движок пользовательского интерфейса для создания графического интерфейса для вашей игры. В целом эти компоненты работают примерно так же, как и остальная часть двигателя.
Расширение редактора Unity
Unity позволяет вам добавлять пользовательские кнопки к вашим инспекторам, чтобы вы могли влиять на мир в режиме редактирования. Например, чтобы помочь в построении мира, вы можете разработать собственное окно инструментов для строительства модульных домов.
Анимация
Unity имеет систему анимации на основе графиков, которая позволяет вам смешивать и управлять анимацией для различных объектов, таких как игроки, реализующие систему анимации на основе кости.
Материалы и PBR
Unity использует физический движок рендеринга, который обеспечивает освещение в реальном времени и реалистичные материалы. Реальность такова, что вам нужно либо сначала изучить 3D-моделирование, либо использовать модели, созданные и оптимизированные кем-то другим, прежде чем вы доберетесь до этого, чтобы создавать вещи, которые действительно хорошо выглядят.
Окно иерархии
Окно иерархии (Hierarchy Window) содержит список всех текущих объектов (GameObjects), используемых в вашей игре. Но что такое GameObject? Простыми словами, GameObject — это объект в вашей игре.
GameObjects — это пустые контейнеры, которые вы настраиваете, добавляя компоненты. Компоненты позволяют GameObjects проецировать геометрию (от простого куба до более сложных трехмерных моделей), излучать свет, действовать как камера или даже создавать сложное поведение с помощью сценариев.
GameObjects также могут действовать как папки, содержащие другие GameObjects, что делает их весьма полезными для организации вашей сцены. Вы увидите GameObjects в действии во второй части этого урока.
Сцена обычно представляет один уровень вашей игры, хотя теоретически вы можете поместить всю игру в одну сцену. Любые GameObjects, активно используемые в вашей игре в текущей сцене, появятся в окне Иерархии (Hierarchy).
Каждая новая сцена начинается с основной камеры и направленного света, которые оба являются объектами GameObject. Но вы всегда можете удалить их и добавить позже. Когда вы удаляете GameObject из Иерархии, вы фактически удаляете его из сцены.
По мере того, как ваша сцена разрастается большим количеством GameObjects, панель поиска окажется бесценным инструментом.
Подготовка к разработке
Формирование идеи
Определившись с выбором рабочей платформы для разработки игры, я отправился читать статьи людей, у которых имелся уже хоть какой то опыт в данной сфере, чтобы выбрать нужное мне направление. ПК или смартфоны? 2Д или 3Д? Сингл или мультиплеер?Прочитав большое количество статей и проанализировав их, все советы сходились к тому, чтобы:
-
Проект не разрабатывать больше 2-х месяцев, иначе увеличивается вероятность потерять энтузиазм и он окажется на полке «потом доделаю» так не дойдя до выпуска;
-
Проект должен быть простой, легкий, желательно иметь небольшую изюминку. Иначе нафантазировав себе в голове крутой ААА проект с сетевым режимом и открытом миром, рискуете себе «сломать зубы», потеряв всякую мотивацию к разработке и потеряться где то в пучине депрессии и отчаяния;
Мой выбор
2Д мобильная аркада с сетевым режимом до 6 человек , рейтинговой системой и вознаграждением. Разработка, которой заняла отнюдь не 2 , а все «12 месяцев».
Аргументы «за»:
-
Мне показалось заставлять двигаться 2Д объекты будет проще, чем те же 3Д;
-
Мобильный рынок огромен и его доля более половины всей игровой индустрии;
-
Писать сюжеты для игр я не умею, да и опыта в этом нет никакого, поэтому я решил сделать упор на веселье. А играть всегда веселее вместе! Поэтому сетевая;
-
Продолжительность жизни игр с сетевым режимом дольше, где ты можешь соревноваться с друзьями за лучший результат, чем у игр, где простенький сюжет, пройдя которую ты забудешь и никогда не вернешься.
Аргументы «против»:
-
Игра уже становилась не так уж проста, как советовали более опытные коллеги;
-
Сложность и продолжительность разработки для не опытного «птенца» увеличивалась многократно.
Аргументы «за» были очень привлекательны и я решил рискнуть. Как говорится — «Чем чёрт не шутит» и «Была не была»!
Знакомство с Unity и его изучение
Учится чему то с нуля, это как учится кататься на велосипеде. Главное стараться и упорно трудиться, и тогда рано или поздно точно должно получится.Начинал с малого, а именно перемещал разные объекты в пространстве, писав самый примитивный код.
Совет: знайте, чтобы вы не делали или не хотели начать делать, это с вероятность больше 90% уже было сделано до вас. Научитесь правильно искать нужную информацию!!!
После полумесяца изучения Unity, было необходимо разработать какой то план разработки, которому бы я следовал. Держать все в голове было невозможно, да и нецелесообразно. Сейчас я использую обычный текстовый редактор, где записывваю свои мысли о реализации той или иной фичи, но для начала хватить и обычного листка бумаги и карандаша.
Совет: попытайтесь как можно точно расписать предполагаемый план, по которому будете разрабатывать свою будущую игру. Управление персонажем, основной геймплей, музыка и эффекты, механика игры, интерфес.
Как только я накидал определенный план действий и уже собирался начать делать свой первый будущей «шедевр», встал серьезный вопрос
На помощь пришел фирменный магазин Unity, а именно unityAssetStore. Замечательная площадка, где фрилансеры выкладывают свои работы с целью их продать, а разработчики могут приобрести их для использования в своих проектах, тем самым ускоряя разработку и экономя драгоценное время и нервы.На пути всей разработки игры, да и после выпуска, мои знакомые и друзьям задают мне практически одни и те же вопросы.
Как можете догадаться, они получали отрицательный ответ на все подобного рода вопросы.
Совет: Не чурайтесь использовать чужие наработки или шаблоны, которые продают или прибегать к работе фрилансеров! Это взаимосвязанная выгода! Конечному пользователю все равно, сами вы рисовали самолетик несколько часов или потратили 10$ на его покупку в магазине, ведь главное результат!
Разумеется, необходимо иметь базовые навыки такие как изменения размера изображения, цвета или редактирование определеного участка звука.
Совет: Отслеживайте скидки на продаваемые ассеты в различным магазинах, особенно под новый год! Можно приобрести кучу ассетов по выгодной цене со скидкой до 90% в такое время.
Обнаружение столкновений
Ранее мы упоминали компоненты Collider и Rigidbody, которые можно добавить к объекту. Правило для столкновений состоит в том, что один объект в столкновении должен иметь твердое тело, а другой — коллайдер (или оба имеют оба компонента). Обратите внимание, что при использовании raycasting лучи будут взаимодействовать только с объектами, к которым прикреплены компоненты коллайдера. После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами
После настройки в любом настраиваемом компоненте, прикрепленном к объекту, мы можем использовать методы OnCollisionEnter, OnCollisionStay и OnCollisionExit для реагирования на коллизии. Получив информацию о столкновении, мы можем получить ответственность за GameObject и использовать то, что мы узнали ранее, для взаимодействия с прикрепленными к нему компонентами.
Следует отметить, что твердые тела обеспечивают физику, такую как гравитация, для объектов, поэтому, если вы хотите отключить это, вам нужно будет включить is_kinematic .
Установите флажок «Кинематика», чтобы отключить нежелательную физику, но сохранить хорошее обнаружение столкновений.