# Aset game di PlayDrop: berkas bawaan, aset milik game, dan pack bersama

Sertakan gambar, suara, video, dan 3D di game PlayDrop: berkas bawaan, aset milik game, aset serta pack publik, dan pencarian lewat sdk.assets.

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

Game bisa membawa gambar dan suaranya dengan tiga cara. Pilih cara paling sederhana yang memenuhi kebutuhan Anda.

| Cara | Cocok untuk | Caranya |
|---|---|---|
| Berkas bawaan | Semua yang hanya dipakai game itu sendiri | Sertakan di dalam paket dan muat dengan jalur relatif |
| Aset milik game | Aset yang ingin Anda tampilkan di PlayDrop, dipakai ulang, atau dijual | Deklarasikan di `ownedAssets` |
| Aset dan pack publik | Memakai ulang aset yang diterbitkan kreator lain | Rujuk di `uses` |

## Berkas bawaan

Letakkan berkas di samping game dan muat dengan jalur relatif, seperti `assets/music.mp3`. Berkas ini diunggah bersama [paket](https://www.playdrop.ai/id/create/learn/packaging) dan di-cache oleh browser dan aplikasi. Cantumkan berkas yang dibutuhkan untuk memulai di `prefetch.required` agar aplikasi bisa mengunduhnya lebih awal ([siklus hidup](https://www.playdrop.ai/id/create/learn/lifecycle)). Game HTML sederhana harus menyematkan asetnya langsung di dalam berkas.

## Aset milik game

Deklarasikan aset milik game di entri katalognya. Setiap aset menjadi aset PlayDrop dengan halamannya sendiri, yang terhubung ke game ini:

```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` bernilai `IMAGE`, `VIDEO`, `AUDIO`, `SPRITESHEET`, `MODEL_3D`, atau `CUSTOM`; `subcategory` dan `format` memperinci kategorinya.
- `files` memetakan peran ke jalur. Audio memerlukan `primary`; spritesheet memerlukan `atlas` dan `manifest`.
- `runtimeKey` adalah nama yang dipakai game untuk menemukan aset saat berjalan.
- Opsional: `visibility`, `license`, `tags`, serta `shopListed` dengan `shopPriceCredits` untuk menjualnya.

## Aset dan pack publik

Rujuk aset yang sudah diterbitkan berdasarkan revisi persis, dan pack berdasarkan versi:

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

Jelajahi di [aset PlayDrop](https://www.playdrop.ai/assets) atau dengan `sdk.assets.catalog.listPublic()`, `sdk.assets.packs.listPublic()`, dan `sdk.search.query()`. Game publik hanya bisa memakai aset dan pack publik; patuhi lisensi setiap aset.

## Temukan aset saat berjalan

```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);
```

Setiap hasil memiliki `assetRef`, `runtimeKey`, `sourceType` (`OWNED`, `DIRECT`, atau `PACK`), dan `files` dengan `role`, `url`, `contentType`, serta `sizeBytes`.

## Apa yang diterima konektor

Aplikasi AI Anda bisa mengunggah gambar, video, audio, spritesheet, dan model 3D yang sudah di-bake, termasuk gambar dan spritesheet prosedural yang sudah di-bake. Model 3D yang dapat dieksekusi (`MODEL_3D` dengan subkategori `procedural` atau format `CUSTOM`) berjalan di alat milik PlayDrop sendiri, tetapi ditolak oleh konektor, karena API tidak menjalankan kode kreator untuk memvalidasinya. Bake model tersebut ke format standar seperti GLB, atau rujuk versi yang sudah diterbitkan di PlayDrop.

Buat gambar dan suara baru dengan [pembuatan aset AI](https://www.playdrop.ai/id/create/learn/ai-assets). Untuk format yang tidak dikenal PlayDrop, lihat [format aset kustom](https://www.playdrop.ai/id/create/learn/custom-assets).

## Panduan terkait

- [Pembuatan aset AI](https://www.playdrop.ai/id/create/learn/ai-assets): Buat gambar, musik, efek suara, ucapan, video, dan 3D untuk game PlayDrop, dari browser dengan konfirmasi pemain atau dari server game atas biaya kreator.
- [Format kustom dan kreasi pemain](https://www.playdrop.ai/id/create/learn/custom-assets): Buat format aset sendiri, nyatakan format yang dibaca atau ditulis game, dan biarkan pemain menyimpan serta menerbitkan kreasi lewat sdk.assets.custom.
- [Pengemasan dan .play](https://www.playdrop.ai/id/create/learn/packaging): Susun folder hasil build, ZIP, atau .play dengan catalogue.json di root, deklarasikan media listingan dan server, lalu unggah dengan prepare_catalogue_upload.
