Engine.run и GameConfig03 / 12

Запуск игры из кода

Проследим, как конфигурация проекта передаётся движку при запуске 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', поэтому сначала запускается загрузочная сцена проекта.

01
Конфигурация игрыПроект задаёт system, assets, scenes и di
02
Engine.runSDK подготавливает системы и canvas
03
Сцена bootSDK открывает сцену, выбранную проектом
Проект описывает игру, SDK выполняет общий механизм её запуска.

Игровые классы, ресурсы и правила остаются в проекте. SDK предоставляет механизм их подключения и запуска. Для другой игры передадим другую конфигурацию в тот же Engine.run.

Источники ↗

Block Puzzle · main.ts↗Импорт Engine из SDK и запуск с конфигурацией проекта.Block Puzzle · game.config.ts↗Настройки игры, ресурсы, зависимости и начальная сцена boot.