Разработка игр в 2026. Часть шестая. Почему я перестал добавлять механики и занялся фундаментом
В прошлых обновлениях Reflection росла вширь: появились расщепители, цветные фильтры и фазовый луч. Игра стала разнообразнее, но вместе с этим выросла цена любой ошибки в коде. Небольшое изменение симулятора теперь могло незаметно сломать не один, а сразу несколько типов уровней.
Поэтому новый этап разработки выглядит не так эффектно, как очередной необычный элемент. Я остановился и занялся надёжностью уже существующей игры.
Если луч снова оказывается в полностью том же состоянии, дальнейший путь уже известен — перед нами цикл. Эта ветвь аккуратно завершается, а остальные лучи продолжают работу. Особенно это важно для расщепителей, которые способны создать несколько пересекающихся маршрутов.
Правила света получили автоматические тесты
• вход и выход из фазового состояния;
• завершение циклического маршрута;
• отсутствие скрытого изменения игровой сетки симулятором.
Полный тестовый запуск сначала проверяет правила, а затем снова решает всю встроенную кампанию. Ошибка теперь должна указывать не просто на сломанную игру, а на конкретную механику.
Правила света получили автоматические тесты
Редактор умеет передавать уровень прямо в ссылке. Раньше игра доверяла содержимому такой ссылки и сразу пыталась построить из него поле. Повреждённые данные, неизвестный элемент или координата за пределами сетки могли привести к непонятной ошибке.
Теперь перед загрузкой проверяются:
• версия формата;
• наличие источников и приёмников;
• границы координат;
• занятость клеток;
• типы, направления и цвета элементов;
• состав и размер инвентаря;
• общий размер передаваемых данных.
Новые ссылки помечаются как version: 1, а старые уровни без номера версии по-прежнему принимаются и автоматически приводятся к новому формату. Если ссылка повреждена, игрок остаётся на стартовом экране и получает понятное сообщение вместо сломанной игровой сцены.
Небольшие изменения, которые вы сможете почуйствовать/увидеть/потестить
Количество уровней больше не зашито вручную в интерфейс. Финальный экран получает актуальное число прямо из данных кампании, поэтому следующий набор уровней не потребует искать старые надписи по проекту.
Также появилась кнопка звука. Настройка сохраняется в браузере: если выключить эффекты и вернуться позже, игра запомнит выбор.
Зачем начинать именно с этого
В этом обновлении нет новой головоломки, зато появилось пространство для безопасного развития. Теперь я могу менять обучение, управление и экран победы, не проверяя вручную каждое правило после каждого изменения.
Следующий шаг — первый пользовательский опыт: интерактивное обучение, удобное удаление элементов без правой кнопки мыши и отмена последнего действия.
А пока мне интересно проверить одну вещь: замечали ли вы в головоломках моменты, когда луч или другой объект начинал двигаться по бесконечному циклу? Такой цикл выглядит как ошибка или как механика, которую стоило бы использовать в отдельных уровнях?