قابلیتها
پشتیبانی میزبان امروز: assets-v1، session-v1، session-navigation-v1، purchases-v1، presentation-v1 و audio-settings-v1. پرتاب پروتکل ۲ به assets-v1 و session-v1 نیاز دارد. purchases-v1 و session-navigation-v1 فقط وقتی اجباریاند که بازی آنها را اعلام کند. نمایش و صدا تا وقتی init.capabilities آن نام را دارد خاموش میمانند.
کیفیت گرافیک
با قابلیت اختیاری graphics-settings-v1 در پروتکل ۲، شِل انتخاب خودکار، کم، متوسط یا زیاد را روی همین دستگاه ذخیره میکند. init.graphicsSettings و graphics.settings مقدار preference، quality و revision را میفرستند. graphics.settings() را پیش از ساخت صحنه بخوان و با graphics.subscribe تغییرات را اعمال کن. graphics.frame(now, active) فقط فریمهای حرکت واقعی را میسنجد؛ هنگام آمادهسازی و تغییر اندازه graphics.reset() را صدا بزن. حالت خودکار کیفیت اولیه را از نشانههای کلی سختافزار تخمین میزند و پس از افت پایدار یک پله کم میکند؛ انتخاب دستی ثابت میماند. graphics.applied کاهش خودکار را با revision فعلی گزارش میکند. اطلاعات سختافزار از پل عبور نمیکند. شوتبال نخستین مصرفکننده است.
assets-v1
assets.resolve(selector)— شناسهٔ دقیق یا پرسوجو. نتیجهٔ خالی گسترش داده نمیشود.assets.load(descriptor)— واکشی و decode. تصویر میشودImageبهعلاوهٔ object URL؛ صدا میشودAudioBuffer.assets.get(key)— دارایی ازپیشبارگذاریشدهٔ نشست بعد ازacknowledge/assets.loaded.
بازی مسیر فایل کاتالوگ را نمیبیند. دارایی نشست میتواند required: true داشته باشد؛ شکست بارگذاری لازم بازی را بند میآورد. کلید اختیاری میتواند undefined باشد یا error داشته باشد. فهرست بستههای قابلنمایش برای توسعهدهنده در داراییها است.
session-v1
session.checkpoint(events, elapsedMs)— یک دسته رویداد را نگه میدارد. نشست عمومی در موفقیت برمیگردد.session.resume()— بعد از تعارض یا تازهسازی، نشست سرور را دوباره میخواند.session.navigate({levelId})باsession-navigation-v1دور تازهای میخواهد.nullنقشه را باز میکند.
نشست عمومی نسخهٔ ۲ میتواند حالت نمایش، revision، پیشنهادها، entitlementها، پاداش ثابت و توصیفگر دارایی داشته باشد. مسیر حل خصوصی و هویت مالک به بازی نمیرسد.
purchases-v1
purchases.list()— پیشنهادهای فعلی.purchases.buy(offerId)— شِل تأیید مطمئن نشان میدهد. بازی قیمت یا موجودی نمیگوید.
CANCELLED یعنی بازیکن تأیید را بست. تحویل تکراری با تکرارناپذیری سرور است، نه با کسر دوباره در بازی.
presentation-v1
init.presentation برابر { sceneId?, sceneRevision?, themeId, themeRevision, theme } است. sdk.presentation() همان رکورد حلشده را میدهد. بازی رنگ یا CSS والد نمیفرستد.
audio-settings-v1
init.audioSettings و بعد audio.settings شکل { muted, musicVolume, effectsVolume, ambienceVolume } با مقدار ۰ تا ۱ دارند. کلاینت با audio.settings-applied { requestId } تأیید میکند. میزبان قدیمی دکمهٔ بیصدای تزئینی نشان نمیدهد.
دستدادن قابلیت
پرتاب پروتکل ۲ به assets-v1 و session-v1 نیاز دارد. اگر بازی purchases-v1 را هم اعلام کند آن هم لازم است (جورچین). واژهچین و مینروب خرید اعلام نمیکنند. اگر اشتراک لازم ناقص باشد شِل خطای بهروزرسانی نشان میدهد. presentation-v1 و audio-settings-v1 اختیاریاند.