# Ressources de jeu sur PlayDrop : fichiers inclus, ressources et packs

Intégrez images, sons, vidéos et 3D à un jeu PlayDrop : fichiers inclus, ressources du jeu dans catalogue.json, ressources et packs publics, accès avec sdk.assets.

Source: https://www.playdrop.ai/fr/create/learn/game-assets

Un jeu peut embarquer ses graphismes et ses sons de trois façons. Choisissez la plus simple qui répond à vos besoins.

| Méthode | Idéal pour | Comment |
|---|---|---|
| Fichiers inclus | Tout ce que seul le jeu utilise | Ajoutez-les au paquet et chargez-les par chemin relatif |
| Ressources du jeu | Les ressources que vous voulez présenter sur PlayDrop, réutiliser ou vendre | Déclarez-les dans `ownedAssets` |
| Ressources et packs publics | Réutiliser des ressources publiées par d’autres créateurs | Référencez-les dans `uses` |

## Fichiers inclus

Placez les fichiers à côté du jeu et chargez-les par chemin relatif, comme `assets/music.mp3`. Ils sont envoyés avec le [paquet](https://www.playdrop.ai/fr/create/learn/packaging) et mis en cache par le navigateur et les apps. Listez ceux qui sont nécessaires au démarrage dans `prefetch.required` pour que les apps puissent les télécharger à l’avance ([cycle de vie](https://www.playdrop.ai/fr/create/learn/lifecycle)). Un jeu en HTML simple doit plutôt intégrer ses ressources directement dans le fichier.

## Ressources du jeu

Déclarez les ressources que le jeu possède dans son entrée de catalogue. Chacune devient une ressource PlayDrop avec sa propre page, rattachée à ce jeu :

```json
{
  "ownedAssets": [
    { "name": "moon-theme", "runtimeKey": "music.main", "displayName": "Moon theme",
      "category": "AUDIO", "files": { "primary": "assets/moon-theme.mp3" } },
    { "name": "astronaut", "runtimeKey": "sprites.player", "displayName": "Astronaut",
      "category": "SPRITESHEET", "files": { "atlas": "assets/astronaut.png", "manifest": "assets/astronaut.json" } }
  ]
}
```

- `category` vaut `IMAGE`, `VIDEO`, `AUDIO`, `SPRITESHEET`, `MODEL_3D` ou `CUSTOM` ; `subcategory` et `format` la précisent.
- `files` associe des rôles à des chemins. L’audio exige `primary` ; les feuilles de sprites exigent `atlas` et `manifest`.
- `runtimeKey` est le nom qu’utilise le jeu pour la retrouver à l’exécution.
- Facultatif : `visibility`, `license`, `tags`, ainsi que `shopListed` avec `shopPriceCredits` pour la vendre.

## Ressources et packs publics

Référencez les ressources publiées par révision exacte, et les packs par version :

```json
{
  "uses": {
    "assets": [{ "ref": "asset:someone/forest-tiles@r3", "runtimeKey": "tiles.forest" }],
    "packs": ["pack:someone/ui-kit@1.2.0"]
  }
}
```

Parcourez-les sur [les ressources PlayDrop](https://www.playdrop.ai/assets) ou avec `sdk.assets.catalog.listPublic()`, `sdk.assets.packs.listPublic()` et `sdk.search.query()`. Un jeu public ne peut utiliser que des ressources et des packs publics ; respectez la licence de chaque ressource.

## Trouver les ressources à l’exécution

```js
const music = sdk.assets.resolveAppAsset("music.main");
const file = music.files.find((entry) => entry.role === "primary");
audioElement.src = file.url;

for (const asset of sdk.assets.listAppAssets()) console.log(asset.runtimeKey, asset.sourceType);
```

Chaque résultat contient `assetRef`, `runtimeKey`, `sourceType` (`OWNED`, `DIRECT` ou `PACK`) et `files` avec `role`, `url`, `contentType` et `sizeBytes`.

## Ce que le connecteur accepte

Votre app d’IA peut envoyer des images, des vidéos, de l’audio, des feuilles de sprites et des modèles 3D figés, y compris des images et des feuilles de sprites procédurales figées. Les modèles 3D exécutables (`MODEL_3D` de sous-catégorie `procedural` ou au format `CUSTOM`) fonctionnent dans les outils de PlayDrop, mais le connecteur les refuse, car l’API n’exécute pas le code des créateurs pour les valider. Figez-les dans un format standard comme GLB, ou référencez une version déjà publiée sur PlayDrop.

Créez de nouveaux graphismes et sons avec la [génération de ressources par IA](https://www.playdrop.ai/fr/create/learn/ai-assets). Pour les formats que PlayDrop ne connaît pas, consultez [formats de ressources personnalisés](https://www.playdrop.ai/fr/create/learn/custom-assets).

## Guides associés

- [Génération de ressources par IA](https://www.playdrop.ai/fr/create/learn/ai-assets): Générez images, musique, effets sonores, voix, vidéos et 3D pour un jeu PlayDrop : dans le navigateur avec l’accord du joueur, ou sur un serveur payé par le créateur.
- [Formats personnalisés et créations](https://www.playdrop.ai/fr/create/learn/custom-assets): Définissez votre format de ressource, déclarez les formats qu’un jeu lit ou écrit, et laissez les joueurs enregistrer et publier leurs créations avec sdk.assets.custom.
- [Paquets et .play](https://www.playdrop.ai/fr/create/learn/packaging): Organisez un dossier, ZIP ou .play compilé avec catalogue.json à la racine, déclarez médias de fiche et serveurs, puis envoyez avec prepare_catalogue_upload.
