بازیکنان در چندین دستگاه بازی می کنند و چندین بار یک بازی را روی یک دستگاه نصب می کنند. در نتیجه، آنها همیشه باید بازی خود را از آخرین وضعیت پیشرفت خود شروع کنند. برای رسیدن به این هدف باید یک راهکار ذخیره ابری را در بازی خود پیاده سازی کنید.
بازی شما نیاز به پیاده سازی راه حل ذخیره ابری دارد که دارای دو بخش است:
ذخیره ابری
وضعیت بازی بازیکن خود را در فضای ابری ذخیره کنید. وقتی بازی را شروع کردند آن را بازیابی کنید. خدمات بازیهای Play Saved Games سرویسی برای این کار ارائه میکند، اما میتوانید از هر راهحل ذخیره ابری دلخواهتان استفاده کنید.
حل تعارض برای چندین حالت بازی
اگر کاربری چندین حساب دارد یا اگر بین دادههای بازی ذخیرهشده در دستگاهش و در فضای ابری تضاد وجود دارد، به یک خطمشی حل تداخل نیاز دارید. معمولاً کاربر تصمیم می گیرد که چگونه این تضادها را حل کند. خط مشی حل تعارض شما باید سناریوهای کلیدی زیر را بررسی کند:
- چندین حساب برای هر کاربر: مواردی را که در آن یک کاربر با استفاده از حسابهای مختلف با برنامه تعامل دارد، مدیریت کنید.
- تضادهای حالت: اختلافاتی را که بین حالت بازی محلی و حالت بازی ذخیره شده در فضای ابری ایجاد می شود، برطرف کنید.
بازی های ذخیره شده
سرویس بازیهای ذخیره شده راهی مناسب برای ذخیره پیشرفت بازی بازیکنان خود در سرورهای Google در اختیار شما قرار میدهد. بازی شما میتواند دادههای ذخیرهشده بازی را بازیابی کند تا به بازیکنان بازگشته اجازه دهد بازی را در آخرین نقطه ذخیره خود از هر دستگاهی ادامه دهند.
این سرویس چندین مزیت کلیدی را برای بازیکنان و توسعه دهندگان ارائه می دهد:
- داده های بازی را در چندین دستگاه همگام سازی کنید. به عنوان مثال، یک بازیکن میتواند یک بازی را در تلفن اندرویدی شروع کند و بدون از دست دادن پیشرفت، به بازی در رایانه لوحی ادامه دهد.
- از ماندگاری داده ها اطمینان حاصل کنید. بازیکنان می توانند بازی خود را از سر بگیرند، حتی اگر دستگاه آنها گم شده، از بین برود، یا با یک مدل جدیدتر مبادله شود.
برای آشنایی با نحوه پیادهسازی بازیهای ذخیرهشده برای پلتفرم خود، به اجرای Client مراجعه کنید.
اصول بازی های ذخیره شده
یک بازی ذخیره شده از دو بخش تشکیل شده است:
- یک حباب باینری بدون ساختار - این داده ها می توانند هر چیزی را که انتخاب می کنید نشان دهند و بازی شما مسئول تجزیه و نوشتن آن است.
- فراداده ساختاریافته - ویژگیهای اضافی مرتبط با دادههای باینری که به خدمات بازیهای Google Play اجازه میدهد بازیهای ذخیرهشده را به صورت بصری در رابط کاربری (UI) فهرست بازیهای ذخیرهشده پیشفرض ارائه کنند، و اطلاعات مفیدی را در برنامه بازیهای Google Play ارائه دهند (مثلاً آخرین مهر زمانی بهروزرسانی شده).
یک بازی میتواند تعداد دلخواه بازیهای ذخیرهشده را برای یک بازیکن بنویسد، مشروط به سهمیه کاربر ، بنابراین هیچ الزام سختی برای محدود کردن بازیکنان به یک فایل ذخیره وجود ندارد.
تصاویر جلد
سرویس بازیهای ذخیره شده علاوه بر ویژگیهای ماندگاری، تجربه کاربری بصری را نیز ارائه میکند. شما قویاً تشویق میشوید که تصاویر نماینده را با فایلهای ذخیره مربوطه مرتبط کنید. اگر از رابط کاربری پیشفرض فهرست بازیهای ذخیرهشده (UI) ارائهشده توسط Play Games SDK در بازی خود استفاده میکنید، رابط کاربری این تصاویر جلد را نمایش میدهد. تصاویر جلد ممکن است در برنامه بازیهای Google Play نیز ظاهر شوند.
توضیحات
می توانید یک توضیح متنی کوتاه از محتوای یک بازی ذخیره شده خاص ارائه دهید. این توضیحات مستقیماً به بازیکنان نمایش داده می شود و باید حالتی را که بازی ذخیره شده نشان می دهد، خلاصه کند. به عنوان مثال، "مبارزه با گابلین ها در جنگل های تاریک".
سهمیه
برای هیچ داده بازی ذخیره شده ای که در فضای ابری ذخیره شده است، هزینه ای از توسعه دهندگان دریافت نمی شود. در عوض، این دادهها در سهمیه Google Drive بازیکن حساب میشوند - هرگز لازم نیست نگران آن باشید. تنها سهمیه ای که توسعه دهندگان بازی باید به آن اهمیت دهند سهمیه Google Drive API آنها است.
جداسازی نوشتن را بخوانید
همه بازیهای ذخیرهشده در پوشه دادههای برنامه Google Drive بازیکنان شما ذخیره میشوند. این پوشه را فقط بازی شما میتواند بخواند و بنویسد - بازیهای توسعهدهندگان دیگر نمیتوانند آن را مشاهده یا تغییر دهند، بنابراین محافظت بیشتری در برابر خرابی دادهها وجود دارد. علاوه بر این، بازیهای ذخیرهشده از دستکاری مستقیم بازیکنان محافظت میشوند، بنابراین نمیتوانند بازیهای ذخیرهشده را تغییر دهند.
پشتیبانی آفلاین
وقتی دستگاه بازیکن آفلاین است، بازی شما همچنان میتواند در یک بازی ذخیرهشده بخواند و بنویسد، اما تا زمانی که اتصال شبکه برقرار نشود، نمیتواند با خدمات بازیهای Google Play همگامسازی شود. پس از اتصال مجدد، خدمات بازی های Google Play به طور ناهمزمان داده های ذخیره شده بازی را در سرورهای Google به روز می کند.
حل تعارض
هنگام استفاده از سرویس بازی های ذخیره شده، بازی شما ممکن است هنگام تلاش برای ذخیره داده ها با تداخل مواجه شود. این تضادها زمانی رخ می دهد که کاربر بیش از یک نمونه از برنامه شما را در دستگاه ها یا رایانه های مختلف اجرا می کند. برنامه شما باید بتواند این تضادها را به گونه ای حل کند که بهترین تجربه کاربری را ارائه دهد.
به طور معمول، تداخل دادهها زمانی رخ میدهد که یک نمونه از برنامه شما نتواند به سرویس بازیهای ذخیرهشده دسترسی پیدا کند، در حالی که تلاش میکند دادهها را بارگیری یا ذخیره کند. به طور کلی، بهترین راه برای جلوگیری از تداخل داده ها این است که همیشه آخرین داده ها را هنگام راه اندازی یا از سرگیری برنامه شما بارگیری کنید و داده ها را با فرکانس مناسب در سرویس ذخیره کنید. با این حال، همیشه نمی توان از تضاد داده ها جلوگیری کرد. برنامه شما باید تمام تلاش خود را برای رسیدگی به تضادها به کار گیرد تا داده های کاربران شما حفظ شود و آنها تجربه خوبی داشته باشند.
محدودیت ها
خدمات بازیهای Google Play محدودیتهای اندازه را بر روی دادههای باینری و اندازه تصویر جلد به ترتیب 3 مگابایت و 800 کیلوبایت اعمال میکند.
متادیتای بازی ذخیره شده
ابرداده ساختار یافته برای یک بازی ذخیره شده حاوی این ویژگی ها است:
اموال | توضیحات |
---|---|
شناسه | یک رشته منحصر به فرد ایجاد شده توسط خدمات بازی های Google Play برای این بازی ذخیره شده. از این شناسه برای اشاره به بازی ذخیره شده در کلاینت های بازی خود استفاده کنید. |
نام | یک نام کوتاه ارائهشده توسط توسعهدهنده برای بازی ذخیرهشده، برای مثال «Save Slot 1» یا «PlayerName_Save1». این به بازیکنان نشان داده نمی شود. |
توضیحات | توضیحات ارائه شده توسط توسعه دهنده از بازی ذخیره شده. |
آخرین تغییر | مُهر زمانی بر حسب میلی ثانیه توسط سرویسهای بازیهای Google Play برای آخرین بهروزرسانی بازی ذخیرهشده ایجاد شده است. |
زمان بازی | زمان ارائه شده توسط توسعه دهنده (بر حسب میلی ثانیه) برای نمایش در بازی ذخیره شده. این مقدار باید نشان دهنده مدت زمانی باشد که بازیکن بازی ذخیره مربوطه را انجام داده است. به عنوان مثال، مقدار زمان بازی 3600000 توسط خدمات بازی های Google Play به صورت "1 ساعت" نمایش داده می شود. |
تصویر جلد | این یک ویژگی اختیاری است که توسط برنامهنویس ارائه میشود و حاوی اطلاعاتی درباره تصویر جلد است. |
پیاده سازی های مشتری
برای یادگیری نحوه اجرای بازی ذخیره شده برای پلتفرم خود، به منابع زیر مراجعه کنید: