@metallium_games/games-sdk
v0.1.0
Published
SDK partagé pour les jeux Metallium Games — communication postMessage entre jeu et app hôte
Maintainers
Readme
@metallium_games/games-sdk
SDK partagé pour les jeux Metallium Games. Gère la communication postMessage entre votre jeu (vue web intégrée) et l'app hôte Metallium Games.
Le jeu ne connaît que ses actions et le viewer. Tout le mapping cadeaux/plateforme est géré par l'app hôte. Aucun appel réseau dans ce SDK.
Installation
npm install @metallium_games/games-sdkExemple minimal
import { MetalliumGames } from '@metallium_games/games-sdk'
// 1. Déclarer les actions disponibles dans ce jeu
MetalliumGames.declareActions([
{ id: 'spawn', label: 'Spawn Enemy', description: 'Fait apparaître un ennemi' },
{ id: 'powerup', label: 'Power-Up', description: 'Active un power-up' },
])
// 2. Initialiser — envoie MG_READY et écoute MG_INIT + MG_ACTION
MetalliumGames.init({
onInit(ctx) {
// ctx : { streamer, platform: 'tiktok'|'twitch', locale: 'fr'|'en' }
console.log('Jeu initialisé par', ctx.streamer.displayName)
startGame(ctx)
},
onAction(action) {
// action : { actionId, viewer: { handle, displayName }, params? }
if (action.actionId === 'spawn') spawnEnemy(action.viewer)
// Remonter un résultat à l'hôte (optionnel)
MetalliumGames.sendResult({ actionId: action.actionId, viewer: action.viewer.handle })
},
})API
| Méthode | Description |
|---------|-------------|
| MetalliumGames.init(options) | Enregistre les callbacks et envoie MG_READY automatiquement |
| MetalliumGames.declareActions(actions) | Envoie le manifeste MG_MANIFEST à l'hôte |
| MetalliumGames.sendResult(result) | Envoie MG_RESULT à l'hôte |
Protocole postMessage
| Direction | Type | Contenu |
|-----------|------|---------|
| Jeu → Hôte | MG_READY | (vide) — déclenche l'init côté hôte |
| Jeu → Hôte | MG_MANIFEST | { actions: MGActionDef[] } |
| Jeu → Hôte | MG_RESULT | { ...result } |
| Hôte → Jeu | MG_INIT | { streamer, platform, locale } |
| Hôte → Jeu | MG_ACTION | { actionId, viewer, params? } |
| Hôte → Jeu | MG_EVENT | { event: UnifiedEvent } (optionnel) |
