road to UE Senior
56 subscribers
96 photos
19 videos
2 files
8 links
UE5 разработка — C++ и Blueprint.
Архитектура, performance.

GitHub: github.com/wirnullptr
ArtStation: artstation.com/wir
Download Telegram
НОВЫЙ UI ДЛЯ ИНВЕНТАРЯ🤕

Начали работу над ui для статуса и информации о персонаже. Сейчас готовы наброски инвентаря.
В планах сделать взаимодействовать с хотбаром. А также получать информацию о предметах и его нынешнем состоянии.

Для экипировки игроку будут доступны слоты
- Основное оружие
- Дополнительное оружие
- Броня
- Дополнительное снаряжение(амулеты и тд)
- Быстрые расходники
- Заклинания
❤‍🔥65❤1👍1
Сейчас работаю над собственной ballistic system для UE5 на C++.

Ушёл от стандартных ProjectileMovementComponent и actor-based пуль в сторону полностью data-oriented architecture.
Упор идет в оптимизацию симуляции большого количества BallisticUnits.
Что уже реализовано:
- BallisticManager
- Ballistic subsystem
- gravity + drag
- Hit collision
- object pooling
- SOA memory layout

Цель сделать ballistic framework для UE5.
3❤2👍1🔥1
Продолжаю переписывать ballistic architecture в UE5 в сторону полноценной data-oriented simulation.

Что добавлено на текущий момент:

• centralized BallisticSubsystem
• fixed timestep simulation
• sparse/dense allocation
• generation-safe handles
• impact event buffering
• ownership pipeline
• physical material support
• surface response foundation


Самое важное:
simulation layer полностью отделен от gameplay layer.

BallisticUnit simulation:

* не вызывает damage
* не спавнит FX
* не трогает Blueprint
* не работает с gameplay systems напрямую

Simulation только:
movement, traces, energy calculation и hit generation.

После этого impacts складываются в event buffer и уже отдельной фазой отправляются через delegates в gameplay layer.

Параллельно постепенно готовлю архитектуру под:

* ParallelFor
* async traces
* SIMD
* penetration
* ricochet
* networking/prediction

Начинаю собирать Blueprint-facing gameplay API поверх simulation core, чтобы gameplay systems, FX и weapon logic могли взаимодействовать с ballistic pipeline без прямого доступа к core.
❤4🔥11
Ballistic system теперь работает в несколько потоков.
Когда BallisticUnit становится много, simulation автоматически разбивается на batch’и и распределяется между CPU threads.
То есть система сама решает: когда выгоднее работать в одном потоке, а когда переходить в parallel mode.

Сделал debug-инфраструктуру для снарядов. Теперь система умеет в realtime показывать:

• траектории полёта
• точки попаданий
• скорость снарядов
• загрузку системы
• количество активных projectile’ов
• режим работы CPU

Самое важное:
debug почти не влияет на производительность и полностью вырезается из Shipping build.

Добавил полноценное профилирование ballistic subsystem.

Теперь можно в realtime смотреть:

• сколько времени занимает simulation
• насколько загружен CPU
• когда система переходит в parallel mode

Всё интегрировано с Unreal Insights и stat system UE5.
🔥3❤21
Провел стресс-тест своей ballistic system в UE5.
С примерно одинаковыми затратами получилось обработать:

• 10к ProjectileMovementComponent
• 33к ballistic units в кастомной системе

ProjectileMovementComponent начинает упираться не столько в саму баллистику, сколько в overhead движка:

Tick на каждый projectile
UObject/Component система
обновление transform’ов
внутренние MoveComponent вызовы
огромный объем мелких операций на GameThread

В итоге CPU тратит кучу времени просто на обслуживание объектов.

В моей ballistic system вся симуляция идет централизованно:

без отдельного Tick на каждый projectile
с parallel update
async trace processing
batched simulation

За счет этого получилось спокойно обработать 33k ballistic units при играбельном FPS.

Процессор: Intel Core I5 12400F
❤3😈11
Нашел свой первый проект который делал 3 года назад🎁

Жаль исходники не сохранились, но даже сейчас я помню как плохо все было сделано в плане архитектуры и оптимизации. Вообще проект сам по себе сырой и незакончен, это был проект просто для обучения основным инструментам UE. Кому интересно можете поиграть.

Скачать: https://drive.google.com/file/d/1S576ljznmtMzchUBqmx9uqQRsIDHkgQW/view?usp=sharing
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
22❤1