Границы игры и движка01 / 12

Что даёт GameDevLand SDK

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

GameDevLand SDK предоставляет готовые модули для разработки HTML5-игр. На его основе можно создавать разные игры, сохраняя их логику в отдельных проектах. Пакет @gamedevland/engine работает в браузере, а @gamedevland/vite подготавливает запуск и сборку проекта.

Где проходят границы

Проект отвечает за саму игру: её правила, состояние, сценарии и представление. Доменная логика — правила и данные предметной области игры — остаётся в проекте.

SDK отвечает за общую инфраструктуру. Движок разделён на модули: каждый решает свою задачу и предоставляет публичный API — методы, типы и точки расширения, доступные проекту.

Конкретная игра

Проект

Доменная логика
Правила и состояние игры
Игровые сценарии
Порядок действий и реакция на события
Представление
Структура и поведение интерфейса
Использует API модулей
@gamedevland/engine

Модули движка

Публичный API модулейМетоды · типы · точки расширения

Управление игрой

  • coreЗапуск и работа движка
  • scenesПереходы и жизненный цикл сцен
  • fsmСостояния и переходы
  • commandsВыполнение команд
  • eventsОтправка событий и подписки

Экран и ввод

  • layoutsУзлы, компоненты и действия
  • prefabsСоздание узлов из шаблонов
  • screenРазмеры и адаптация экрана
  • inputСобытия указателя и колеса
  • interactionsУправление перетаскиванием

Звук, эффекты и физика

  • audioВоспроизведение и каналы
  • tweenАнимация свойств
  • particlesЭмиттеры частиц
  • physicsТела и физическая симуляция

Инфраструктура

  • assetsЗагрузка и хранение ресурсов
  • configsНастройки, сохранения и локализация
  • diРегистрация и получение зависимостей
  • validationПроверка и декодирование данных
  • errorsТипы ошибок движка
  • platformsИнтеграция с игровыми площадками
Публичные модули движка сгруппированы по назначению. Схема показывает состав движка, а не зависимости между модулями.

Такое разделение позволяет менять игру, не переписывая общие механизмы движка. Движок можно развивать независимо от правил конкретной игры: пока API остаётся совместимым, проекту не нужно подстраиваться под его внутренние изменения.

Граница на уровне API

Проект выбирает звук и момент его запуска. Для воспроизведения он вызывает метод аудиомодуля SDK. Например:

engine.audio.playSfx(soundId);

Здесь engine — экземпляр движка, soundId — идентификатор подготовленного звука. Метод playSfx выполняет воспроизведение с учётом настроек звука. Когда вызвать метод и какой звук передать, определяет игра.