Разработка игр в 2026. Часть шестая. Почему я перестал добавлять механики и занялся фундаментом

В прошлых обновлениях Reflection росла вширь: появились расщепители, цветные фильтры и фазовый луч. Игра стала разнообразнее, но вместе с этим выросла цена любой ошибки в коде. Небольшое изменение симулятора теперь могло незаметно сломать не один, а сразу несколько типов уровней.

Поэтому новый этап разработки выглядит не так эффектно, как очередной необычный элемент. Я остановился и занялся надёжностью уже существующей игры.

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

Правила света получили автоматические тесты

• вход и выход из фазового состояния;

• завершение циклического маршрута;

• отсутствие скрытого изменения игровой сетки симулятором.

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

Правила света получили автоматические тесты

Редактор умеет передавать уровень прямо в ссылке. Раньше игра доверяла содержимому такой ссылки и сразу пыталась построить из него поле. Повреждённые данные, неизвестный элемент или координата за пределами сетки могли привести к непонятной ошибке.

Теперь перед загрузкой проверяются:

• версия формата;

• наличие источников и приёмников;

• границы координат;

• занятость клеток;

• типы, направления и цвета элементов;

• состав и размер инвентаря;

• общий размер передаваемых данных.

Новые ссылки помечаются как version: 1, а старые уровни без номера версии по-прежнему принимаются и автоматически приводятся к новому формату. Если ссылка повреждена, игрок остаётся на стартовом экране и получает понятное сообщение вместо сломанной игровой сцены.

Небольшие изменения, которые вы сможете почуйствовать/увидеть/потестить

Количество уровней больше не зашито вручную в интерфейс. Финальный экран получает актуальное число прямо из данных кампании, поэтому следующий набор уровней не потребует искать старые надписи по проекту.

Также появилась кнопка звука. Настройка сохраняется в браузере: если выключить эффекты и вернуться позже, игра запомнит выбор.

Зачем начинать именно с этого

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

Следующий шаг — первый пользовательский опыт: интерактивное обучение, удобное удаление элементов без правой кнопки мыши и отмена последнего действия.

А пока мне интересно проверить одну вещь: замечали ли вы в головоломках моменты, когда луч или другой объект начинал двигаться по бесконечному циклу? Такой цикл выглядит как ошибка или как механика, которую стоило бы использовать в отдельных уровнях?

1