ثبت یک بازی
امروز ماژول سرور مورد اعتماد داخل همین مخزن ثبت میشود. کلاینت مرورگر را میتوان بهصورت ZIP از پنل توسعهدهنده هم بارگذاری کرد؛ اجرای خودکار کد سرور از ZIP وجود ندارد.
مسیر فعلی
- یک پوشهٔ مستقل زیر
games/<id>/باmanifest.json، ورودیclient/، در صورت نیازshared/،assets/وdocs/بساز. - فقط فایلهای client و دارایی عمومی تأییدشده را از میزبان بازی سرو کن.
server/را در HTTP نگذار. createGameClientرا از/sdk/client.mjsپیاده کن و دستدادن ready/init را تمام کن.- یک ماژول سرور بدون Nest زیر
games/<id>/server/اضافه کن کهGameModuleرا از@xuka/game-runtimeپیاده کند. - آن ماژول را صریح در ریشهٔ ترکیب API (
apps/api/src/games/register.ts) ثبت کن. - فقط همان handlerهایی را پیاده کن که
protocolVersionو قابلیتهایت لازم دارند.
API فهرست Xuka:Games:List را به ترتیب ثبت از رجیستری میدهد. manifest.id تکراری مانع راهاندازی میشود. بازی «بهزودی» میتواند فقط پوشه، مانیفست و تصویر کاتالوگ داشته باشد؛ پیشنمایش و شروع تا status: published و تعریف واقعی سرور رد میشود.
مانیفست
فیلد اختیاری seo شامل title (حداکثر ۱۲۰ نویسه)، description (۳۲۰ نویسه) و keywords (۲۰ عبارت، هرکدام ۸۰ نویسه) است. فقط متن ساده مجاز است. کلیدواژهها برای جستوجوی کاتالوگ و دادهٔ ساختاریافتهاند؛ meta keywords تولید نمیشود. guide با ساختار GameHelp نسخهٔ ۱، بخشهای عنوان و متن در locales.fa یا locales.en را در صفحهٔ عمومی نمایش میدهد. اگر guide نباشد، help ثبتشده بازاستفاده میشود. فیلد اختیاری gettingStarted در GameHelp برای fa و en یک تا شش مرحلهٔ متن ساده، هرکدام حداکثر ۲۴۰ نویسه، میپذیرد. این مراحل یک بار در بخش «چطور شروع کنیم؟» بازی قابل اجرا نمایش داده میشوند؛ اگر نباشند، بخش نمایش داده نمیشود و برای زبان انگلیسی، فارسی جایگزین است. متن کوتاه و دوستانه بنویس؛ توضیح شروع را در بخشهای راهنما تکرار نکن و ذخیرهٔ پیشرفت را برای بازی بدون ادامه وعده نده. فقط قابلیتهای واقعی را بنویس.
فیلدهای لازم: id، title، description، version، entry، protocolVersion، players، inputs، surfaces، status. جهت اجباری: orientation با مقدار portrait یا landscape؛ بدون جهت و any پذیرفته نمیشوند. اختیاری: capabilities، assets.preload و presentation.
فقط ورودی و سطح پیادهشده را تبلیغ کن. جورچین الان protocolVersion: 2 و assets-v1، session-v1، purchases-v1، presentation-v1 و audio-settings-v1 دارد. واژهچین و مینروب پروتکل ۲ با assets-v1، session-v1، presentation-v1 و audio-settings-v1 هستند. جزیرههای خاطره همان قابلیتها بهعلاوهٔ session-navigation-v1 را دارد. هیچکدام تلویزیون اعلام نمیکنند. شِل origin را از پیکربندی میگذارد. بازی مبدأ خودش را تعیین نمیکند.
تعریف سرور
تعریف ثبتشده قواعد مخصوص همان بازی را دارد. زماناجرای مرکزی احراز هویت، مالکیت نشست، ماندگاری، پاداش، تکرارناپذیری و رویدادها را نگه میدارد.
حداقل مسئولیتها: manifest، supportsMode، createSession برای خوانندههای قدیمی/نسخهٔ ۱، و verifyCompletion. بازی پروتکل ۲ هوک اختیاری لازم را هم پیاده میکند: preview، createV2Session، validateCheckpoint، preparePaidAction، verifyV2Completion، sessionAssets، publicOffers.
ثبت چه چیزی نیست
- اسکن
games/و اجرای هر چه آنجاست - حساب سازنده یا سازمان
- بارگذاری نسخه یا فهرست فروشگاه
- سازگاری خودکار با پیامهای پروتکل بررسینشده