Серия «Делаю игру на Unity3d»

3

Как ускорить игру: Объектный пул. Обзор системы. Делаю 3D RPG в Unity (Эпизод 14)

Игровые проекты становятся всё более требовательными, а производительность — одним из главных факторов успеха.

⚙️ В этом видео мы расскажем о системе объекта пула (Game object pool) — инструменте, который позволяет ускорить игру, предотвратить падения FPS и оптимизировать управление ресурсами.

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

🌟 Что вы узнаете в этом видео?

  • Что такое объектный пул и зачем он нужен?

  • Почему он не теряет актуальности в 2025 году?

  • Как объектный пул позволяет эффективно управлять игровыми объектами (GameObject, Addressables)?

  • Как работает система: инсталлер, фасад, менеджеры, контроллеры и методы расширения - Какие примеры применения объекта пула есть в нашей игре: система импактов, UI...

💬 Напишите в комментариях: как вы оптимизируете свои проекты в Unity? Делитесь своим опытом с сообществом!

Большая просьба видео на ютубе смотреть полностью, чтобы не ломать алгоритмы ютуба.

В VK смотрите, как хотите - там нет никаких алгоритмов)

Спасибо!

youtube:

VK:

Показать полностью 2
3

Управляй ресурсами: Addressables избавляют от проблем. Делаю 3D RPG в Unity (Эпизод 13)

⚡ В этом видео вы узнаете всё об Addressables: чем они отличаются от Resources и Asset Bundles, как их настроить с нуля и эффективно использовать в вашем проекте.

🔧 Мы ответим на вопросы:

  • Как организовать управление ресурсами в игре?

  • Чем Addressables отличаются от Resources и Asset Bundles?

  • Какие проблемы могут возникнуть при их использовании?

  • Как настроить Addressables для динамической загрузки, асинхронной работы?

В этом видео вы:

1️⃣ Узнаете, как работает Addressables и в чём их преимущества, такие как:

  • Динамическая загрузка ресурсов.

  • Автоматическое управление памятью и предотвращение утечек.

  • Удалённая загрузка контента для обновлений и DLC.

2️⃣ Научитесь устанавливать и конфигурировать Addressables в Unity с помощью пошагового руководства.

3️⃣ Разберёте ошибки, которых следует избегать, и узнаете, как безопасно управлять асинхронными загрузками и кэшем.

🎥 Не забудьте досмотреть до конца — я не только расскажу, но и покажу, как настроить и оптимизировать Addressables на реальных примерах.

Лайк и подписка помогут развитию проекта, а ваши комментарии о вашем опыте с ресурсами в Unity помогут другим разработчикам! 😊

Большая просьба видео на ютубе смотреть полностью, чтобы не ломать алгоритмы ютуба.

В VK смотрите, как хотите - там нет никаких алгоритмов)

Спасибо!

youtube:

VK:

Показать полностью 2
6

Инициализация игровых модулей. Делаю 3D RPG в Unity (Эпизод 12)

✅ Правильная инициализация игры — спасение от хаоса!

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

Вы узнаете:

  • 🚀 Зачем нужна единая точка входа для инициализации всех игровых модулей.

  • 🔄 Как правильно настроить асинхронную инициализацию, чтобы избежать лагов и ошибок.

  • 🔗 Какие проблемы вызывают зависимости между модулями и как их решать.

  • 📂 Как грамотно организовать загрузку бандлов, кеширование, работу модулей рендера и всё остальное.

🛠 Разберём реальный пример на коде и покажем, как внедрить работающую систему инициализации для вашего проекта.

⚠️ Не рискуйте стабильностью своей игры! Правильная система инициализации — это то, что спасёт вас от хаоса.

🔧 Полезные ресурсы:

Большая просьба видео на ютубе смотреть полностью, чтобы не ломать алгоритмы ютуба.

В VK смотрите, как хотите - там нет никаких алгоритмов)

Спасибо!

Youtube:

VK:

Как всегда приглашаю всех желающих в комментарии!

Показать полностью 2
9

Делаю игру на Unity3d. Эпизод 11: Трава и Shader Graph

Здравствуйте, дорогие Пикабушники и Пикабушницы! 👋

Я сделал шейдер для травы в Unity с помощью Shader Graph.

Делаю игру на Unity3d. Эпизод 11: Трава и Shader Graph

А что такое шейдеры?

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

Что такое Shader Graph?

Shader Graph — это инструмент Unity, который позволяет создавать шейдеры через визуальный интерфейс. Вместо написания кода мы соединяем узлы в графе и задаём их поведение. Это идеальный инструмент для тех, кто хочет создавать крутые визуальные эффекты, но не хочет углубляться в программирование шейдеров на языках вроде HLSL.

О шейдере

