انشر لعبة HTML بسيطة من تطبيق الذكاء الاصطناعي
انشر ملف HTML واحدًا مكتفيًا بذاته حتى 10 MiB باستخدام upload_game: ما يناسب، والكتالوج المصغّر، والظهور، والتحديثات، ومتى تنتقل إلى حزمة.
ينشر المسار البسيط لعبة HTML قياسية واحدة، مثل لعبة أركيد مرسومة على عنصر canvas أو لغز مبني على DOM، باستدعاء upload_game واحد. لا يحتاج إلى PlayDrop SDK ولا إلى مجلد بناء ولا إلى ملفات إضافية، ويعيد رابطًا يمكن لأي شخص فتحه على هاتف أو كمبيوتر.
متى يناسب المسار البسيط
- اللعبة كلها ملف HTML واحد بحجم 10 MiB كحد أقصى (10,485,760 بايت بترميز UTF-8)، مع نصوصها البرمجية وأنماطها وصورها وأصواتها مضمّنة داخله.
- هي لعبة متصفح عادية: لا تستدعي PlayDrop SDK، لذا لا حفظ سحابي ولا لوحات متصدرين ولا إنجازات ولا مشاركة ولا مجموعات ولا مشتريات ولا إعلانات.
- لا تحتاج إلى ملفات منفصلة: لا صور أو فيديوهات لصفحة اللعبة ولا خادم لعبة.
إذا لم يتحقق أي من هذه الشروط، فاستخدم حزمة بدلًا من ذلك. احتفظ بالميزات التي طلبها الشخص الذي تعمل معه؛ ولا تحذفها أبدًا ولا تدمج لعبة متعددة الملفات في ملف واحد لتناسب هذا المسار. يرفض الرفع استدعاءات SDK وكود الخادم وحقول الكتالوج الخاصة بالحزم بالخطأ advanced_upload_required.
أرسل اللعبة
استدعِ upload_game بـ requestId جديد وملف HTML الكامل وكتالوج مصغّر للعبة واحدة:
{
"requestId": "moon-jump-first-upload",
"html": "<!doctype html><html><head><meta charset=\"utf-8\"><title>Moon Jump</title></head><body>…</body></html>",
"catalogue": {
"apps": [{
"name": "moon-jump",
"displayName": "Moon Jump",
"description": "Jump between lunar platforms and reach the flag.",
"controls": "Tap or press Space to jump.",
"tags": ["game-genre/casual"],
"types": ["solo"],
"controller": { "support": "off" },
"authMode": "NONE",
"primarySurface": "MOBILE_PORTRAIT"
}]
}
}nameهو المعرّف الدائم للعبة: من 1 إلى 100 حرف صغير أو رقم أو شرطة.- يجب أن تتضمن
tagsنوعًا مثلgame-genre/casual؛ راجع الأنواع والوسوم. - يصرّح
typesبطريقة اللعب؛ ولعبة الملف الواحد تكون عادةً["solo"]. أما أحجام المجموعات واللعب عبر الإنترنت فخاصة بالحزم. - يذكر
controller.supportالدعم الحقيقي لوحدات التحكم، بما في ذلكoff. - يحدد
authModeتسجيل الدخول:NONEأوOPTIONALيتيح لأي شخص اللعب؛ وإن أُغفل فالقيمة الافتراضيةREQUIRED. أدرجه في كل تحديث. - يسمّي
primarySurfaceالاتجاه الذي صُممت له اللعبة؛ وتُدرج عمليات الرفع البسيطة للكمبيوتر وللوضعين الأفقي والعمودي.
الحقول الأخرى المقبولة هي subtitle وemoji وcolor وlicense وcreation وreleaseNotes وinspirationPrompt وmakingOf وsourceRepository وsourceLocale وofflineSupported وinstant. ويعيّن PlayDrop رقم الإصدار.
اختر من يمكنه اللعب
- أغفل
visibilityلاتباع إعداد حساب المبدع للعبة جديدة (عام ما لم يختر غير مدرج أو خاص)؛ ويحتفظ التحديث بجمهور اللعبة الحالي. - تحفظ
"private"إصدارًا لا يفتحه إلا المبدع، للاختبار. انشر ذلك الإصدار نفسه لاحقًا بـpublish_game_version؛ ولا ترفعه مجددًا. - تنشر
"unlisted"اللعبة لكل من لديه الرابط، دون إدراجها؛ وتنشرها"public"ليكتشفها الناس.
اتبع ما طلبه الشخص الذي تعمل معه، ولا تجعل لعبة أكثر ظهورًا مما أراد أبدًا. راجع من يمكنه اللعب.
اقرأ الإيصال
يتضمن الإيصال gameId وslug وversion وstatus وvisibility وurl، وهو رابط الإصدار المحدد للمالك. وتحصل الألعاب العامة وغير المدرجة أيضًا على shareUrl، الصفحة الدائمة للعبة؛ أعطِ هذا الرابط للشخص الذي تعمل معه. أما للإصدار الخاص، فأعطه url. ويبلّغ instant وinstantReason عن أهلية Instant.
حدّث اللعبة
استدعِ list_games، ومرّر gameId الخاص باللعبة واحتفظ بـ name. أرسل ملف HTML الكامل والكتالوج المصغّر الكامل مجددًا: كل عملية رفع لقطة كاملة، والحقول المُغفلة تغيب عن الإصدار الجديد. يبقى الرابط كما هو. اللعبة التي رُفعت أول مرة بوصفها حزمة يجب أن تواصل استخدام مسار الحزمة، حتى لا تضيع ملفاتها وميزاتها.
الانتقال إلى حزمة لاحقًا
إضافة الحفظ السحابي أو لوحة متصدرين أو صور صفحة اللعبة أو خادم تحوّل اللعبة إلى حزمة. وهذا تحديث عادي للعبة نفسها: احتفظ بـ name، وارفعها باستخدام prepare_catalogue_upload وعيّن expectedCurrentVersion إلى الإصدار الحالي من list_games. اقرأ التحزيم.