Структура HTML5-проекта
Сделайте так, чтобы человек, открывший проект впервые, сразу нашёл три вещи: где подключён SDK, где правила игры и где лежат переводы.
Рекомендуемая структура
game/
index.html
js/bootstrap.js # только VORIVOX + запуск
js/session.js # состояние сеанса, таймер, complete
js/gameplay.js # цели, очки, игроки
js/render.js # Canvas/WebGL
i18n/*.json # 12 языков
assets/ # локальные ресурсы
vendor/vorivox.js
bootstrap.js — тонкий слой
Не переносите сюда всю игру. Этот файл подписывается на SDK и вызывает методы session/gameplay. Благодаря этому правила игры тестируются без Launcher.
session.js — единственный владелец завершения
Именно здесь храните состояние idle/running/paused/completed, активное время и защиту от повторного complete(). Таймер и обработчик попаданий не должны независимо завершать игру.
gameplay.js — правила, не транспорт
Здесь определяется, сколько очков даёт попадание, чей сейчас ход, куда относится попадание при разделённой мишени, когда заканчивается раунд. Этот модуль не должен знать URL WebSocket или session_token.
Релиз
В сборку входят готовые browser assets. Не включайте node_modules, кеш сборщика, live manifest, credentials и служебные логи. Все ресурсы, включая шрифты и переводы, должны быть доступны локально.