В своём проекте я сделал шейдер травы, и вот несколько его особенностей:

  • 🌬 Ветер — трава красиво колышется на ветру благодаря текстуре шума, которая задаёт направление и интенсивность движения.

  • 🚶‍♂️ Реакция на персонажей — когда персонаж идёт по траве, она расступается под его ногами, создавая эффект присутствия.

  • 🎨 Изменение цвета — шейдер плавно меняет цвет травы в зависимости от расстояния до камеры. Ближняя трава выглядит ярче, более насыщенной по цвету, а дальняя принимает приглушённые оттенки. Это помогает создать глубину сцены.

  • 🛠 Интерактивные параметры — в Shader Graph я настроил множество параметров, которые можно изменять прямо в редакторе: силу ветра, цвет, интенсивность реакции на персонажей и многое другое.

В видео я показываю сам граф шейдера и демонстрирую, как можно настраивать его параметры для достижения разных эффектов.

Для чего всё это?

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

Если вам интересно посмотреть, как всё это выглядит, или вы думали о создании подобных шейдеров, заходите в видео на ютубе:

Или в ВК:

Буду рад вашему мнению, вопросам или идеям! Спасибо за внимание! 😊

Показать полностью 2
7

Делаю игру на Unity3d. Эпизод 10: Level of detail

Здравствуйте, дорогие Пикабушники и Пикабушницы! 👋

Я занимаюсь разработкой 3D action RPG в открытом мире на Unity. И в процессе разработки такой игры можно столкнуться с кучей проблем. Одна из самых больших — это производительность. Когда у тебя в кадре сотни объектов, от гигантских замков до мелких камешков, твой FPS начинает плакать в уголке. Знакомо? Одна из техник, позволяющих решить эту проблему - LOD.

Для тех, кто не в теме: LOD (Level of Detail) — это штука, которая позволяет объектам в игре подменять свои модели в зависимости от расстояния до игрока. Чем дальше объект — тем проще его модель. Например, когда герой смотрит на дерево в 100 метрах, это уже не дерево с 10к полигонов, а «китайская копия» из 300. А если дерево совсем далеко, то это вообще плоская картинка (ну или вообще ничего, кто его разглядит?).

Кстати, знаете, что самое классное? Игрок этого не замечает. Если настроить всё грамотно, подмена моделей происходит настолько плавно, что игроку никогда не придёт в голову, что на экране происходят подобные чудеса обмана.

Почему это правда важно для RPG в открытом мире?
В моём случае это не просто способ "немного ускорить игру". Если включать в расчет весь мир — леса, горы, здания, NPC — то без LOD такую игру просто невозможно сделать комфортной. Да и не все игроки будут запускать мою игру на золотой RTX 5090, а хочется, чтобы поиграли все.

Я записал видео, где показываю, как работать с Unity LOD Group и новой системой Mesh LOD!

А пока напишите, сталкивались ли вы с проблемами оптимизации в своих проектах? Или, может, у вас есть свои трюки для разгрузки сцены? Делитесь в комментариях! 🚀

Youtube:

VK:

Показать полностью 2
4

Делаю игру на Unity3d. Эпизод 9: ComfyUI, AI генерация изображений, 3д меша, текстур и анимирование

Здравствуйте, дорогие Пикабушники и Пикабушницы!

Темой "пятничного моё" будет вышеупомянутая AI генерация. И генерировать будем в ComfyUI.

ComfyUI — это современный и модульный графический интерфейс для работы с нейросетями Stable Diffusion, разработанный для максимально простого и гибкого взаимодействия с моделью. Это своего рода узловой интерфейс (node-based GUI), в котором пользователи могут визуально создавать сложные операции по обработке изображений или их генерации с помощью нейронных сетей.

Основные особенности ComfyUI:

  1. Узловой подход (Node-based UI): Пользователи работают с блоками (или узлами), которые представляют различные функции. Эти узлы можно соединять между собой, создавая сложные графы для обработки изображений. Узлы могут включать:

    • Настройку параметров генерации.

    • Применение различных фильтров и эффектов.

    • Указание моделей и разверток.

      Такой подход намного удобнее классических интерфейсов, где приходится вручную прописывать параметры в строках команд.

Ноды, мои ноды

Ноды, мои ноды

2. Поддержка Stable Diffusion: ComfyUI разработан специально для взаимодействия с моделями Stable Diffusion, включая генерацию изображений, модификацию и эксплуатацию возможностей обработки.

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

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

5. Поддержка сложных сценариев работы: В ComfyUI можно совмещать множество операций генерации и обработки в рамках одной цепочки:

  • Инпут (текстовый запрос, изображение).

  • Работа с различными моделями.

  • Добавление эффектов (например, инверсии, upscale или фильтрации).

  • Вывод готового изображения.

6. Интеграции с популярными библиотеками: ComfyUI поддерживает интеграцию с различными моделями и компонентами, используемыми средствами генерации изображений. Она часто обновляется, поддерживая последние версии архива моделей Stable Diffusion.

