مستندات کیت بازی
کلاینت اجرایی packages/game-sdk/client.mjs است و برای بازیهای فعلی با نشانی /sdk/client.mjs سرو میشود. همان پیادهسازی بهصورت بستهٔ ESM @xuka/sdk@1.0.0 همراه با تایپهای TypeScript ساخته و به بازیهای production سرو میشود. نسخهٔ واقعی هنوز در npm منتشر نشده؛ نسخهٔ reserved فقط رزرو نام است. Studio فرمانهای validate، doctor و dev متصل به Sandbox را دارد. ثابتهای مشترک در packages/contracts/protocol.mjs است. قرارداد کیت منبع حقیقت پروتکل میماند.
کیفیت گرافیک
با قابلیت اختیاری graphics-settings-v1 در پروتکل ۲، شِل انتخاب خودکار، کم، متوسط یا زیاد را روی همین دستگاه ذخیره میکند. init.graphicsSettings و graphics.settings مقدار preference، quality و revision را میفرستند. graphics.settings() را پیش از ساخت صحنه بخوان و با graphics.subscribe تغییرات را اعمال کن. graphics.frame(now, active) فقط فریمهای حرکت واقعی را میسنجد؛ هنگام آمادهسازی و تغییر اندازه graphics.reset() را صدا بزن. حالت خودکار کیفیت اولیه را از نشانههای کلی سختافزار تخمین میزند و پس از افت پایدار یک پله کم میکند؛ انتخاب دستی ثابت میماند. graphics.applied کاهش خودکار را با revision فعلی گزارش میکند. اطلاعات سختافزار از پل عبور نمیکند. شوتبال نخستین مصرفکننده است.
در ماژول multiplayer، نشانهٔ delivery.recovery وضعیت بازیابی را مشخص میکند؛ حرکت و صدای قدیمی را دوباره پخش نکن. onTransition رویداد معتبر شلیک را میگیرد. قطع اتصال بازی درخواستهای منتظر را با DISCONNECTED رد میکند؛ فرمان آفلاین ارسال نمیشود و کلاینت بستهشده DISPOSED میدهد. پاسخ دیررس نادیده گرفته میشود. رد شدن درخواست به معنی ثبت نشدن فرمان نیست؛ برای تلاش مجدد صریح، operationId را حفظ و وضعیت معتبر را بازیابی کن. ورودی قدیمی خودکار تکرار نمیشود. اطلاعات ورود و اشیای Colyseus به بازی نمیرسند.
بستهٔ SDK کلاینت اصلی و زیرمسیرهای setup، multiplayer، players، events، protocol، presentation و manifest را دارد. در فایلهای مرورگر SDK را bundle کن یا import map نسبی بده. Studio کلید شخصی کنسول را فقط از محیط فرایند میخواند: XUKA_API_URL، XUKA_CONSOLE_URL، XUKA_PUBLISHER_ID و XUKA_DEVELOPER_KEY. validate فایلهای اعلامشده را بررسی میکند؛ doctor نسخهها و اتصال مجاز API را هم میسنجد؛ dev draft را آپلود و لینک Shell همان Sandbox را میدهد. مرورگر باید با صاحب کلید وارد شده باشد. کلید به بازی نمیرسد. اجرای localhost، hot reload، شبیهسازی آفلاین و ماژول سروری ناشناس هنوز پیاده نشدهاند.
نسخهها
| نسخه | چه کسی استفاده میکند |
|---|---|
1 | دستدادن قدیمی: ready، progress، completed، error، init، pause، resume، toast |
2 | بازیهایی که دارایی، checkpoint نشست و خرید مطمئن هم میخواهند |
شِل و بازی باید همان version مانیفست ثبتشده را داشته باشند. نسخهٔ قاطی رد میشود.
ورود
import { createGameClient } from "/sdk/client.mjs";
const sdk = createGameClient({
protocolVersion: 2,
capabilities: ["assets-v1", "session-v1", "purchases-v1"],
});بازی را فقط داخل ژوکا باز کن. parentOrigin و launchId از رشتهٔ پرسوجوی راهاندازی میآیند.