Подача игры
Игра доходит до игроков в три шага: вы публикуете пакет плагина в npm, подаёте его на платформу из лобби, и модератор его одобряет. После одобрения игра появляется в каталоге лобби, и на ней можно создавать комнаты.
Требования
- Пакет публичен в npm. Платформа скачивает его из реестра без авторизации. Для scoped-имени (
@you/my-game) первая публикация —npm publish --access public. files: ["dist"]. Публикуется и читается толькоdist/; остальное содержимое репозитория до платформы не доходит.dist/manifest.jsonгенерирует сборка (packaging.md).- Зелёный
vimp-contractна собранном пакете (debugging.md). - Id игры — это
manifest.id: строчные латинские буквы, цифры и дефис, начинается с буквы, 2–31 символ. Он уникален на платформе;mine,submit,manifestиlookupзарезервированы. - Версия — обычная semver-тройка (
1.4.0, допустим суффикс пре-релиза), аmanifest.version— непустая строка. - Один аккаунт может подать до 20 игр.
Платформа проверяет dist/ структурно и никогда не исполняет плагин: manifest.json на месте и является объектом; engineApi — целое число; title и version — непустые строки; assetsBase оканчивается на /; entries client, host и wasm объявлены, а файлы лежат внутри dist/ (так же wasmNode, если объявлен, — относительным путём); maps.list — непустой список, и каждый dist/maps/<name>.json существует; у каждого поля roomForm есть значение в roomDefaults (или значения берутся из карт). Игра, чей requires называет неизвестную движку возможность, принимается, но показывается недоступной, см. overview.md.
Публикация пакета
npm run core:build # Wasm-ядро (таргеты web и node)
npm run build # оба бандла, dist/manifest.json, ассеты
npm run check:contract
npm publish --access publicПоднимайте версию в package.json для каждого релиза: npm не принимает одну версию дважды, а платформа опознаёт заявку по имени пакета и версии.
Подача
- Войдите в лобби, откройте бейдж пользователя и выберите My games.
- Введите имя npm-пакета и, по желанию, версию (пусто — последняя); нажмите Load. Форма покажет предпросмотр, прочитанный из пакета: id, название и ссылку на проект.
- Нажмите Submit for review.
Платформа скачивает пакет и выполняет описанную проверку до записи заявки. Сломанный пакет отклоняется с полным списком проблем и в очередь не попадает; исправьте, опубликуйте новую версию и подайте снова.
Модерация
Заявка остаётся pending, пока модератор не решит; решение — approved, rejected или, для уже работающей игры, disabled. Модератор может оставить замечание: оно показывается на карточке игры в My games. Перед одобрением модератор может открыть скрытую тестовую комнату на поданной версии. Одобренная игра попадает в каталог лобби примерно за минуту.
Обновление
Нажмите Update version на карточке игры и введите новую версию. Она проходит ту же проверку и ту же модерацию; пока она ожидает, игроки играют на одобренной версии. Подача новой версии снимает прежнее замечание и отменяет отказ.
Ссылка на проект
Лобби показывает ссылку на проект игры рядом с её версией. Это homepage пакета, и только если его нет — repository. Флаг скаффолдера --repository пишет оба поля (scaffolding.md).
Удаление игры
Автор удаляет игру из My games, если она не одобрена (одобренную сначала отключает модератор). Удаление мягкое: игра сразу пропадает из лобби, а данные профилей по ней (рейтинги, состояния) стираются окончательно через 30 дней; до этого модератор может её вернуть. Id и имя пакета остаются занятыми на эти 30 дней.