А пример создания персонажа под ключ в моем новом видео:

А потом приглашаю в комментарии - задавайте вопросы по видео и просто по юнити!

Приятного просмотра!

Показать полностью 1 1
7

Делаю игру на Unity3d. Эпизод 8: Compute shaders

Здравствуйте, дорогие Пикабушники и Пикабушницы!

Сегодня поговорим о вычислительных шейдерах.

Вычислительные шейдеры (Compute Shaders) — это специальные программы, которые исполняются на графическом процессоре (GPU) и предназначены для выполнения произвольных вычислений, не связанных напрямую с отрисовкой кадров. В отличие от традиционных шейдеров (вершинных, фрагментных, геометрических), вычислительные шейдеры запускаются отдельно от графического конвейера (pipeline) и обеспечивают выполнение мощных параллельных вычислений.

Основное преимущество вычислительных шейдеров связано с тем, что GPU обладает огромным количеством вычислительных ядер, способных выполнять параллельные задачи намного быстрее, чем CPU.

Для чего нужны вычислительные шейдеры?

Они применяются в различных задачах, где требуется высокая производительность и возможность распараллеливания. Рассмотрим основные сферы применения:

1. Компьютерная графика:

  • Генерация текстур: Например, процедурное создание текстур (в реальном времени).

  • Симуляция частиц и физические эффекты: Просчёт поведения частиц, разрушений, тканевой физики и других эффектов.

  • Обработка освещения: Такие техники, как глобальное освещение или расчёт шейдинга, могут выполняться с использованием вычислительных шейдеров.

  • Обработка данных для рендеринга:

    • Сортировка объектов.

    • Быстрые фильтрации (например, Gaussian Blur, эффекты пост-обработки).

2. Физические симуляции:

GPU способен рассчитывать реалистичное поведение объектов:

  • Симуляция жидкостей (например, с помощью решателей уравнений Навье-Стокса).

  • Сжатия объектов (метод конечных элементов).

  • Расчёт мягких тел (soft body physics).

3. Машинное обучение и нейросети:

Вычислительные шейдеры могут обрабатывать данные для обучения нейронных сетей и выполнения ускоренных операций (например, свёртки в CNN).

4. Обработка больших массивов данных:

  • Выполнение сортировки данных (например, алгоритм Radix Sort).

  • Построение физико-математических симуляций — от сложных систем частиц до устойчивой к деформациям геометрии.

  • Обработка 2D/3D массивов: Волновые симуляции, обработка многомерных точек данных.

5. Симуляция природных явлений:

  • Вода, дым, снег — GPU выполняет симуляцию частиц для достижения реалистичного эффекта.

  • Облачные эффекты (например, расчет шейдерного шума для облаков).

6. Процедурная генерация:

Используются для генерации 3D-объектов, ландшафтов, текстур и анимаций. Например:

  • Gelände (ландшафт).

  • Бесшовные шумовые текстуры (Perlin Noise, Simplex Noise).

Ну а я покажу, как вычислительные шейдеры можно использовать в игре

А потом приглашаю в комментарии - задавайте вопросы по видео и просто по юнити!

Приятного просмотра!

Показать полностью 1
13

Делаю игру на Unity3d. Эпизод 7: Дерево поведения

Здравствуйте, дорогие Пикабушники и Пикабушницы!

Сегодня мы посмотрим, как выглядит дерево поведения!

Ведь посмотрим, да?

Ведь посмотрим, да?

Использование дерева поведения требует прикрепления к игровому объекту специального компонента - BehaviourTreeComponent.

Ничего лишнего

Ничего лишнего

В компоненте указывается только конфиг с настройками дерева. Конфиг у нас в виде ScriptableObject и настройки всех нод дерева тоже выполнены в виде ScriptableObject, но уже вложенных.

Двойным кликом по конфигу открываем его редактор. В левой части располагается инспектор, в котором будут отображаться параметры узлов. А в правой части поле для визуального редактирования дерева через graph api.

Есть несколько типов нод - корневая, составная (параллельная, выборочная, последовательная), условная и действие (состояние). Все выделено особым цветом для удобства. При клике на ноду видим ее параметры.

Красота!

Красота!

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

Зеленым выделены активные узлы

Зеленым выделены активные узлы

Система получилось достаточно гибкая и легкая. 500 юнитов с деревьями поведения кушают 2-3 мс процессорного времени. У меня в игре не будет замесов между армиями, состоящими из сотен юнитов, плюс будут дальнейшие оптимизации при масштабировании, так что определенный запас производительности я себе обеспечил.

Подробности, как всегда, в полном видео на моем канале

А потом приглашаю в комментарии - задавайте вопросы по видео и просто по юнити!

Приятного просмотра!

Показать полностью 6 1
Отличная работа, все прочитано!