Найти в Дзене
Журкин

Сцены в Unity

Unity. Совиные думки от журавля.
Почему возникла эта статья? Я, Журкин Никита Владимирович, автор этого текста, хочу разрабатывать игры. Чтобы не лениться и каждый день двигаться к своей цели, я выпускаю такие статьи, в которых объясняю на максимально простом уровне о изученном мной материале в сфере разработок игр. Таким образом весь материал будет надежно закреплен в моей голове, и, в конце концов, я стану профессионалом. Свой путь я начинаю с Unity и в будущем планирую именно с помощью него воплощать свои задумки. Буду очень рад, если таким образом я помогу не только вопреки своей человеческой природе ленивости достичь своих целей, но и помочь таким же новичкам, как я на данный момент. Так же хочу добавить, то, что у меня нет 7-ми пядей во лбу. Я не считаю себя гением. Я простой мальчишка, который хочет себя реализовать и которым могли бы гордиться его родители, а в далеком будущем хвастаться им его потомки. 27.12.2023 Почему статья именно такая, какая она есть - https://vk.com/zh
Оглавление

Unity. Совиные думки от журавля.

Почему возникла эта статья?

Я, Журкин Никита Владимирович, автор этого текста, хочу разрабатывать игры. Чтобы не лениться и каждый день двигаться к своей цели, я выпускаю такие статьи, в которых объясняю на максимально простом уровне о изученном мной материале в сфере разработок игр. Таким образом весь материал будет надежно закреплен в моей голове, и, в конце концов, я стану профессионалом. Свой путь я начинаю с Unity и в будущем планирую именно с помощью него воплощать свои задумки. Буду очень рад, если таким образом я помогу не только вопреки своей человеческой природе ленивости достичь своих целей, но и помочь таким же новичкам, как я на данный момент. Так же хочу добавить, то, что у меня нет 7-ми пядей во лбу. Я не считаю себя гением. Я простой мальчишка, который хочет себя реализовать и которым могли бы гордиться его родители, а в далеком будущем хвастаться им его потомки. 27.12.2023

Почему статья именно такая, какая она есть - https://vk.com/zhurk1n?w=wall-180431430_291 Моя страница ВК - https://vk.com/nikitosich2003 Мое сообщество ВК - https://vk.com/zhurk1n

Цель

1) Должна получится коллекция статей, в которых максимально понятно и простым языком будет описана работа с Unity и С#. Термины будут использоваться, но для того, чтобы читатель был в курсе о их существовании.

2) В ходе составления статей я сам закреплю весь материал, о котором будет идти речь на очень хорошем уровне. Если о чем-то рассказывать, то это должно интуитивно понятно мне самому.
Думаю, этого достаточно.

Для какой аудитории?

Данные статьи предназначены для подписчиков моего сообщества. В нем большая часть людей можно описать словом «пользователь». Пользуются ИТ (Информационными Технологиями) и не задумываются о том, как это работает.

Статьи будут сейчас и будущем нацелены на такую аудиторию, чтобы им было интересно и понятно. В ходе их чтения простые пользователи встретят много терминов и моментов из разработки ПО (Программного обеспечения). Этим самым они смогут подтянуть свои познания в этой сфере.

В конце каждой статьи можете найти словарь сокращений и их обозначений. Полезные ссылки и материалы для дальнейшего своего изучения!

Начинаем!

Перед дальнейшей реализацией своей игры нужно твердо решить том, какой будет ее архитектура. А именно как лучше реализовать окна в игре и разделы с инвентарем, открытием кейсов и тд. Поэтому сейчас будем говорить о сценах в Unity.

Что такое сцена?

Сцена в Unity - это фундаментальный элемент твоего проекта, играющий ключевую роль в построении твоей игре. Можно рассмотреть сцену как отдельный уровень игры, виртуальный мир, в котором будут происходить основные события:

Содержимое сцены: В ней расположено всё, что игрок может видеть и с чем взаимодействовать: объекты окружения, игровые персонажи, интерфейс, освещение, звуковые эффекты, физические свойства - всё то, из чего складывается геймплей и атмосфера.

Независимость сцен: Одна сцена может существовать автономно, но обычно их объединяют в проект, организуя переходы между ними. Вы можете создать отдельные сцены для уровней, меню, заставок и т.д.

Редактирование сцены: В редакторе Unity вы можете визуально размещать объекты, настраивать их свойства, задавать освещение, камеры, физику и прочие параметры, создавая желаемый игровой опыт.

Иерархия и префабы: Внутри сцены объекты организованы в иерархию, позволяющую управлять их взаимоотношениями. Префабы, повторно используемые объекты, упрощают создание однотипных элементов вроде стен, деревьев или врагов.

Что такое объекты?

GameObject (Объект) – строительный блок из которых мы будем делать игру. Компоненты – то, что характеризует наши строительные объекты и делает их тем кем они должны быть в нашей игре.

Что такое префабы?

Префаб — это специальный тип GameObject в Unity, содержащий в себе полностью настроенный объект со всеми его компонентами, свойствами и значениями. Этот объект можно многократно использовать и размещать в своей сцене, не создавая каждый раз с нуля.

