رفتن به محتوا
xuka●توسعه‌دهندگان
فهرست فضای توسعه‌دهندگان

قوانین سازنده

این‌ها محدودیت‌های فعلی بسترند، نه جایگزین توافق حقوقی بعدی.

جداسازی

  • بازی را از مبدأ میزبان بازی سرو کن، نه از مبدأ شِل. میزبان محلی http://127.0.0.1:5501 است.
  • میزبان فقط فایل‌های client ثبت‌شده و دارایی عمومی تأییدشده را سرو می‌کند. server/، کد خصوصی shared و تست‌ها از HTTP در دسترس نیستند.
  • ماژول‌های سرور مورد اعتماد زیر games/<id>/server/ هستند و از @xuka/game-runtime ثبت می‌شوند. نباید apps/api یا NestJS را وارد کنند.
  • سندباکس iframe برابر است با allow-scripts allow-same-origin. از شِل نخواه این سندباکس را بردارد یا بازی را روی مبدأ خودش میزبانی کند.
  • هر postMessage کانال xuka.game، launchId دقیق، و نسخهٔ پروتکل مانیفست ثبت‌شده را دارد. targetOrigin هرگز * نیست.
  • شِل فقط از پنجرهٔ iframe انتخاب‌شده و مبدأ بازی پیام می‌پذیرد. کیت فقط از parent و مقدار parentOrigin پیام می‌پذیرد.

بازی نباید

  • کوکی یا توکن ورود را بخواند یا ذخیره کند.
  • APIهای HTTP کیف پول، فروشگاه یا خرید ژوکا را صدا بزند.
  • با ACoreX یا هر ارائه‌دهندهٔ هویت حرف بزند.
  • completed محلی را دلیل اعطای سکه یا تجربه بداند. پذیرش نتیجه با سرور است.
  • پشتیبانی تلویزیون، ریموت یا چندنفره را در مانیفست تبلیغ کند مگر آن قابلیت پیاده و بررسی شده باشد.
  • پیام، قابلیت یا نسخهٔ پروتکل اضافه اختراع کند مگر قرارداد نسخه‌دار عوض شود.

بازی می‌تواند

  • بازی را بکشد، ورودی بگیرد، و progress، completed، error و toast بفرستد.
  • بعد از init فقط متدهایی را صدا بزند که قابلیت‌شان تأیید شده است.
  • بازخورد بازیکن را با client.toast نشان بدهد، نه با فرض داشتن نوار شِل.
  • وقتی شِل pause یا resume می‌فرستد، بازی را نگه دارد و ادامه بدهد.

صداقت مانیفست

فقط inputs، surfaces، capabilities و assets.preload پیاده‌شده را اعلام کن. شِل اشتراک مانیفست ثبت‌شده، تبلیغ ready و پشتیبانی میزبان را می‌گیرد. نسخه‌های قاطی رد می‌شوند.

نتیجه و پول

  • شواهد پایان یک پیشنهاد است. پاداش، مالکیت، بررسی replay و تکرارناپذیری سمت سرور می‌ماند.
  • در پروتکل ۲ قبل از completed باید checkpoint فرستاده شود.
  • قیمت و موجودی کار شِل و API است. بازی موجودی را نشان نمی‌دهد و عوض نمی‌کند.

دارایی‌ها

  • بازی مسیر ذخیره‌سازی را نمی‌بیند. نشانی نسخه‌دار و توصیفگر را از میزبان می‌گیرد.
  • دارایی‌های لازم نشست باید قبل از بازی decode شوند. شکست صدای اختیاری نباید مانع پایان شود.
  • pnpm assets:compress و اجرای محلی، تصاویر را با برابری دقیق پیکسل و WAV را با gzip بدون تغییر بایت آماده می‌کنند. فقط خروجی کوچک‌تر تحویل داده می‌شود؛ اصل فایل حفظ می‌شود. توصیفگر، MIME و checksum خروجی واقعی را دارد. تبدیل FLAC پیاده نشده است.