قوانین سازنده
اینها محدودیتهای فعلی بسترند، نه جایگزین توافق حقوقی بعدی.
جداسازی
- بازی را از مبدأ میزبان بازی سرو کن، نه از مبدأ شِل. میزبان محلی
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 پیاده نشده است.