Game Development | YeaHub
374 subscribers
152 photos
192 videos
531 links
Теория, подготовка к интервью и курсы для Game Dev разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #UnrealEng
🤔 Напишите С++ класс, который наследуется от AActor и реализует простую функцию Тіск.

💬 Кратко:
Чтобы создать С++ класс, который наследуется от AActor и реализует функцию Тісk, подключите необходимые заголовочные файлы, создайте класс, реализуйте конструктор и переопределите функцию Tick, добавив необходимое поведение.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
🤯 Урок по созданию кинематографичных сцен в UE5.6

Argentum Studio опубликовала новый обучающий материал по рендерингу в Unreal Engine 5.6.

Технический директор студии Филипп Балаян разбирает Motion Blur, Warm Up Frames, Shutter Angle, Movie Render Graph и другие важные параметры, помогая художникам углубить навыки и избежать распространённых ошибок.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
🥄 Pioneer Games представила Pioneer Mass Strategy System — плагин для Unreal Engine 5, позволяющий отображать до 10 000 управляемых юнитов на экране

Инструмент создан для стратегий и RTS-игр, поддерживает выбор и перемещение юнитов по карте, их обход препятствий и взаимодействие друг с другом.

Версия 2.0 добавила Instanced Static Mesh, динамическую систему LOD, поддержку листвы с навигационной сеткой, вертексную анимацию и свободную камеру.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #UnrealEng
🤔 Объясните разницу между Level Blueprints и Actor Blueprints.

💬 Кратко:
Level Blueprints используются для создания логики, специфичной для уровня, а Actor Blueprints определяют поведение и свойства отдельных актеров. Level Blueprints управляют логикой на уровне, а Actor Blueprints — на уровне обьектов.

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Surface Forge — инструмент для покраски поверхностей в UE5

Инструмент поддерживает три настраиваемых слоя с переходами по высоте, что обеспечивает естественное смешивание материалов.

Shader-система совместима с Nanite displacement, RGB paint-слоями, трипланарным маппингом и другими технологиями, а встроенный спавнер декалей помогает добиться фотореалистичных результатов.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
🥱 Разработчик инди-игры Goblintown: Really Hard Driving Game Ray Epsilon показал новое демо с ордами гоблинов

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
2
#Собес #git
🤔 Перечислите команды для удаления ветки git

💬 Кратко:
Для удаления локальной ветки:
git branch -d ‹ branch_name>

Если ветка содержит незавершённые изменения:
git branch -D ‹ branch_name>

Для удаления удалённой ветки:
git push origin --delete ‹branch_name>


📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Media is too big
VIEW IN TELEGRAM
#полезное
😵‍💫 Туманная японская улица, созданная в UE5 художником Malek Mansour

Сцена передаёт атмосферу дождливой улицы с туманом, детализированными проводами и проработанным освещением.

Для подготовки ассетов использовались Maya, Substance 3D Designer и Substance 3D Painter, а итоговый результат в UE5 демонстрирует кинематографичное качество окружения.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Что делает команда git stash?

💬 Кратко:
Команда git stash сохраняет текущие незавершённые изменения в специальное место (стек), чтобы вы могли переключиться на другую ветку или выполнить другие действия. Эти изменения можно позже восстановить с ПОМОЩЬЮ git stash apply или git stash pop .

📌 Полный разбор + примеры использования — на платформе:
👉
Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #template #generic_programming #data_type
🤔 Что такое шаблон в C++?

💬 Кратко:

Шаблон в C++ позволяет создавать обобщённые функции и классы, которые могут работать с различными типами данных. Шаблоны делают код более универсальным и повторно используемым.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1
С чего начать? → Всё самое важное здесь

Guru Unity at YeaHub | ОЛЕГ МИРОШКИН 🖥

Всем привет!

Я начал путь в геймдеве с зарплаты $400 и за три года дорос до 5000€. Работал над мидкор ПК-играми, мобильными матч-3 и автобаттлером с аудиторией 100 млн+ игроков.
Сотрудничал с командами из России, Кипра и США.

