О чем этот пример

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

Версия Phaser: код и демо в этой статье рассчитаны на Phaser 3.90.0.

Живой запуск

Ниже встроен рабочий билд примера. Оригинальный источник: GitHub.

Исходный код


class Example extends Phaser.Scene
{
    preload ()
    {
        this.load.setBaseURL('https://raw.githubusercontent.com/phaserjs/examples/master/public/');
        this.load.image('pic', 'assets/pics/baal-loader.png');
    }

    create ()
    {
        this.add.image(400, 300, 'pic');

        const text = this.add.text(80, 550, '', { font: '16px Courier', fill: '#ffffff' });

        text.setText([
            `Game Title: ${game.config.gameTitle}`,
            `Version: ${game.config.gameVersion}`
        ]);
    }
}

const config = {
    type: Phaser.AUTO,
    parent: 'phaser-example',
    width: 800,
    height: 600,
    scene: Example,

    //  Open the Dev Tools
    //  Notice that it no longer says Phaser, or the Phaser version, in the banner
    banner: {
        hidePhaser: true
    }
};

const game = new Phaser.Game(config);

Стандартный баннер и зачем его скрывать

По умолчанию при инициализации Phaser Game в консоли разработчика браузера появляется сообщение (баннер). В нем указаны название движка (Phaser), его версия, режим рендеринга (WebGL или Canvas) и другие служебные данные.

Для разработки эта информация полезна. Однако для релизной версии игры или демонстрации клиенту эти технические детали излишни. Их скрытие помогает создать впечатление законченного, самостоятельного продукта, а не демо-примера на движке.

Ключевая настройка: объект `banner`

Управление отображением баннера происходит в главном конфигурационном объекте игры, который передается в конструктор new Phaser.Game(). За это отвечает свойство banner.

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

const config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    scene: Example,
    // Настройки баннера
    banner: {
        hidePhaser: true
    }
};

Опция `hidePhaser` и ее эффект

Внутри объекта banner доступно несколько опций. Самая важная для нашей задачи — булево свойство hidePhaser. Установив его значение в true, мы даем движку команду не выводить в консоль строку с логотипом и версией Phaser.

banner: {
    hidePhaser: true // Ключевая опция для скрытия
}

После применения этой настройки при запуске игры в консоли не будет строк вида "Phaser v3.60.0 (WebGL | Web Audio)". Остальная функциональность движка, включая предупреждения и ошибки отладки, остается полностью рабочей.

Полный пример конфигурации

Рассмотрим полный код инициализации игры с активированной опцией скрытия баннера. Обратите внимание, что объект banner добавлен в общий конфиг на одном уровне с type, width и scene.

class Example extends Phaser.Scene {
    // ... код сцены (preload, create) ...
}

const config = {
    type: Phaser.AUTO,
    parent: 'phaser-example',
    width: 800,
    height: 600,
    scene: Example,
    //  Откройте инструменты разработчика.
    //  Обратите внимание, что баннер с Phaser и его версией больше не отображается.
    banner: {
        hidePhaser: true
    }
};

const game = new Phaser.Game(config);

Именно передача этого конфигурационного объекта в new Phaser.Game(config) применяет настройки к запускаемому экземпляру игры.

Что попробовать дальше

Скрытие служебного баннера Phaser — это простой, но эффективный шаг к полировке финальной версии вашей игры. Всего одна строка hidePhaser: true в конфигурации убирает техническую информацию из консоли, оставляя ее чистой для ваших собственных сообщений отладки. **Идеи для экспериментов:** 1. Изучите другие свойства объекта banner, такие как text или background, чтобы полностью кастомизировать вывод в консоль под стиль вашей игры. 2. Попробуйте условно включать эту опцию только в продакшен-сборке, оставляя баннер видимым во время разработки.