Обновил бэкенд игры: теперь логика работает быстрее и стабильнее
Что ускорило расчёты в игре
Главная оптимизация — игра стала меньше пересчитывать одно и то же.
Вместо того чтобы каждая система отдельно проверяла мир, действия сначала собираются в очередь. Потом за один общий шаг игра решает, что реально произошло: кто сдвинулся, какая клетка занята, какая команда не прошла, какие события нужно показать игроку.
Такой подход быстрее, потому что состояние мира меняется в одной точке, а не хаотично из разных мест. Меньше случайных проверок, меньше конфликтов, меньше повторной работы.
Вторая важная часть — кеширование.
Кеш — это заранее сохранённый результат частого вопроса. Например, игре постоянно нужно знать, занята клетка или свободна. Без кеша пришлось бы каждый раз искать по всем объектам и проверять, где кто стоит. С кешем игра просто смотрит в готовую таблицу занятости.
Это работает быстрее, потому что таблицу можно проверить почти мгновенно. Игра не ищет ответ заново, а берёт уже подготовленный.
Но кеш должен обновляться вместе с миром. Если объект переместился, нужно сразу обновить и его позицию, и список занятых клеток. Поэтому изменения проходят через контролируемую систему, а не напрямую из разных частей кода.
Третья оптимизация — локальные расчёты.
Если игрок видит только ближайшую область, нет смысла каждый раз проверять всю карту. Если источник света работает в небольшом радиусе, считается только этот радиус. Чем больше уровень, тем важнее не трогать лишние клетки.
Четвёртая оптимизация — простые данные.
Для внутренней логики используются координаты, числа, флаги и массивы. Это быстрее, чем заставлять каждый тайл или объект быть полноценным игровым актёром. Движок отвечает за визуал, а симуляция работает на лёгких структурах данных.
Добавляйте в вишист MeloDancer: