# إنشاء الأصول بالذكاء الاصطناعي لألعاب PlayDrop

أنشئ صورًا وموسيقى وأصواتًا وكلامًا وفيديو ونماذج ثلاثية الأبعاد للعبة في PlayDrop، من المتصفح بتأكيد اللاعب أو من خادم يدفع تكلفته المبدع.

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

يستطيع PlayDrop إنشاء الصور والموسيقى والمؤثرات الصوتية والكلام والفيديو والنماذج ثلاثية الأبعاد. استخدمه أثناء صنع لعبة، أو داخل اللعبة ليحصل اللاعبون على محتوى مُنشأ.

## أثناء صنع اللعبة

ينشئ المبدعون المسجّلو الدخول الأصول من صفحة «إنشاء» على موقع PlayDrop (صورة وموسيقى وصوت وكلام وفيديو ونموذج ثلاثي الأبعاد)، أو يطلبونها من PlayDrop Cloud أثناء بناء لعبة. تكلّف كل عملية إنشاء رصيدًا يُعرض قبل بدئها، وتصبح النتيجة أصلًا تملكه. استخدمها كأي أصل آخر: نزّلها إلى حزمتك أو أشر إليها في `uses` ([أصول اللعبة](https://www.playdrop.ai/ar/create/learn/game-assets)).

## داخل اللعبة: من المتصفح

يطلب `sdk.ai.<kind>.createTask(request)` من PlayDrop إنشاء وسائط للاعب الحالي. يعرض PlayDrop على اللاعب تأكيدًا بتكلفة الرصيد، فيدفع اللاعب، وتكون النتيجة خاصة به.

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

- الأنواع: `image` و`music` و`sfx` و`speech` و`video` و`model3d`. يرسل `sdk.ai.inputs.upload(blob)` صورة مرجعية.
- لا يمكن فتح أكثر من تأكيد واحد في الوقت نفسه؛ ويُرفض الاستدعاء الثاني بالخطأ `ai_generation_in_progress`.
- إنشاء النص وJSON من المتصفح غير متاح للألعاب المستضافة ويعيد `app_ai_generation_disabled`. استخدم خادمًا.
- استدعِه من إجراء يقوم به اللاعب، أثناء `play`، وعالج الإلغاء.

## داخل اللعبة: من خادم

على [خادم اللعبة](https://www.playdrop.ai/ar/create/learn/game-servers)، تُنشئ `playdrop.ai` من `@playdrop/server` النص وJSON والصور والموسيقى والمؤثرات الصوتية والكلام والفيديو والنماذج ثلاثية الأبعاد. يدفع المبدع التكلفة ويملك النتائج افتراضيًا؛ مرّر `{ owner: client.auth }` لمنح نتيجة مؤهلة لذلك اللاعب.

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

- الملف المُنشأ خاص: نزّله على الخادم وأرسل البايتات إلى اللاعب المقصود فقط.
- تقبل طلبات الكلام 40 كلمة كحد أقصى.
- تبقى عمليات الإنشاء التي يجريها اللاعبون التجريبيون ملكًا للمبدع وتعمل في وضع الاختبار.
- تعمل هذه الاستدعاءات في الألعاب المرفوعة، لا في التطوير المحلي.

يكلّف الإنشاء رصيدًا، فحدّد عدد المرات التي يمكن للاعبين تشغيله فيها، وأثبت نجاح طلب واحد كامل، من بدء العملية حتى يرى اللاعب النتيجة أو يسمعها فعلًا، قبل بناء لعبة حوله.

## أدلة ذات صلة

- [أصول اللعبة](https://www.playdrop.ai/ar/create/learn/game-assets): أضف الصور والصوت والفيديو والنماذج ثلاثية الأبعاد إلى لعبة PlayDrop: ملفات مضمّنة وأصول تملكها اللعبة وأصول وباقات عامة، والبحث عنها أثناء التشغيل عبر sdk.assets.
- [خوادم الألعاب الفورية](https://www.playdrop.ai/ar/create/learn/game-servers): شغّل خادم Colyseus 0.17 مستضافًا مع قاعدة بيانات MongoDB للعبتك، واتصل به من المتصفح عبر SDK، واختبره بلاعبَين، واعرف حدوده.
- [تحقيق الدخل](https://www.playdrop.ai/ar/create/learn/monetization): اطلب التقييمات باستخدام requestReview، واستقبل الإكراميات، وبِع العناصر عبر sdk.shop، واعرض الإعلانات البينية وإعلانات المكافأة، واعرف حصة المبدع من كل منها.