Они имеют большое влияние на размер твоей игры. Большое количество сцен в Unity может повлиять на размер игры в нескольких аспектах:

Размер файлов игры: Каждая сцена в Unity хранится в отдельном файле. Чем больше сцен в игре, тем больше будет размер файлов игры. Это может привести к увеличению времени загрузки игры и потреблению большего количества памяти.

Производительность игры: Unity загружает сцены во время игры. Чем больше сцен в игре, тем больше будет времени, необходимого для загрузки игры. Это может привести к снижению производительности игры, особенно на устройствах с ограниченными ресурсами.

Оптимизация игры: Оптимизация игры - это процесс повышения производительности игры за счет уменьшения ее размера и уменьшения требований к ресурсам. Большое количество сцен может затруднить оптимизацию игры, поскольку может потребоваться оптимизировать каждую сцену отдельно.

Но при этом разбиение на сцены может быть полезным!

Производительность: если вы загружаете все объекты и ресурсы в одной сцене, то это может повлиять на производительность игры. Разделение на несколько сцен может уменьшить количество ресурсов, которые должны быть загружены в память, что может повысить производительность.

Удобство разработки: если вы работаете с одной большой сценой, то может быть сложнее управлять объектами и ресурсами. Разделение на несколько сцен может упростить разработку и управление проектом.

Размер игры: если вы хотите, чтобы ваша игра занимала меньше места, то лучше сделать несколько сцен, вместо одной большой

В Desktop приложениях используется память устройства, а в Web?

Браузерные игры выполняются в браузере, а браузер загружает файлы игры в веб-сервера. Его возможности ограничены и рассчитаны не только на твою игру. Так же на этой основе производительность игры зависит от скорости интернета. Маленькие или небольшое количество файлов даже с плохим соединением загрузятся быстро.

Desktop приложения (или приложения для настольных компьютеров) - это программы, которые устанавливаются и работают на персональных компьютерах или ноутбуках. В отличие от web-приложений, которые запускаются в браузере, desktop приложения не зависят от интернет-соединения и работают непосредственно на самом устройстве.

Я нацелился работать на платформу Яндекс Игры. По критерию этой платформы игры необходимо делать не больше 100 Мб при загрузке архивом. Часть 1 пункт 21 требования к игре.

Скриншот из мануала по Яндекс Играм
Скриншот из мануала по Яндекс Играм

Так как же все-таки стоит действовать?

“Все есть лекарство и все есть яд” Парацельс.
-3

Это я к чему. Сцены нужно использовать разумно. Их использование стоит на основе работы памяти устройства, на котором будет работать игра.

  1. Если у вас одна сцена с большим количеством объектов, то в память будет одновременно загружаться много объектов этой сцены.
Но как делают игры с открытым миром?

Игру с открытым миром не будут делать для Web. Оптимизация в виде разбиения сцен не единственный метод оптимизации. Например можно не выводить на экран объекты, которые не попадают в зону экрана игрока, или отключать у них ненужные компоненты (например анимацию, которую игрок не видит) и так далее. Оптимизация под Desktop устройства другой разговор.

Оптимизация в целом большой вопрос, решение которого зависит от типа твоего проекта.
  1. Если у тебя куча бесполезных сцен это тоже вредно. Ты просто так гоняешь загрузку и выгрузку памяти под твою игру. Это тоже влияет на производительность!
  2. Тщательней продумай архитектуру игры. Порядок в проекте игры поможет тебе самому же.

Что такое архитектура?

Архитектура - это набор принципов и решений, которые определяют структуру и организацию игры. Она определяет, как игра будет работать, как она будет взаимодействовать с пользователем и как она будет выглядеть.

Простыми словами это палка с двумя концами. Одна сцена со всем, что есть в твоей игре – большой файл, который загружает кучу данных. Кучу мелких сцен будет неудобно редактировать и так же можно упереться в проблему ограниченных ресурсов.

Если будет информация которой можно дополнить статью пишите мне лично или в комментариях. На этом у меня все.

Пылайте сердцем, друзья.

Источники

1) https://yandex.ru/dev/games/doc/ru/concepts/requirements

2) https://docs.unity3d.com/2023.3/Documentation/Manual/

Словарь

Сцена в Unity - это фундаментальный элемент твоего проекта, играющий ключевую роль в построении твоей игре.

GameObject (Объект) – строительный блок из которых мы будем делать игру. Компоненты – то, что характеризует наши строительные объекты и делает их тем кем они должны быть в нашей игре.

Префаб — это специальный тип GameObject в Unity, содержащий в себе полностью настроенный объект со всеми его компонентами, свойствами и значениями. Этот объект можно многократно использовать и размещать в своей сцене, не создавая каждый раз с нуля.

Desktop приложения (или приложения для настольных компьютеров) - это программы, которые устанавливаются и работают на персональных компьютерах или ноутбуках. В отличие от web-приложений, которые запускаются в браузере, desktop приложения не зависят от интернет-соединения и работают непосредственно на самом устройстве.

Архитектура - это набор принципов и решений, которые определяют структуру и организацию игры. Она определяет, как игра будет работать, как она будет взаимодействовать с пользователем и как она будет выглядеть.