بازیکنان روی چندین دستگاه بازی میکنند و یک بازی را چندین بار روی یک دستگاه نصب میکنند. در نتیجه، آنها همیشه باید بازی خود را از آخرین وضعیت پیشرفت خود شروع کنند. برای دستیابی به این هدف، باید یک راهکار ذخیرهسازی ابری را در بازی خود پیادهسازی کنید.
برای رعایت دستورالعملهای تجربه کاربری Google Play Games Level Up، بازی شما باید یک راهکار ذخیرهسازی ابری را پیادهسازی کند که دارای دو بخش است:
ذخیره ابری
وضعیت بازی بازیکن خود را در فضای ابری ذخیره کنید. وقتی بازی را شروع کردند، آن را بازیابی کنید. سرویسهای بازیهای پلی، بازیهای ذخیرهشده، سرویسی برای این کار ارائه میدهند، اما میتوانید از هر راهکار ذخیرهسازی ابری دلخواه خود استفاده کنید.
حل تعارض برای حالتهای بازی چندگانه
اگر کاربری چندین حساب کاربری داشته باشد یا اگر بین دادههای ذخیره شده بازی روی دستگاه و فضای ابری او تداخل وجود داشته باشد، به یک سیاست حل اختلاف نیاز دارید. معمولاً کاربر تصمیم میگیرد که چگونه این تداخلها را حل کند. سیاست حل اختلاف شما باید سناریوهای کلیدی زیر را در نظر بگیرد:
- چندین حساب کاربری برای هر کاربر: مواردی را مدیریت کنید که یک کاربر با استفاده از حسابهای کاربری مختلف با برنامه تعامل دارد.
- تداخل وضعیتها: اختلافاتی که بین وضعیت بازی محلی و وضعیت بازی ذخیرهشده در ابر ایجاد میشود را حل کنید.
بازیهای ذخیره شده
سرویس بازیهای ذخیرهشده روشی آسان برای ذخیره پیشرفت بازیکنان در بازی در سرورهای گوگل ارائه میدهد. بازی شما میتواند دادههای ذخیرهشده بازی را بازیابی کند تا به بازیکنان قدیمی اجازه دهد بازی را از آخرین نقطه ذخیره خود از هر دستگاهی ادامه دهند.
این سرویس چندین مزیت کلیدی برای بازیکنان و توسعهدهندگان ارائه میدهد:
- همگامسازی دادههای بازی بین چندین دستگاه. به عنوان مثال، یک بازیکن میتواند یک بازی را روی یک گوشی اندروید شروع کند و بدون از دست دادن پیشرفت، به طور یکپارچه روی تبلت به بازی ادامه دهد.
- تضمین پایداری دادهها. بازیکنان میتوانند بازی خود را حتی در صورت گم شدن، از بین رفتن یا تعویض دستگاه با مدل جدیدتر، از سر بگیرند.
برای یادگیری نحوه پیادهسازی بازیهای ذخیرهشده برای پلتفرم خود، به پیادهسازیهای کلاینت مراجعه کنید.
اصول اولیه بازیهای ذخیره شده
یک بازی ذخیره شده از دو بخش تشکیل شده است:
- یک حباب دودویی بدون ساختار - این دادهها میتوانند هر چیزی را که شما انتخاب میکنید نشان دهند و بازی شما مسئول تجزیه و نوشتن در آن است.
- فرادادههای ساختاریافته - ویژگیهای اضافی مرتبط با دادههای دودویی که به سرویسهای بازیهای گوگل پلی اجازه میدهند بازیهای ذخیرهشده را بهصورت بصری در رابط کاربری پیشفرض (UI) فهرست بازیهای ذخیرهشده نمایش دهند و اطلاعات مفیدی را در برنامه بازیهای گوگل پلی (مثلاً آخرین بهروزرسانی) ارائه دهند.
یک بازی میتواند تعداد دلخواهی از بازیهای ذخیره شده را برای یک بازیکن بنویسد، منوط به سهمیه کاربر ، بنابراین هیچ الزام سختی برای محدود کردن بازیکنان به یک فایل ذخیره واحد وجود ندارد.
تصاویر جلد
سرویس بازیهای ذخیرهشده علاوه بر ویژگیهای ماندگاری، یک تجربه کاربری بصری نیز ارائه میدهد. اکیداً توصیه میشود تصاویر نمونه را با فایلهای ذخیره مربوطه مرتبط کنید. اگر از رابط کاربری (UI) پیشفرض فهرست بازیهای ذخیرهشده که توسط Play Games SDK در بازی شما ارائه شده است، استفاده میکنید، رابط کاربری این تصاویر جلد را نمایش میدهد. تصاویر جلد ممکن است در برنامه Google Play Games نیز ظاهر شوند.
توضیحات
شما میتوانید توضیح متنی کوتاهی از محتوای یک بازی ذخیره شده خاص ارائه دهید. این توضیح مستقیماً برای بازیکنان نمایش داده میشود و باید خلاصهای از وضعیتی باشد که بازی ذخیره شده نشان میدهد؛ برای مثال، «مبارزه با گابلینها در جنگل تاریک».
سهمیه
توسعهدهندگان برای هیچ داده ذخیرهشده بازی که در فضای ابری ذخیره میشود، هزینهای دریافت نمیکنند. در عوض، این دادهها جزو سهمیه گوگل درایو بازیکن محسوب میشوند - شما هرگز لازم نیست نگران آن باشید. تنها سهمیهای که توسعهدهندگان بازی باید به آن اهمیت دهند، سهمیه API گوگل درایو آنهاست.
جداسازی خواندن و نوشتن
تمام بازیهای ذخیره شده در پوشهی دادههای برنامهی گوگل درایو بازیکنان شما ذخیره میشوند. این پوشه فقط توسط بازی شما قابل خواندن و نوشتن است - بازیهای سایر توسعهدهندگان نمیتوانند آن را مشاهده یا تغییر دهند، بنابراین محافظت بیشتری در برابر خرابی دادهها وجود دارد. علاوه بر این، بازیهای ذخیره شده از دستکاری مستقیم توسط بازیکنان مصون هستند، بنابراین آنها نمیتوانند بازیهای ذخیره شدهی جداگانه را تغییر دهند.
پشتیبانی آفلاین
بازی شما همچنان میتواند در حالت آفلاین بودن دستگاه بازیکن، اطلاعات ذخیره شده را بخواند و بنویسد، اما تا زمانی که اتصال شبکه برقرار نشود، نمیتواند با سرویسهای بازیهای گوگل پلی همگامسازی شود. پس از اتصال مجدد، سرویسهای بازیهای گوگل پلی به صورت غیرهمزمان دادههای ذخیره شده بازی را در سرورهای گوگل بهروزرسانی میکنند.
حل اختلاف
هنگام استفاده از سرویس بازیهای ذخیرهشده، بازی شما ممکن است هنگام تلاش برای ذخیره دادهها با تداخل مواجه شود. این تداخلها میتوانند زمانی رخ دهند که کاربر بیش از یک نمونه از برنامه شما را در دستگاهها یا رایانههای مختلف اجرا میکند. برنامه شما باید بتواند این تداخلها را به گونهای حل کند که بهترین تجربه کاربری را ارائه دهد.
معمولاً، تداخل دادهها زمانی رخ میدهد که یک نمونه از برنامه شما هنگام تلاش برای بارگذاری یا ذخیره دادهها، قادر به دسترسی به سرویس بازیهای ذخیرهشده نباشد. بهطورکلی، بهترین راه برای جلوگیری از تداخل دادهها این است که همیشه هنگام راهاندازی یا از سرگیری برنامه، آخرین دادهها را از سرویس بارگذاری کنید و دادهها را با فرکانس معقول در سرویس ذخیره کنید. با این حال، همیشه نمیتوان از تداخل دادهها اجتناب کرد. برنامه شما باید تمام تلاش خود را برای مدیریت تداخلها انجام دهد تا دادههای کاربران شما حفظ شود و آنها تجربه خوبی داشته باشند.
محدودیتها
سرویسهای بازیهای گوگل پلی محدودیتهای حجمی را برای دادههای باینری و تصاویر پوششی به ترتیب ۳ مگابایت و ۸۰۰ کیلوبایت اعمال میکنند.
فرادادههای ذخیرهشده بازی
متادیتای ساختاریافته برای یک بازی ذخیرهشده شامل این ویژگیها است:
| ملک | توضیحات |
|---|---|
| شناسه | یک رشته منحصر به فرد که توسط سرویسهای بازیهای گوگل پلی برای این بازی ذخیره شده تولید شده است. از این شناسه برای ارجاع به بازی ذخیره شده در کلاینتهای بازی خود استفاده کنید. |
| نام | یک نام کوتاه ارائه شده توسط توسعهدهنده برای بازی ذخیره شده، برای مثال "ذخیره اسلات ۱" یا "PlayerName_Save1". این نام به بازیکنان نشان داده نمیشود. |
| توضیحات | توضیحی از بازی ذخیره شده که توسط توسعهدهنده ارائه شده است. |
| آخرین اصلاح | مهر زمانی بر حسب میلیثانیه که توسط سرویسهای بازیهای گوگل پلی برای آخرین بهروزرسانی بازی ذخیرهشده ایجاد شده است. |
| زمان بازی | زمانی (برحسب میلیثانیه) که توسط توسعهدهنده برای نمایش در بازی ذخیرهشده ارائه میشود. این مقدار باید نشان دهد که بازیکن چه مدت بازی ذخیرهشده مربوطه را انجام داده است. برای مثال، مقدار زمان بازی ۳۶۰۰۰۰۰ توسط سرویسهای بازیهای گوگل پلی به صورت «۱ ساعت» نمایش داده میشود. |
| تصویر جلد | این یک ویژگی اختیاری است که توسط توسعهدهنده ارائه میشود و حاوی اطلاعاتی در مورد تصویر جلد است. |
پیادهسازیهای کلاینت
برای یادگیری نحوه پیادهسازی بازی ذخیرهشده برای پلتفرم خود، به منابع زیر مراجعه کنید: