Unity3D
AidarUnity3D - популярный кроссплатформенный игровой движок. Он работает на куче платформ: Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах. Официальный сайт: https://unity3d.com/ru
Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество - секреты успеха движка.
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию разработчиков, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
В: Какие у Unity слабые стороны?
О: Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
В: На каких языках я могу писать скрипты для Unity?
О: На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#. Обучение на C#: клик.
В: Для каких жанров подходит Unity?
О: Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
В: Что такое ассеты?
О: Мощный плюс Юнити — это ассеты. Все в игре, включая код, картинки, представляется ассетам (Asset). Ассеты можно экспортировать, импортировать. Таким образом, сторонние разработчики могут делать целые заготовки для игр. Все, что вам останется — это заменить картинки, подправить скрипты — и можно релизить игру. Опять-таки, все не так просто, дьявол кроется в деталях. Различные ассеты могут быть несовместимы между собой как в прямом смысле, так и не подходить по стилю. Но это уже детали.
Есть специальный онлайн-магазин — Unity Asset Store. Там продаются готовые ассеты от сторонних разработчиков. Любой желающий может сделать свой ассет, и выложить его в продажу в этом магазине. Некоторые люди сделали на этом целый бизнес, благодаря большому рынку Unity-пользователей. Также важный момент, что магазин доступен прямо из редактора Unity. То есть, добавление новых ассетов максимально упрощается. Вы заходите в магазин, кликаете на нужный ассет, и он сразу закачивается и добавляется в ваш текущий проект. Быстро и удобно. Магазин ассетов: https://unity3d.com/ru/asset-store.
В: Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
О: Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
В: Что такое стартер киты?
О: Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
В: Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
О: Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
В: Бесплатен ли Unity?
О: Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно. Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение
Итак, с чего же начать изучение этого замечательного движка?
1) Прежде всего, с изучения языка. Самые основы C# можно узнать здесь:
https://telegra.ph/Plan-obucheniya-C-Developer-03-30
Для изучения основ UnityScript выучи вначале основы JavaScript:
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
2) Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендуется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
Также, посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описывается разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
https://www.udemy.com/course/make-interactive-games-with-fungus-unity3d-no-coding-required/ - неплохой платный курс на юдеми по разработке игры без кодинга.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
ver 0.1 04.04.2020