Post #65
116

🛠 Решил попробовать batching для обработки игровых событий
Продолжаю понемногу оптимизировать проект. На этот раз решил попробовать batching для обработки игровых событий.
Идея простая. Вместо того чтобы выполнять десятки операций сразу, я сначала складываю их в очередь.
Например, после смерти врага монеты не создаются мгновенно. Сначала в очередь добавляется заявка:
Дальше игра сама решает, сколько таких заявок обработать в текущем кадре.
По такому же принципу теперь обрабатываются и смерти врагов. Если дракон уничтожил сразу большую группу противников, игра не пытается выполнить всё за один кадр, а распределяет нагрузку. Вместо сотен объектов, которые одновременно начинают создавать эффекты, дроп и выполнять свою логику, кадры остаются стабильнее.
Для игрока ничего не меняется. Он всё так же видит дождь из монет и массовые убийства врагов. Зато неприятные микрофризы исчезают.
Продолжаю понемногу оптимизировать проект. На этот раз решил попробовать batching для обработки игровых событий.
Идея простая. Вместо того чтобы выполнять десятки операций сразу, я сначала складываю их в очередь.
Например, после смерти врага монеты не создаются мгновенно. Сначала в очередь добавляется заявка:
_dropQueue.Enqueue(new DropRequest
{
Prefab = entry.Prefab,
Angle = angle,
Position = position
});
Дальше игра сама решает, сколько таких заявок обработать в текущем кадре.
По такому же принципу теперь обрабатываются и смерти врагов. Если дракон уничтожил сразу большую группу противников, игра не пытается выполнить всё за один кадр, а распределяет нагрузку. Вместо сотен объектов, которые одновременно начинают создавать эффекты, дроп и выполнять свою логику, кадры остаются стабильнее.
Для игрока ничего не меняется. Он всё так же видит дождь из монет и массовые убийства врагов. Зато неприятные микрофризы исчезают.
- 👍 5
- 🎉 2
- ❤ 1
- 🔥 1











