Что даёт GameDevLand SDK
Проект определяет поведение игры и использует модули движка через публичный API.
GameDevLand SDK предоставляет готовые модули для разработки HTML5-игр. На его основе можно создавать разные игры, сохраняя их логику в отдельных проектах. Пакет @gamedevland/engine работает в браузере, а @gamedevland/vite подготавливает запуск и сборку проекта.
Где проходят границы
Проект отвечает за саму игру: её правила, состояние, сценарии и представление. Доменная логика — правила и данные предметной области игры — остаётся в проекте.
SDK отвечает за общую инфраструктуру. Движок разделён на модули: каждый решает свою задачу и предоставляет публичный 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 выполняет воспроизведение с учётом настроек звука. Когда вызвать метод и какой звук передать, определяет игра.