# Generowanie zasobów z AI dla gier PlayDrop

Generuj obrazy, muzykę, efekty dźwiękowe, mowę, wideo i modele 3D do gry: w przeglądarce za zgodą gracza lub na serwerze gry na koszt twórcy.

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

PlayDrop potrafi generować obrazy, muzykę, efekty dźwiękowe, mowę, wideo i modele 3D. Korzystaj z tego podczas tworzenia gry albo w samej grze, aby gracze dostawali wygenerowane treści.

## Podczas tworzenia gry

Zalogowani twórcy generują zasoby w sekcji Twórz na stronie PlayDrop (obraz, muzyka, dźwięk, mowa, wideo i 3D) albo proszą o nie PlayDrop Cloud podczas budowania gry. Każde generowanie kosztuje kredyty, a koszt jest pokazywany przed startem; wynik staje się zasobem, którego jesteś właścicielem. Używaj go jak każdego innego zasobu: pobierz go do swojego pakietu albo odwołaj się do niego w `uses` ([zasoby gry](https://www.playdrop.ai/pl/create/learn/game-assets)).

## W grze: z przeglądarki

`sdk.ai.<kind>.createTask(request)` prosi PlayDrop o wygenerowanie multimediów dla bieżącego gracza. PlayDrop pokazuje graczowi potwierdzenie z kosztem w kredytach, gracz płaci, a wynik jest prywatny i należy tylko do niego.

```js
try {
  const task = await sdk.ai.image.createTask({ input: "A friendly robot pet, flat colors", aspectRatio: "1:1" });
  const done = await waitForTask(task.id);
  const blob = await sdk.ai.tasks.downloadFile(done.id);
  showPet(URL.createObjectURL(blob));
} catch (error) {
  if (error.message === "ai_generation_cancelled") return;
  throw error;
}

async function waitForTask(id) {
  for (;;) {
    const task = await sdk.ai.tasks.get(id);
    if (task.status === "DONE") return task;
    if (["FAILED", "CANCELLED", "EXPIRED"].includes(task.status)) throw new Error(task.status);
    await new Promise((resolve) => setTimeout(resolve, 2000));
  }
}
```

- Rodzaje: `image`, `music`, `sfx`, `speech`, `video` i `model3d`. `sdk.ai.inputs.upload(blob)` wysyła obraz referencyjny.
- Naraz może być otwarte tylko jedno potwierdzenie; drugie wywołanie zostaje odrzucone z `ai_generation_in_progress`.
- Generowanie tekstu i JSON z przeglądarki jest niedostępne dla hostowanych gier i zwraca `app_ai_generation_disabled`. Użyj serwera.
- Wywołuj je z akcji gracza, w fazie `play`, i obsługuj anulowanie.

## W grze: z serwera

Na [serwerze gry](https://www.playdrop.ai/pl/create/learn/game-servers) `playdrop.ai` z `@playdrop/server` generuje tekst, JSON, obrazy, muzykę, efekty dźwiękowe, mowę, wideo i 3D. Płaci twórca i domyślnie jest właścicielem wyników; przekaż `{ owner: client.auth }`, aby oddać kwalifikujący się wynik temu graczowi.

```js
import { playdrop } from "@playdrop/server";

const task = await playdrop.ai.speech.createTask({ input: "Welcome back, captain." }, { owner: client.auth });
// Later, once the task is DONE:
const file = await playdrop.ai.tasks.downloadFile(task.id, { role: "primary" });
client.send("speech", { bytes: new Uint8Array(await file.arrayBuffer()), contentType: file.type });
```

- Wygenerowany plik jest prywatny: pobierz go na serwerze i wysyłaj bajty tylko zamierzonemu graczowi.
- Żądanie mowy może mieć najwyżej 40 słów.
- Wyniki generowania uruchomionego przez graczy testowych pozostają własnością twórcy, a samo generowanie działa w trybie testowym.
- Te wywołania działają w przesłanych grach, a nie w lokalnym środowisku deweloperskim.

Generowanie kosztuje kredyty, więc ogranicz, jak często gracze mogą je uruchamiać, i sprawdź jedno kompletne żądanie, od zadania aż do chwili, gdy gracz faktycznie zobaczy lub usłyszy wynik, zanim zbudujesz wokół niego grę.

## Powiązane poradniki

- [Zasoby gry](https://www.playdrop.ai/pl/create/learn/game-assets): Dodaj do gry obrazy, dźwięk, wideo i 3D: pliki w pakiecie, zasoby należące do gry, publiczne zasoby i pakiety oraz wyszukiwanie przez sdk.assets.
- [Serwery czasu rzeczywistego](https://www.playdrop.ai/pl/create/learn/game-servers): Uruchom hostowany serwer Colyseus 0.17 z bazą MongoDB dla swojej gry, łącz się z przeglądarki przez SDK, testuj z dwoma graczami i poznaj limity.
- [Zarabianie](https://www.playdrop.ai/pl/create/learn/monetization): Proś o recenzje przez requestReview, przyjmuj napiwki, sprzedawaj przedmioty przez sdk.shop, pokazuj reklamy pełnoekranowe i z nagrodą i poznaj udział twórcy.
