Запуск игры из кода
Проследим, как конфигурация проекта передаётся движку при запуске Block Puzzle.
В game/src/main.ts Engine импортируется из SDK, а BlockPuzzleGameConfig — из проекта игры. Ниже показаны импорты и строка запуска; проверка загрузки страницы из исходного файла опущена:
import { Engine } from '@gamedevland/engine';
import { BlockPuzzleGameConfig } from './config/game.config';
void Engine.run('#app', BlockPuzzleGameConfig.config);
Первый аргумент, '#app', указывает на контейнер <div id="app"></div> в HTML: туда движок добавит canvas. Второй аргумент — конфигурация игры. Она задаёт настройки систем, ресурсы, сцены и зависимости проекта.
Engine.run создаёт и подготавливает движок по этим данным, затем открывает начальную сцену. В Block Puzzle поле scenes.initial равно 'boot', поэтому сначала запускается загрузочная сцена проекта.
Игровые классы, ресурсы и правила остаются в проекте. SDK предоставляет механизм их подключения и запуска. Для другой игры передадим другую конфигурацию в тот же Engine.run.