شروع کار با کیت
شِل بازی را با مبدأ، ورودی، مبدأ والد و شناسهٔ پرتاب باز میکند. کلاینت بدون این مقدارها ساخته نمیشود.
نشانی راهاندازی
{gameOrigin}{entry}?parentOrigin={shellOrigin}&launchId={uuid}createGameClient خطا میدهد اگر این مقدارها نباشند یا parentOrigin یک مبدأ http: / https: نباشد.
در محیط انتشار، API برای بازیهای داخلی نشانی /releases/<id>/<game>/... میدهد. HTML پیش از اجرای بازی منتظر worker میماند و با import map ماژولهای بازی و SDK را به همان انتشار متصل میکند؛ HTTPS، worker و import map لازماند. پاسخ نشانیهای متغیر بازنویسیشده no-store است. توسعه نشانیهای فعلی را نگه میدارد. شناسهٔ انتشار از نسخهٔ 1.0.0 و پروتکل پل مستقل است؛ کد قدیمی هنگام قطع اینترنت جایگزین نمیشود. رسانههای دارای هش از کش مشترک SDK استفاده میکنند و نگهداری فایلها مرحلهٔ دانلود را تغییر نمیدهد.
دستدادن
- کلاینت را با
protocolVersionوcapabilitiesتبلیغشده بساز. onMessageرا ثبت کن وready()را صدا بزن. کلاینت حدود هر ثانیهreadyرا تکرار میکند تا تأیید شود.- شِل
initرا با{ session, displayName, capabilities?, presentation?, audioSettings?, graphicsSettings? }میفرستد. قابلیتهای تأییدشده اشتراک مانیفست ثبتشده، تبلیغ ready و پشتیبانی میزبان است. - بازی
acknowledge()را صدا میزند. تکرار ready میایستد و برایassets-v1آمادهسازی دارایی نشست شروع میشود. initتکراری نباید بازی شروعشده را از نو بنشاند.
sdk.onMessage(({ type, payload }) => {
if (type === "init") {
sdk.acknowledge();
// apply payload.session once
}
if (type === "pause") {
/* freeze input and sound */
}
if (type === "resume") {
/* continue */
}
});
sdk.ready();بعد از شروع بازی
- با تغییر حرکت یا زمان،
progressرا باmovesوelapsedMsصحیح بفرست. - برای پروتکل ۲ قبل از
completedرویداد checkpoint بفرست. completedیک پیشنهاد است. فرض نکن پاداش نشسته است.- برای اعلان کوتاه از
toastاستفاده کن. خطای مسدودکننده را هم جدا نگه دار. - اگر صفحه کلاینت را جمع میکند
dispose()را صدا بزن.
از شِل در http://127.0.0.1:5173 بازی کن، نه با باز کردن تنها نشانی میزبان بازی.