Добавить в корзинуПозвонить
Найти в Дзене
Two Box Games

Оптимизация. 15.08.2025

Давненько не слышали от нас весточки, дорогие читатели! И вот, мы снова собрались у нашего виртуального костра, чтобы обсудить тему, без преувеличения, жизненно важную — оптимизацию. Очень важная штука в любой игре. В прошлый раз мы с хирургической точностью разбирали движение NPC, а
именно, как несколько врагов слаженно атакуют игрока, и делали это так,
что даже хирурги позавидовали бы. Сегодня же мы погружаемся в мир
оптимизации, где нас ждёт туманный путь, полный неизвестности и,
возможно, лёгкого экшена. В большинстве своих разработок я обычно делю процесс на три части: исполнительную, посредническую и, конечно же, мозговую. Мозг здесь
— это альфа и омега, центр управления полётами, который ведёт расчёты и
отдаёт команды. Если исполнитель по каким-то причинам недоступен, в
дело вступает посредник. На сегодня мы обойдёмся без посредника, оставив
связь прямой и бесперебойной: только мозг и исполнитель, как в лучших
традициях боевиков. Вы, наверное, уже в нетерпении хотите уз

Давненько не слышали от нас весточки, дорогие читатели! И вот, мы снова собрались у нашего виртуального костра, чтобы обсудить тему, без преувеличения, жизненно важную — оптимизацию. Очень важная штука в любой игре.

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

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

Вы, наверное, уже в нетерпении хотите узнать, что же представляет собой этот самый «мозг»? Ну так вот, мозг — это обычный Blueprint, который через Soft References создаёт крепкую связь со всеми NPC, готовыми внимать его командам и выполнять их, как преданные щенки. Это даёт тотальный контроль над всем процессом и неоспоримое преимущество данного метода — ограничение области активации NPC.

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

-2

Мы определили радиус от 1500 до 2500 юнитов — ту самую зону оптимизации.
То есть, игрок вбегает в область, ещё не совсем видя противников, а они
уже активируются и проходят первую фазу генерации положения.
Согласитесь, не слишком интересно, когда мобы выбегают из одной точки,
как на конвейере. Поэтому добавим разнообразия: пусть наши мобы
патрулируют по самогенерирующимся сплайнам, где каждая точка выбирается
случайно в допустимом навигационном месте. И вот, вуаля! Мы получаем
живописную и реалистичную картину.

Допустим, моб патрулирует, и на данный момент это весь его функционал. Ему не нужно знать, где остальные и когда нападать. За это отвечает мозг — Blueprint. Таймеры позволяют мозгу отслеживать положение персонажа: например, радиус, когда моб может заметить игрока. Если этот радиус будет
пересечён, это будет означать вторжение и сигнал к атаке!

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

Мозг отправляет сигнал NPC, что пора активировать ближний бой. Моб получает сигнал от мозга, и когда NPC достигает нужного радиуса атаки, интерфейс отправляет в Anim Blueprint булевую переменную о том, что атака допустима. И вот, State Machine включает анимацию атаки, которая не просчитывается каждый раз, а хранится в кэше, как старый добрый мем.

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

Вот так, друзья, мы оптимизируем, не теряя ни капли юмора и смысла, облегчая жизнь вашему ПК и вам!

#BlueprintDev #VisualScripting #UE5 #UnrealEngine #IndieGameDev 
#GameplayProgrammer #TechnicalDesigner #GameLogic #AI #UI 
#AnimationBlueprints #Prototyping #Git