Что такое юнити
Unity — межплатформенная среда разработки компьютерных игр. Unity позволяет создавать приложения, работающие под более чем 20 различными операционными системами, включающими персональные компьютеры, игровые консоли, мобильные устройства, интернет-приложения и другие. Выпуск Unity состоялся в 2005 году и с того времени идёт постоянное развитие.
Основными преимуществами Unity являются наличие визуальной среды разработки, межплатформенной поддержки и модульной системы компонентов. К недостаткам относят появление сложностей при работе с многокомпонентными схемами и затруднения при подключении внешних библиотек.
На Unity написаны тысячи игр, приложений и симуляций, которые охватывают множество платформ и жанров. При этом Unity используется как крупными разработчиками, так и независимыми студиями
Возможности
Редактор Unity имеет простой Drag&Drop интерфейс, который легко настраивать, состоящий из различных окон, благодаря чему можно производить отладку игры прямо в редакторе. Движок поддерживает два скриптовых языка: C#, JavaScript (модификация). Ранее была поддержка Boo (диалект Python), но его убрали в 5-й версии. Расчёты физики производит физический движок PhysX от NVIDIA.
Проект в Unity делится на сцены (уровни) — отдельные файлы, содержащие свои игровые миры со своим набором объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты — объекты, которые не имеют модели («пустышки»). Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform — он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям. У объектов с видимой геометрией также по умолчанию присутствует компонент Mesh Renderer, делающий модель объекта видимой.
К объектам можно применять коллизии (в Unity т. н. коллайдеры — collider), которых существует несколько типов.
Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла). В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта. Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.
При импорте текстуры в Unity можно сгенерировать alpha-канал, mip-уровни, normal-map, light-map, карту отражений, однако непосредственно на модель текстуру прикрепить нельзя — будет создан материал, которому будет назначен шейдер, и затем материал прикрепится к модели. Редактор Unity поддерживает написание и редактирование шейдеров. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в 3D-редакторе и импортировать вместе с моделью, а затем разбить на файлы.
Unity 3D поддерживает систему Level Of Detail (сокр. LOD), суть которой заключается в том, что на дальнем расстоянии от игрока высокодетализированные модели заменяются на менее детализированные, и наоборот, а также систему Occlusion culling, суть которой в том, что у объектов, не попадающих в поле зрения камеры не визуализируется геометрия и коллизия, что снижает нагрузку на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создается исполняемый (.exe) файл игры (для Windows), а в отдельной папке — данные игры (включая все игровые уровни и динамически подключаемые библиотеки).
Движок поддерживает множество популярных форматов. Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат .unityassets и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity. Unity имеет все нужные компоненты для создания мультиплеера. Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN или Source Gear.
В Unity входит Unity Asset Server — инструментарий для совместной разработки на базе Unity, являющийся дополнением, добавляющим контроль версий и ряд других серверных решений.
Достоинства и недостатки
Как правило, игровой движок предоставляет множество функциональных возможностей, позволяющих их задействовать в различных играх, в которые входят моделирование физических сред, карты нормалей, динамические тени и многое другое. В отличие от многих игровых движков, у Unity имеется два основных преимущества: наличие визуальной среды разработки и межплатформенная поддержка. Первый фактор включает не только инструментарий визуального моделирования, но и интегрированную среду, цепочку сборки, что направлено на повышение производительности разработчиков, в частности, этапов создания прототипов и тестирования. Под межплатформенной поддержкой предоставляется не только места развертывания (установка на персональном компьютере, на мобильном устройстве, консоли и т. д.), но и наличие инструментария разработки (интегрированная среда может использоваться под Windows и Mac OS).
Третьим преимуществом называется модульная система компонентов Unity, с помощью которой происходит конструирование игровых объектов, когда последние представляют собой комбинируемые пакеты функциональных элементов. В отличие от механизмов наследования, объекты в Unity создаются посредством объединения функциональных блоков, а не помещения в узлы дерева наследования. Такой подход облегчает создание прототипов, что актуально при разработке игр.
В качестве недостатков приводятся ограничение визуального редактора при работе с многокомпонентными схемами, когда в сложных сценах визуальная работа затрудняется. Вторым недостатком называется отсутствие поддержки Unity ссылок на внешние библиотеки, работу с которыми программистам приходится настраивать самостоятельно, и это также затрудняет командную работу. Ещё один недостаток связан с использованием шаблонов экземпляров (англ. prefabs). С одной стороны, эта концепция Unity предлагает гибкий подход визуального редактирования объектов, но с другой стороны, редактирование таких шаблонов является сложным. Также, WebGL-версия движка, в силу специфики своей архитектуры (трансляция кода из C# в С++ и далее в JavaScript), имеет ряд нерешённых проблем с производительностью, потреблением памяти и работоспособностью на мобильных устройствах
Игры на Unity
На Unity написаны сотни игр, приложений и симуляций, Unity используется как крупными разработчиками (например, Blizzard), так и в создании инди-игр. Компьютерные игры на Unity охватывают множество платформ и жанров, характерными примерами которых являются:
- Guns of Icarus Online, Gone Home— шутер от первого лица и квест от первого лица, созданные независимыми студиями — для персональных компьютеров;
- Dead Trigger, Bad Piggies, Tyrant Unleashed— шутер от первого лица, головоломка и коллекционная карточная игра — для мобильных устройств;
- Assault Android Cactus,The Golf Club — аркадный шутер и спортивный симулятор — для игровых консолей.
Лицензии
Бесплатная версия Unity имеет некоторые ограничения, но для неё есть возможность распространять игры при условии, что ежегодный доход с игры не превышает 100 000 долларов.
Unity
Unity — это игровой движок, на котором разрабатывают мобильные игры и проекты для ПК (Windows, iOS, Linux) и консолей, например для Xbox, PlayStation. В нем есть разные компоненты для работы с графикой, анимацией, физикой объектов, звуком, шаблонами и скриптами.
Освойте профессию «Разработчик игр на Unity»
Это удобный бесплатный инструмент для начинающих разработчиков, в нем можно создавать проекты в одиночку. На этом движке созданы проекты Genshin Impact, Hearthstone, Outlast, Cuphead, Pokemon GO и другие популярные игры.
Профессия / 18 месяцев
Разработчик игр на Unity
Создавайте виртуальные миры
Некоторые игровые движки созданы под конкретные жанры или отдельные игры. Например, польская студия CD Projekt RED создала REDengine, на котором разработаны серии «Ведьмак» и Cyberpunk 2077. Unity можно считать универсальным мультиплатформенным движком, на котором создаются игры разных жанров (платформеры, шутеры, RPG и так далее).
Разработчик игр на Unity – одна
из самых творческих профессий в IT. Создайте виртуальные миры уже через полгода обучения
Преимущества Unity
- Доступность. Начать разработку и выпускать свои первые проекты можно бесплатно с тарифом Personal, он предназначен для частных лиц и небольших организаций с доходом менее $100 тыс. за 12 месяцев. Когда этих возможностей будет недостаточно, можно переключиться на более продвинутые тарифы Plus или Pro. На этих тарифах есть доступ к аналитике и решения для монетизации проектов.
- Низкий порог вхождения вразработку. Собрать игру на Unity получится, даже если вы не умеете писать код. В библиотеке Asset Store есть бесплатные шаблоны персонажей, звуков и фонов, которые можно использовать в первых проектах. На официальном сайте движка есть статья «How to make a game with no coding in Unity», в которой подробно описываются инструменты, необходимые новичкам для создания игр.
- Обучение. Для новичков создали подробные обучающие материалы в разделе Learn, где объясняется, как создать проект, разместить персонажа, создать для него окружение, научить взаимодействовать с предметами, создавать разные уровни сложности и в итоге собрать первый проект. Такое доступное и бесплатное обучение — важная особенность Unity.
- Поддержкасообщества. Комьюнити Unity-разработчиков большое, поэтому велика вероятность, что с вашей проблемой кто-то уже сталкивался. Есть форум, раздел «Ответы» на официальном сайте и индивидуальные консультации Unity Live Help, которые будут помогут справляться с трудностями.
Читайте также Как создать игру на Unity
Сложности в работе с Unity
Unity — отличный движок для мелких мобильных проектов, но для AAA-игры это не самый подходящий инструмент. Вот почему:
- Производительность. Нужно хорошо знать тонкости разработки пользовательского интерфейса, чтобы сделать его производительным.
- Оптимизация. Кроссплатформенные и кроссжанровые движки имеют меньшую производительность по сравнению с узконаправленными движками. Это влияет на скорость работы, качество графики и FPS (частота кадров в секунду). Оптимальный диапазон кадров для качественной картинки в игре — 30-60 FPS. Чтобы добиться стабильного результата, разработчики игр уровня AAA (triple-A, высокобюджетные компьютерные игры) создают собственные движки под проекты.
- Нет шаблонов. Простой проект можно собрать на плохом коде. Но как только игра становится чуть сложнее, нужна хорошо продуманная архитектура, иначе ее не получится выпустить.
Интерфейс Unity
В интерфейсе есть несколько разделов, которые отвечают за разные элементы разработки — ассеты (шаблоны элементов), игровые объекты, настройку их свойств и параметров:
- Scene — окно сцены, в котором выстраивается игровое пространство (элементы игрового мира, текстуры, фигурки персонажей и прочее).
- Games — окно игры, в котором можно посмотреть глазами пользователя, как будут двигаться элементы и работать игровые механики.
- Hierarchy — окно иерархии, в нем перечислен список всех элементов (GameObject), которые помещены в окно Scene.
- Project — система папок, в которых хранятся ассеты по категориям (текстуры, шрифты, звуки и т.д.).
- Console — программисты используют ее для отладки и поиска ошибок.
- Inspector — окно для изменения элементов игры, их размера, цвета, положения в пространстве и других характеристик.
Разработчик игр на Unity
Все главные навыки разработчика игр на одном курсе. Вы освоите все этапы геймдизайна, научитесь программировать на С# и создадите 7 игр во время курса.
Статьи по теме:
Движок Unity
Пожалуй, все мы когда-нибудь представляли себя волшебниками или супергероями, рисовали свои миры и планеты в фантазиях и на бумаге. Но что, если я скажу вам, что все эти фантазии возможно воплотить в создании игр? Единственное ограничение — это ваше воображение, а всему остальному можно научиться. И поможет нам в этом Unity.
29 декабря 2022
· Обновлено 8 августа 2023
Научим детей и подростков создавать игры на Unity
Поможем освоить самый востребованный игровой движок и создать 6 собственных 3D-игр
Что такое Unity
Unity — это самая популярная среда разработки интерактивного 2D- и 3D-контента в мире. Такие программы, как Unity, ещё называют движками. Разработала её компания Unity Technologies в 2005 году, тогда программа называлась Unity3D. Её авторы были студентами, которые хотели сделать разработку игр доступной для каждого.
Свою известность Unity приобрела в момент выхода первых айфонов: разработчики Unity одними из первых добавили поддержку операционной системы iOS. Кроме того, на популярность движка повлияли:
- простота входа;
- возможность создать игру под любую платформу (PC, XBOX, Playstation, Nintendo, WebGL и т. д.);
- множество всевозможных туториалов и документации в интернете;
- то, что движок совершенно бесплатен для рядового пользователя.
Примеры игр, созданных на Unity, можно увидеть на официальном сайте в разделе Made with Unity или в историях успеха.
Стартуй в программировании прямо сейчас
Реши свою первую настоящую задачу на JavaScript и поделись крутым результатом с друзьями
Альтернативы Unity
Главный конкурент Unity среди бесплатных движков — Unreal Engine, хотя есть и другие альтернативы — например, Godot Engine и Roblox, они имеют свои особенности и ограничения.
Есть и закрытые движки, которые разрабатывают и поддерживают большие студии (в основном они появились задолго до Unity и других бесплатных решений). Используя свой собственный движок, они не платят никакие отчисления другим компаниям и полностью контролируют его функциональность.
Основное различие Unity и Unreal Engine — это язык программирования: в Unity это C#, в Unreal Engine это С++. Кроме того, Unreal Engine более требователен к характеристикам компьютера.
Игровые движки позволяют рендерить в режиме реального времени и видеть результат работы сразу, на лету. Именно по этой причине они пользуются популярностью во многих областях, связанных с компьютерной графикой. Так, Unity используется для создания игр, в архитектуре, автоиндустрии, кинематографе.
Выберите идеального наставника по программированию
15 000+ проверенных преподавателей со средним рейтингом 4,8. Учтём ваш график и цель обучения
Преимущества Unity
Программирование
Unity поддерживает C#, стандартный в отрасли язык программирования, в некоторой степени похожий на Java или C++.
По сравнению с C++, C# легче в изучении. Кроме того, он относится к категории языков с «управлением памятью», то есть он автоматически распределяет память, устраняет утечки и так далее.
Как правило, C# удобнее C++, если вам нужно в первую очередь разработать игру, а потом уже совершенствовать различные сложные аспекты программирования.
Визуальное программирование
В Unity можно создать игру, не прибегая к написанию кода: для этого есть инструмент визуального программирования, который называется Bolt. Программирование в Bolt происходит через построение связей между блоками команд.
Ассеты (игровые ресурсы)
У Unity есть собственный магазин ассетов Asset Store, а в нём — множество как платных, так и бесплатных ассетов. Используя Asset Store по максимуму, можно собрать игру, как конструктор, не написав ни единой строчки кода.
Я уже рассказывал более подробно про ассеты для Unity в другой статье.
Большое сообщество разработчиков
Unity имеет отличный обучающий портал, множество форумов, понятную документацию и безумное количество всевозможных туториалов от сообщества на YouTube и прочих ресурсах.
Если произошла ошибка в работе программы или при написании кода — скорее всего, с ней уже кто-то сталкивался и можно найти ответы с решением в интернете, например на Stackoverflow или Unity3D.
Движок настолько популярен, что всё, что бы вы ни задумали, кто-то, вероятно, уже реализовывал, и материал по этой теме можно легко найти в Сети.
Доход
Если вы развиваетесь как инди-разработчик (соло или в небольшой команде), то всё, что вы заработали со своей игры, принадлежит вам — никаких авторских отчислений Unity. Исключение: если вы заработали больше $100 000 за год. Только не забывайте, что площадка, на которой вы выложили игру, может брать за это комиссию, а ещё нужно платить налоги государству после вывода денег на свой счёт.
Другой вариант заработка на Unity — устроиться на работу. В геймдеве множество всевозможных профессий. Зарплата зависит от таких факторов, как ваш опыт, характер, город, в котором вы работаете, компания, должность и сложность проектов.
Начинающие специалисты получают в среднем от $400 в месяц, далее в зависимости от успехов и навыков зарплата повышается. Топовые специалисты получают от $4000 в месяц, обычно на такой доход выходят за 4–5 лет.
Главный плюс Unity
Даже один человек сможет создать прекрасную игру, вам не нужна большая команда. В Unity есть всё для реализации ваших идей, осталось лишь научиться пользоваться движком.
Вот примеры успешных игр, созданных в Unity одним человеком:
Что выбрать для разработки игр
Для тех ребят, кому пока сложно даётся программирование и математика, и для тех, кто просто хочет попробовать, самый доступный вариант — это Roblox.
На Unity выбор обычно падает:
- если над игрой работает небольшая команда — от 1 до 10 человек;
- если это мобильный проект (больше половины того, во что вы играете на телефоне, создано на Unity).
В случае, если предстоит работа над крупным AAA-проектом и с большой командой, выбирают Unreal Engine. Этот движок более производительный, гибкий и выигрывает с точки зрения возможностей графики. Но и требования к мощности компьютера и знаниям пользователя у него намного выше.
Движок Unity менее требователен, и его можно запустить на устройстве, на котором Unreal Engine даже установить не получится.
Требования для старта
Минимальные системные требования к компьютеру для работы в Unity перечислены в официальной документации.
Сама по себе Unity запустится практически на чём угодно, можно выбрать старые или более новые версии Unity. Вопрос только в комфорте работы.
Я не буду приводить официальные системные требования, они очень расплывчаты. Напишу минимальные, по моему личному мнению, требования, которых будет достаточно для комфортной работы.
Система: Windows 10 и выше, обязательно 64bit-архитектура, Mac OS Mojave 10.14+ (Intel editor), Big Sur 11.0 (Apple Silicon Editor), Linux Ubuntu 20.04, Ubuntu 18.04, and CentOS 7.
Процессор: минимум 4-ядерный с частотой выше 2.5 ГГц. Например, Intel Core i3 или Amd Ryzen 3.
Видеокарта: любая с поддержкой DX10 и выше и памятью от 2 Гб.
Оперативная память: 8 Гб и выше.
Чтобы начать работу, нужно установить Unity Hub с официального сайта. После запуска Unity Hub предложит вам зарегистрироваться и скачать движок. Теперь вы готовы знакомиться с Unity: можно искать уроки в интернете и пробовать творить.
Пожалуй, лучшим выбором будет пройти структурированный курс, где уже всё подготовлено для быстрого старта и не нужно собирать информацию по кусочкам со всего интернета: например, курс по Unity от Skysmart Pro.
Подведём итог
Игровой движок Unity — это отличный выбор, чтобы начать свой путь в игровой индустрии. Его огромные возможности и большое комьюнити не дадут вам потеряться. Работая с Unity, вы будете одновременно развиваться с творческой и технической стороны. А ещё вы будете сразу видеть результат выполнения кода, который написали.
Unity3d. Начало работы, практические советы. Рецензия
Доброго времени суток. Данная статья посвящена мультиплатформенному инструменту Unity3d. В статье рассмотрены оптимальные, по моему мнению, способы работы с движком, даны практические советы по эксплуатации и дополнительные (общие) сведения; рассмотрены перспективы развития Unity3d.
Раздел 1. Введение
Что такое Unity3d ?
Unity3d является современным кросс-платформенным движком для создания игр и приложений, разработанный Unity Technologies. С помощью данного движка можно разрабатывать не только приложения для компьютеров, но и для мобильных устройств (например, на базе Android), игровых приставок и других девайсов.
Поговорим немного о характеристиках движка. Во-первых, стоит отметить то, что в среду разработки Unity интегрирован игровой движок, иными словами, вы можете протестировать свою игру не выходя из редактора. Во-вторых, Unity поддерживает импорт огромного количества различных форматов, что позволяет разработчику игры конструировать сами модели в более удобном приложении, а Unity использовать по прямому назначению — разработки продукта. В-третьих, написание сценариев (скриптов) осуществляется на наиболее популярных языках программирования — C# и JavaScript [1].
Таким образом, Unity3d является актуальной платформой, с помощью которой вы можете создавать свои собственные приложения и экспортировать их на различные устройства, будь то мобильный телефон или приставка Nintendo Wii.
Для того чтобы создать свою игру, вам, как минимум, нужно владеть одним из доступных (на Unity) языков программирования: C#, JavaScript или Boo.
Будет прекрасно, если вы владеете, например, 3Ds max’ом, это вам сильно поможет при создании игры. Что касается меня, то мне пришлось освоить 3Ds max на базовом уровне, ибо нигде не мог найти нужную мне модель дома [3]. В любом случае вам понадобится установленный 3Ds max на ваш компьютер, если вы собираетесь импортировать готовые 3D модели. Ибо, в большинстве своем, необходимые модели имеют формат проекта, т.е. необходимо будет зарендерить их в соответствующий для Unity3d формат, например, в *.3DS, и только после этого делать импорт в Unity, в противном случае последний выдаст ошибку.
Раздел 2. Начало работы
Вспомогательная литература
Обратимся к литературе, которая поможет нам изучить Unity3d, а именно, к Unity 3.x Game Development Essentials [2]. Книгу в свободном доступе можно найти в гугле, если вы предпочитаете бесплатный контент.
О чем книга? Пожалуй, обо всем, что только нужно для создания полноценной игры. Настоятельно рекомендую приобрести данную книгу и изучить самостоятельно.
Пару слов об игре и содержании книги. Ваш игрок оказывается на необитаемом острове, ему необходимо спастись, для этого он выполняет различные задания и, будем надеяться, спасается. Игру можно пройти за пару минут, однако создание игры занимает далеко не пару минут, даже не пару часов, пожалуй.
Книга содержит очень подробное руководство по созданию игры «с нуля». В ней описано многое, что вам, скорее всего, понадобится для создания вашей игры.
Книга написана на английском языке; тем, кто не знает английский, будет не сложно интуитивно догадаться о чем идет речь, ибо написана книга без особых премудростей.
На это стоит обратить внимание
NB!
Приведу несколько советов при создании игры в Unity3d.
º Коллайдеры
Что это такое — коллайдер? Коллайдер — это область пространства, при взаимодействии с которой выполняются те или иные скрипты, действия. Чтобы лучше понять что это такое, представьте, что вы подходите к автоматически открывающимся дверям универмага. За пару метров от дверей, срабатывает датчик и двери распахиваются перед вами, но если вы пройдете за три метра, то ничего не произойдет. Как раз та зона, в которой действует датчик движения, отвечающий за открывание дверей, и есть коллайдер. Вы входите в зону — двери открываются, выходите из зоны — и датчик уже никак не будет реагировать на ваше присутствие. Точно так же и в игре.
Так вот, о коллайдерах. Предположим, мы импортировали в наш проект автомобиль и хотим сгенерировать для него коллайдер. Можно сгенерировать автоматически коллайдер для всего автомобиля, но тогда для каждой детали автомобиля — фары, уплотнителя, зеркала, покрышки — будет сгенерирован свой коллайдер.
Это абсолютно не оптимально. Безусловно, нам не нужно генерировать столь большое количество коллайдеров, достаточно ограничиться одним!
Обратите внимание, что это не тонкость. Стараться сэкономить память нужно везде. У вас есть какое-то место в игре, куда игрок не сможет попасть? Не генерируйте никакие коллайдеры для этого места вообще. У вас есть дверь, которую вы импортировали в проект из 3Ds max’а? Небось, она очень хорошо прорисована (сам сталкивался с тем, что у двери даже шурупы были прорисованы отдельным объектом), значит, создайте один box-коллайдер для всей двери — вы сэкономите много памяти! Поверьте, что вам эта сэкономленная память еще очень и очень пригодится.
º Оптимальная работа со сценами
Поговорим об оптимизации сцен, о самих же сценах будет речь вестись далее.
Представьте следующую ситуацию: у нас есть сцена «home» — когда игрок находится в здании и сцена «street» — когда игрок выходит из здания на улицу. Естественно, из второй сцены мы можем видеть дом, т.е. часть первой сцены, и наоборот (если, конечно, у здания есть окна). В таком случае оптимально следующее построение сцен. В первой сцене все, что касается улицы (т.е. того места, куда мы не можем попасть без перехода на другую сцену) надо максимально упростить. Иными словами, нам нужно оставить только внешний вид вида из окна, а всю начинку — распотрошить. Т.е. все коллайдеры удалить, разрешение и т.п. свести к минимуму. Действительно, зачем процессору напрягаться с обработкой той местности, которую мы не можем посетить? Аналогичным образом поступаем со второй сценой («street»). В данном случае мы можем вообще все удалить из дома и оставить только его «коробку».
Вы хотите создать minimap? Пожалуйста, только избавьтесь от всех коллайдеров и снизьте разрешение, в таком случае ваша игра будет оптимальна.
Именно таким образом работа со сценами становится оптимальной. Еще раз отмечу, что это не тонкости, это серьезные вещи, которые требуют внимания создателя.
Сцены
Готовая игра — это набор сцен, соединенных между собой (точно так же, как и жизнь — это набор дней). Об оптимальном проектировании игры мы сейчас и поговорим.
Прежде чем создать свой проект — подумайте, что он должен в себя включать (какие сцены). Составьте список сцен (на листочке), обдумайте, что каждая сцена будет в себе содержать. Теперь постарайтесь каждую сцену разбить на подсцены, чем больше их будет, тем легче будет вашему ЦП. Конечно, не стоит перебарщивать с количеством сцен. Предположим, что ваш игрок находится в здании и из него никогда не выходит, в здании есть, например, пару этажей, крыша, а на каждом этаже имеется три комнаты. В данном случае, по моему мнению, было бы оптимально «разбить» здание на две сцены — два этажа и крыша. Дробление же каждого этажа на сцены с комнатами — не оптимально. Это просто не нужно, если каждая из комнат слабо загружена. Иными словами, надо грамотно расходовать память процессора, но и забывать о получении удовольствия от игры тоже не стоит.
Отладка
Помните, что хороший создатель должен учитывать то, что его игра, либо приложение, будет использоваться на различных ЭВМ, а это означает, что свой контент необходимо отладить так, чтобы он мог использоваться на различных устройствах. Самый очевидный и важный момент отладки — оптимизация приложения под различные разрешения экранов. Это важный момент и создатель игры обязательно должен обратить на него свое внимание, в противном случае, результатом своей работы сможет быть доволен только он один.
Структурирование
При конструировании игры важно помнить о структурировании данных — немаловажном аспекте. Имеется ввиду, что все должно быть на своем месте. Создаете скрипты? — создайте папку для скриптов, там и храните их, с большой вероятностью, у вас будет не один скрипт, разбрасывать их по всему проекту не есть хорошо, сами потом будете мучиться. По своему опыту могу сказать, что вам точно понадобится создать папки со скриптами, звуковыми файлами, с GUI текстурами, материалами, анимациями, быть может, префабами и собственными моделями (импортированные из 3Ds max’а объекты лучше хранить именно в последней папке, дабы не разбрасывать все модели по проекту в хаотичном порядке). Когда вы создаете тот или иной скрипт, помните о том, что название переменных, классов и т.п. должны говорить все сами за себя. Если вы хотите создать скрипт для инвентаря (поднять предмет, использовать предмет), то лучше все скрипты однообразных действий (например, поднятия) начинать с ключевого слова, например: Catch; Use, в таком случае вам будет легче ориентироваться в проекте, да и выглядит так намного симпатичнее.
Раздел 3. Практические советы
Помните золотое правило: хорошая программа не та, которая написана тяп-ляп и отлажена до предела, хорошая программа та, которая пишется сразу правильно и требует минимальных «затрат» на отладку. Если вы будете пользоваться этим правилом, то у вас все будет намного лучше чем у тех, кто этим правилом не пользуется.
Написание скриптов
Увы, этот подраздел будет совсем короткий. Просто старайтесь сначала представить то, что вы хотите реализовать, затем попробуйте описать словами алгоритм, а далее — преобразовать слова в работающий код. Используя книгу, о которой речь шла выше, вам навряд ли придется сильно потеть над разработкой кодов и других вещей, повторюсь, что в книге описано практически все, что только может понадобиться, а все, что не описано — легко додумать самому.
Видеоуроки
- www.youtube.com/user/4GameFree
- www.youtube.com/user/FlightDreamStudio
- www.youtube.com/user/3DBuzz
К счастью, программный продукт Unity обновляется постоянно, но, увы, видеоуроки сами это делать не могут. Получается так, что огромное количество видеороликов, актуальных год назад, теряют свою актуальность и становятся, попросту, бесполезными.
1 — здесь вы всегда найдете актуальные видеоуроки, понятное объяснение, детальный разбор скриптов и всех действий. Лучше этого канала пока что ничего не нашел. Если вы не имеете вообще никакого представления о создании игры, то вам однозначно нужно заглянуть на данный канал. 2 — серьезная команда, видеоуроков только, жаль, меньше, чем у 1. 3 — есть полезные вещи, жаль только, что видеоуроки стали почти неактуальными.
Устранение ошибок
Unity3d — такой движок, что если у вас имеются ошибки в написании скриптов, то игра ваша не запустится. Если же нет явных ошибок, то игра запускается, если что-то идет не так, то консоль вам об этом обязательно сообщит.
Это предупреждения, они просто говорят вам о возможных недочетах, недоработках:
Это ошибки, если такие имеются, то игра не запустится:
Раздел 4. Завершение работы
Выводы
Unity3d — очень гибкий движок, предоставляющий большую свободу действий пользователю. Чтобы упростить жизнь разработчику и потребителю, можно предпринять некоторые шаги для оптимизации своего проекта.
Теперь мы, с заложенной базой знаний, можем спокойно приступать к созданию своего ультра-популярного приложения!
Публикация игры
Свою готовую игру можно опубликовать на одном из игровых сервисов, например, на www.kongregate.com
*Оптимизация
Если вы читаете данный подраздел, то либо вам просто интересно, что здесь написано, либо вы не прочитали NB! из раздела 2. Будем надеяться, что вы относитесь к первой категории. В данном подразделе еще раз хочется отметить то, что нужно сразу писать игру оптимальной, а не писать ее хоть как-то, и только затем отлаживать — это гиблый путь и поступать так не стоит. По поводу оптимизации — еще раз обратитесь ко второму разделу.
Раздел 5. Дополнительная информация
Теория графики
Практика без теории бывает не очень уж и интересной, поэтому советую ознакомиться с теорией компьютерной графики. www.intuit.ru/department/graphics/graphalg/lit.html
Протестировать свои теоретические знания можно тут www.intuit.ru/department/graphics/graphalg
Полезные ссылки
- www.4game-free.com — сайт ребят, которые делают отличные видеоуроки
- www.youtube.com/watch?v=9Af617SEQZQ&list=SPEF925EF9F86651DD&index=1&feature=plpp_video — сам толком не разобрался с каналом, но вроде бы очень полезный
- www.hongkiat.com/blog/60-excellent-free-3d-model-websites — здесь можно найти ссылки на 3D модели
- www.youtube.com/user/AlexShebanov/videos?flow=grid&view=0 — работа с 3Ds max’ом
- www.youtube.com/user/khproton/videos?flow=grid&view=0 — с помощью данного канала постиг азы 3Ds max’а, рекомендую к ознакомлению
- www.youtube.com/user/Aevideoss/videos?flow=grid&view=0 — можно найти полезные видео о 3Ds max’е
Мнение
Unity3d действительно мощный движок [4], с помощью которого можно создавать настоящие, работающие игры. Однако, как и у любого программного продукта, у него есть, по моему мнению, свои недостатки.
º 2D графика
Считаю, что это самый главный провал Unity. Полное отсутствие нормальной, адекватной работы с 2D графикой. Имеется ввиду создание 2D-игр. Создать такую игру можно, но придется сильно напрягаться и извращаться. Если разработчики Unity смогут доработать этот недостаток, то, это будет очень и очень хорошо.
º Префабы
Хотелось бы видеть больше префабов, каких-то готовых вещей, объектов, например, домов, предметов элементарного интерьера — столов, стульев. Да, это все есть в магазине Unity[5], но, увы, многие вещи там платны, а бесплатные продукты лишь изредка достойны внимания. Отдельный разговор про 3rd person controller — извините, но это просто неприемлемо:
º Оптимизация изображения
Хотелось бы, чтобы работа с оптимизацией изображения под различные разрешения экрана была проще. Ведь достаточно чуть-чуть поработать с преобразованием координат и тогда не надо будет задумываться о том, что надо вычислять размеры, координаты через размер (разрешение) экрана.
Источники информации
Идейный вдохновитель, преподаватель и наставник
— Григорьев Д. А., доцент кафедры Информатики СПбГУ Математико-Механического факультета.
Что касается меня, обучаюсь на втором курсе МАТ-МЕХа, прохожу обучение по предмету Компьютерная графика (изучаем теорию графики и проектирование игр на платформе Unity3d).