Сейчас я ментор по Unity-разработке, помогаю новичкам войти в индустрию, а действующим специалистам вырасти в доходе.
В 2025 году 9 моих учеников получили офферы на 120 000 ₽ – 300 000 ₽.

Доказываю, что в геймдеве деньги есть👍

А здесь, на YeaHub, я отвечаю за контент по Unity!

📱 Мой блог в Telegram

📱 Мой YouTube канал

А ещё подписывайтесь на другие каналы Экосистемы YeaHub

Проект YeaHub:

🚀 YeaHub | 🖥 GitHub | Telegram

🎵 TikTok | 📹 YouTube | 👥 Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1🤝1
#Собес #github
🤔 Что такое Git и GitHub?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #stream #input #output
🤔 Что такое поток (stream) в C++?

💬 Кратко:

Поток в C++ — это абстракция для операций ввода/вывода, представляющая собой последовательность символов, считываемых или записываемых на устройства, такие как консоль или файл. Потоки, такие как стандартный ввод (cin) и стандартный вывод (cout), позволяют удобно работать с вводом и выводом.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1🐳1
Что такое Draw Call (Batches) и почему они убивают производительность

Когда Unity рисует сцену, она не “стримит картинку”, а отдельно отрисовывает каждый объект.

Перед каждым рендером процессор говорит видеокарте:
“Вот меш, вот материал, вот позиция - рисуй”


Такая команда называется Draw Call.
Если у тебя на сцене 100 объектов - будет 100 Draw Calls.
И каждое обращение CPU → GPU стоит времени.

Почему это проблема

Видеокарта отлично справляется с рендером, но процессор задыхается, когда надо постоянно передавать команды.
Чем больше объектов и материалов - тем выше нагрузка на CPU, и тем ниже FPS.

Как сократить Draw Calls

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

1. Static Batching - для неподвижных объектов.
Если у тебя есть объекты на сцене, которые не будут двигаться (стены, окружение, декор) - отмечай их галочкой Static. Найти её можно в верхнем-правом углу в инспекторе объекта.
Unity объединит их в один большой меш на этапе сборки сцены.

2. Dynamic Batching - для подвижных.
Включается в Edit → Project Settings → Player → Other Settings → Dynamic Batching.
Автоматически будет работать для всех остальных объектов, не попавших в Static Batching. Наиболее эффективен для маленьких объектов.

Главное условие работы batching’а

Объекты должны использовать один и тот же материал.
Если у каждого свой - batching не сработает.
Поэтому, одна из твоих задач - сократить количество используемых материалов.
Конечно, оставить один материал на всю игру невозможно - но это и не требуется.

Как проверить количество Draw Calls

В Game View → Stats смотри строчку Batches.
Это количество вызовов после всех оптимизаций.

Ориентиры, рекомендуемые Unity:

До 200 Draw Call - для мобильных
До 2000 Draw Call - для ПК

Итог

Draw Calls - количество "приказов" от CPU на GPU отрисовать объект.
Меньше приказов = меньше лагов и больше FPS.

Для уменьшения - сокращение количества материалов, использование Static Batching для неподвижных объектов, Dynamic Batching - для подвижных.

🚀 Пост Guru Unity: @Minerope
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #blueprint #bind #event
🤔 Напишите Blueprint для создания простого UI, отображающего здоровье игрока

💬 Кратко:

Чтобы создать простой UI, отображающий здоровье игрока, создайте новый Widget Blueprint и спроектируйте макет UI с полоской здоровья или текстовым элементом. В Blueprint персонажа добавьте ссылку на Widget Blueprint, создайте его экземпляр и привяжите переменную здоровья к элементу UI для обновления отображения в реальном времени.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
2
#Собес #git
🤔 Каковы преимущества использования Git?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1
#book #паттерны
📚 Game Programming Patterns

