ПРЕЗЕНТАЦИЯ ДЕМО ИГРЫ☠️
Кратко про сюжет и суть игры а также об основных игровых механиках которые будут представлены в демо.
Презентация - https://yagla.tv/cQYSU9G
Кратко про сюжет и суть игры а также об основных игровых механиках которые будут представлены в демо.
Презентация - https://yagla.tv/cQYSU9G
Please open Telegram to view this post
VIEW IN TELEGRAM
НОВЫЙ UI ДЛЯ ИНВЕНТАРЯ🤕
Начали работу над ui для статуса и информации о персонаже. Сейчас готовы наброски инвентаря.
В планах сделать взаимодействовать с хотбаром. А также получать информацию о предметах и его нынешнем состоянии.
Для экипировки игроку будут доступны слоты
- Основное оружие
- Дополнительное оружие
- Броня
- Дополнительное снаряжение(амулеты и тд)
- Быстрые расходники
- Заклинания
Начали работу над ui для статуса и информации о персонаже. Сейчас готовы наброски инвентаря.
В планах сделать взаимодействовать с хотбаром. А также получать информацию о предметах и его нынешнем состоянии.
Для экипировки игроку будут доступны слоты
- Основное оружие
- Дополнительное оружие
- Броня
- Дополнительное снаряжение(амулеты и тд)
- Быстрые расходники
- Заклинания
❤🔥6 5❤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.
Ушёл от стандартных ProjectileMovementComponent и actor-based пуль в сторону полностью data-oriented architecture.
Упор идет в оптимизацию симуляции большого количества BallisticUnits.
Что уже реализовано:
- BallisticManager
- Ballistic subsystem
- gravity + drag
- Hit collision
- object pooling
- SOA memory layout
Цель сделать ballistic framework для UE5.
Продолжаю переписывать 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.
Что добавлено на текущий момент:
• 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🔥1 1
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.
Когда 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❤2 1
Провел стресс-тест своей 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
С примерно одинаковыми затратами получилось обработать:
• 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😈1 1
Нашел свой первый проект который делал 3 года назад🎁
Жаль исходники не сохранились, но даже сейчас я помню как плохо все было сделано в плане архитектуры и оптимизации. Вообще проект сам по себе сырой и незакончен, это был проект просто для обучения основным инструментам UE. Кому интересно можете поиграть.
Скачать: https://drive.google.com/file/d/1S576ljznmtMzchUBqmx9uqQRsIDHkgQW/view?usp=sharing
Жаль исходники не сохранились, но даже сейчас я помню как плохо все было сделано в плане архитектуры и оптимизации. Вообще проект сам по себе сырой и незакончен, это был проект просто для обучения основным инструментам 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