# SDK client PlayDrop pour les jeux sur navigateur

SDK navigateur facultatif pour tout jeu PlayDrop : cycle de vie de l’hôte, connexion, sauvegardes, classements, achats, publicités, amis, multijoueur et bibliothèques partagées, avec une seule balise script.

Source: https://www.playdrop.ai/fr/docs/sdk

Le SDK PlayDrop est facultatif : les jeux qui ne l’utilisent pas fonctionnent aussi sur PlayDrop. Ajoutez-le pour profiter des fonctionnalités de la plateforme, comme la connexion des joueurs, les sauvegardes, les succès et les classements, les achats en crédits, les publicités, les amis et les cartes de jeu dans PlayDrop Chat, les liens de partage, la pause et l’audio gérés par l’hôte, le multijoueur hébergé et la génération par IA. [PlayDrop Cloud](https://www.playdrop.ai/fr/create) l’intègre pour vous ; avec [PlayDrop Connector](https://www.playdrop.ai/fr/docs/connectors), votre agent ajoute une seule balise script.

## Ajoutez le SDK et respectez le cycle de vie de l’hôte

Chargez le SDK depuis le CDN de PlayDrop ; aucune installation de paquet n’est nécessaire. Affichez la première image jouable et préparez la gestion des entrées avant d’appeler `sdk.host.ready()`. Suspendez la simulation lors d’une pause de l’hôte, reprenez sans créer de boucles en double et respectez la politique audio de l’hôte.

```html
<script src="https://assets.playdrop.ai/sdk/playdrop.js"></script>
<script type="module">
  const sdk = await playdrop.init();
  // Render the game and prepare input, then:
  sdk.host.ready();
  sdk.host.onPause(() => pauseGame());
  sdk.host.onResume(() => resumeGame());
  sdk.host.onAudioPolicyChange(({ enabled }) => setAudioEnabled(enabled));
</script>
```

## Identité, sauvegardes et langue

`sdk.me` expose l’identité du joueur et `sdk.me.appData` stocke ses sauvegardes privées ; `sdk.achievements` et `sdk.leaderboards` gèrent les succès et les scores. Les sauvegardes, les succès et les classements fonctionnent sans vérification préalable de la connexion. Utilisez `sdk.me.isLoggedIn` pour les fonctionnalités qui nécessitent un véritable compte, comme les achats ou le multijoueur. Les modes aperçu et capture ne doivent pas enregistrer la progression du joueur. `sdk.host.locale` indique la langue du joueur : proposez votre jeu en anglais, et aussi dans votre langue si elle est différente. Traduire une fiche ne traduit pas le contenu du jeu.

## Bibliothèques, ressources et multijoueur

`sdk.libs` charge les versions prises en charge de Three.js, Phaser, Rapier, nipplejs et Colyseus. `sdk.assets` fournit des références de catalogue, de pack et de ressource ; `sdk.social` fournit les amis, les cartes de jeu et les actions de partage. Pour le multijoueur hébergé, `sdk.multiplayer.getConnection()` renvoie l’adresse du serveur et le jeton du joueur connecté ; rejoignez la partie avec le client Colyseus. La page [SDK serveur](https://www.playdrop.ai/fr/docs/server-sdk) couvre les serveurs hébergés ; un serveur que vous gérez vous-même n’a besoin de rien du SDK. Les anciennes API de salles relais ont été retirées.

## Testez avec le SDK avant de publier

Lancez votre serveur de développement habituel et ouvrez `https://www.playdrop.ai/creators/<username>/apps/game/<slug>/dev?url=http://localhost:5173/` dans Chrome pour jouer dans le véritable cadre PlayDrop, avec l’hôte du SDK. N’importe quel port localhost ou URL https fonctionne. Les fonctionnalités qui nécessitent un compte, comme les sauvegardes et les achats, fonctionnent dès que le jeu a été envoyé une première fois ; un envoi privé suffit. Dans le navigateur, la génération de médias s’exécute sous forme de tâches asynchrones, avec un coût en crédits confirmé par l’hôte. Consultez [catalogue.json](https://www.playdrop.ai/fr/docs/catalogue-json) pour les métadonnées de la fiche.
