Поиск по статьям

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

Пишу про разрабатываемую мною игру головоломку

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

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

Луч больше не может ходить по кругу бесконечно

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

Теперь симулятор запоминает состояние луча:

•      клетку;

•      направление;

•      цвет;

•      обычную или фазовую форму.

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

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

Автоматический решатель и раньше проверял, что все 18 уровней можно пройти. Но у такой проверки есть недостаток: если ломается конкретное правило, она сообщает только о непроходимом уровне.

Теперь отдельно проверяются:

•      обе ориентации зеркала;

•      остановка луча стеной;

•      две ветви расщепителя;

•      направление одностороннего фильтра;

•      окрашивание луча;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Новостной дайджест. Часть девятнадцатая. Вкусненькая.
Инструменты
Аудит сайта
Автоматический аудит сайта на соблюдение требований законодательства о персональных данных.
Начать проверку