# Oyun asset’leri: dahil dosyalar, oyunun asset’leri ve asset paketleri

Oyununla görsel, ses, video ve 3D gönder: dahil dosyalar, oyunun asset’leri, herkese açık asset’ler ve paketler, sdk.assets ile çalışma zamanında bulma.

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

Bir oyun görsellerini ve seslerini üç yolla taşıyabilir. İhtiyacını karşılayan en basit yolu seç.

| Yol | Ne için uygun | Nasıl |
|---|---|---|
| Dahil dosyalar | Yalnızca oyunun kullandığı her şey | Pakette gönder ve göreli yolla yükle |
| Oyunun sahip olduğu asset’ler | PlayDrop’ta listelenmesini, yeniden kullanılmasını ya da satılmasını istediğin asset’ler | `ownedAssets` içinde tanımla |
| Herkese açık asset’ler ve asset paketleri | Diğer yapımcıların yayınladığı asset’leri yeniden kullanmak | `uses` içinde referans ver |

## Dahil dosyalar

Dosyaları oyunun yanına koy ve `assets/music.mp3` gibi göreli yollarla yükle. [Paketle](https://www.playdrop.ai/tr/create/learn/packaging) birlikte yüklenir ve tarayıcı ile uygulamalar tarafından önbelleğe alınır. Uygulamaların onları erken indirebilmesi için başlatmak için gerekenleri `prefetch.required` içinde listele ([yaşam döngüsü](https://www.playdrop.ai/tr/create/learn/lifecycle)). Basit bir HTML oyunu ise asset’lerini satır içine yerleştirmelidir.

## Oyunun sahip olduğu asset’ler

Oyunun sahip olduğu asset’leri katalog girişinde tanımla. Her biri, bu oyuna bağlı ve kendi sayfası olan bir PlayDrop asset’ine dönüşür:

```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`, `IMAGE`, `VIDEO`, `AUDIO`, `SPRITESHEET`, `MODEL_3D` veya `CUSTOM` olur; `subcategory` ve `format` onu daraltır.
- `files`, rolleri yollara eşler. Ses için `primary`, sprite sayfaları için `atlas` ve `manifest` gerekir.
- `runtimeKey`, oyunun onu çalışma zamanında bulmak için kullandığı addır.
- İsteğe bağlı: `visibility`, `license`, `tags` ve satmak için `shopPriceCredits` ile birlikte `shopListed`.

## Herkese açık asset’ler ve asset paketleri

Yayınlanmış asset’lere tam revizyonlarıyla, asset paketlerine sürümleriyle referans ver:

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

Onlara [PlayDrop asset’leri](https://www.playdrop.ai/assets) sayfasında ya da `sdk.assets.catalog.listPublic()`, `sdk.assets.packs.listPublic()` ve `sdk.search.query()` ile göz at. Herkese açık bir oyun yalnızca herkese açık asset’leri ve asset paketlerini kullanabilir; her asset’in lisansına uy.

## Asset’leri çalışma zamanında bul

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

Her sonuçta `assetRef`, `runtimeKey`, `sourceType` (`OWNED`, `DIRECT` veya `PACK`) ve `role`, `url`, `contentType` ile `sizeBytes` içeren `files` bulunur.

## Bağlayıcının kabul ettikleri

Yapay zeka uygulaman görselleri, videoları, sesleri, sprite sayfalarını ve sabit biçime dönüştürülmüş 3D modelleri yükleyebilir; sabit biçime dönüştürülmüş prosedürel görseller ve sprite sayfaları da buna dahildir. Çalıştırılabilir 3D modeller (`procedural` alt kategorili ya da `CUSTOM` biçimli `MODEL_3D`) PlayDrop’un kendi araçlarında çalışır ama API onları doğrulamak için yapımcı kodunu çalıştırmadığından bağlayıcı tarafından reddedilir. Onları GLB gibi standart bir biçime dönüştür ya da PlayDrop’ta zaten yayınlanmış bir sürüme referans ver.

Yeni görseller ve sesler için [yapay zekayla asset üretimi](https://www.playdrop.ai/tr/create/learn/ai-assets) kullan. PlayDrop’un tanımadığı biçimler için bkz. [özel asset biçimleri](https://www.playdrop.ai/tr/create/learn/custom-assets).

## İlgili kılavuzlar

- [Yapay zekayla asset üretimi](https://www.playdrop.ai/tr/create/learn/ai-assets): Oyunun için görsel, müzik, ses efekti, konuşma, video ve 3D model üret: tarayıcıdan oyuncu onayıyla ya da yapımcının ödediği bir oyun sunucusundan.
- [Özel biçimler ve oyuncu yapımları](https://www.playdrop.ai/tr/create/learn/custom-assets): Asset spesifikasyonuyla kendi biçimini tanımla, oyunun okuduğu ve yazdığı biçimleri bildir, oyuncular yapımlarını sdk.assets.custom ile kaydedip yayınlasın.
- [Paketleme ve .play](https://www.playdrop.ai/tr/create/learn/packaging): Kökünde catalogue.json olan derlenmiş bir klasör, ZIP ya da .play hazırla, oyun sayfası medyasını ve sunucuları bildir, prepare_catalogue_upload ile yükle.