Бесплатная книга о шаблонах программирования в контексте разработки игр. В каждой главе описывается отдельный шаблон и приводится конкретный пример его использования. Это, пожалуй, основное преимущество книги: она всегда демонстрирует достоинства того или иного шаблона. Автор также указывает ограничения различных шаблонов и рассказывает о том, как они эволюционировали. Все примеры написаны на C++, но они короткие и легко читаются. Еще один плюс данного ресурса – колонка с дополнительными комментариями автора, устраняющими любые пробелы, которые могли быть в оригинальной книге.

Перейти к материалу

👉 База вопросов 👉 Новости
1
#Собес #multiple_return_values #references #pointers
🤔 Может ли функция вернуть несколько значений в C++?

💬 Кратко:

Да, функция может вернуть несколько значений, используя ссылки или указатели как параметры, или возвращая кортеж (tuple) или пару (pair).

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
1
🧹 Сборщик мусора в Unity - как оптимизировать?

Продолжаем тему оптимизаций и сегодня поговорим о сборщике мусора.

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

1️⃣ Включите инкрементальный GC

Unity поддерживает Incremental GC. В таком случае сборка мусора выполняется не целиком, а частями - по кадрам.
Так фризы становятся почти незаметными.
Включается в Project Settings → Player → Other Settings → Configuration → Incremental GC.

2️⃣ Собирайте мусор вручную в удобные моменты

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

Вызов сборки мусора:
GC.Collect();


3️⃣ Не используйте конкатенацию строк в циклах или Update

Каждая конкатенация строки == новый объект и мусор для сборки. Если цикл состоит из 16 итераций - будет создано 16 строк, что окажет большую нагрузку на GC.

Плохо:
string ConcatExample(string[] stringArray) {
string result = "";

for (int i = 0; i < stringArray.Length; i++) {
result += stringArray[i]; // каждый раз - новый объект
}

return result;
}


Хорошо:
private StringBuilder _sb = new StringBuilder(16);

string ConcatExample(string[] stringArray) {
_sb.Clear();

for (int i = 0; i < stringArray.Length; i++) {
_sb.Append(stringArray[i]); // используем StringBuilder - так создадим только один объект строки
}

return _sb.ToString();
}


4️⃣ Кешируйте строки

Типичная ошибка - обновление текста при любом обновлении счётчика или постоянно в Update.
Кешируйте текст и обновляйте только при изменении значения.

Плохо:
    public Text scoreBoard;
public int score;

void Update() {
string scoreText = "Score: " + score.ToString(); // создаём новый объект каждый кадр
scoreBoard.text = scoreText;
}


Хорошо:
    public Text scoreBoard;
public string scoreText;
public int score;
public int oldScore;

void Update() {
if (score != oldScore) {
scoreText = "Score: " + score.ToString(); // создаём новые объект, только если значение изменилось
scoreBoard.text = scoreText;
oldScore = score;
}
}


5️⃣ Используйте NonAlloc-версии методов

Многие API в Unity создают мусор: Physics.OverlapSphere, Physics.Raycast и т.д.

Иногда есть версии с суффиксом NonAlloc:
Physics.OverlapSphereNonAlloc(position, radius, colliders);


При написании своих методов - следуйте той же идее: не создавайте новые массивы, если можно переиспользовать старые.

💡 Вывод и дополнительные материалы

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

Статья от Unity по оптимизации GC
Профайлинг GC от GameDevGuru

🚀 Пост Guru Unity: @Minerope
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🐳1
#Собес #mvc #cpp #csharp

🤔 Senior Game разработчик в RedRift

Техническое собеседование. Вилка: 3000$-4000$. Были классические вопросы по работе в команде, оптимизациям, Addressables, архитектуре.

💬 Вопросы:

- Какие отличия между C++ и C# бросаются в глаза?

- Где применим паттерн MVC (или MV-паттерны в целом)?

- Если MonoBehaviour удалён, но ассет через Addressables не выгружен — что произойдёт?

- Если использовать Addressables, как выгрузить ассет из памяти?

- В какой момент в Addressables ассеты выгружаются из памяти?

👉 Все вопросы из этого собеседования (16)

📣 Хочешь больше собесов?
Подпишись на наш главный канал
2