گیم سرویس
گیم سرویس
خواندن ۶ دقیقه·۵ سال پیش

گیم سرویس؛ ذخیره سازی ابری بازی


یکی از اهداف اصلی استفاده از شبکه در بازی ها ذخیره اطلاعات کاربر در فضای ابری است تا با بازگشت کاربر یا تغییر تلفن همراه کاربر اطلاعات از بین نروند. گیم سرویس هم بدین منظور از توابع متنوعی برای انواع ذخیره سازی پشتیبانی میکند. در این آموزش به معرفی این توابع میپردازیم.

در صورتی که با راه اندازی گیم سرویس آشنایی ندارید به راهنمای راه اندازی مراجعه کنید.

ذخیره سازی غیرساخت یافته :

با استفاده از این توابع میتوانید به آسانی داده هایی را تا مرز 128 کیلوبایت به صورت متنی «JSON» یا باینری به ازای هر کاربر ذخیره کنید. در ادامه با توابع آن آشنا میشویم:

ذخیره کردن بازی (SaveGame):

تابع ذخیره به ازای کاربر
تابع ذخیره به ازای کاربر

برای سیو کردن بازی خود یک نام، یک توضیح و شی سیو بازی(کلاسی که برای سیو از آن استفاده می کنید) خود را قرار داده و تابع را فراخوانی کنید .درصورت موفقیت آمیز بودن ، نتیجه در بخش details و در غیر این صورت خطا در بخش error بازخواهد گشت.

  • دریافت آخرین سیو بازی (GetSaveGame) :
دریافت ذخیره بازی به ازای کاربر
دریافت ذخیره بازی به ازای کاربر

در این جا نوع شی کلاس سیو خود را داده و تابع را فراخوانی کنید. درصورت موفقیت آمیز بودن ٬ نتیجه در بخش SaveObj در غیر این صورت خطا در بخش error بازخواهد گشت.

  • پاک کردن سیو بازی (RemoveLastSave):

برای پاک کردن سیو بازی تابع بالا را فراخوانی کنید.

ذخیره سازی ساختاری

در بسیاری از بازی ها نیاز به ذخیره داده های عمومی، ذخیره تعداد بیشتری داده به ازای کاربر و...داریم. در این صورت نیاز است تا داده ها به صورت های مختلف ذخیره و بازیابی شوند.

قبل از استفاده از این سرویس به پنل توسعه دهندگان مراجعه و در بخش ذخیره سازی باکت «جدول» و ساختار و دسترسی های مورد نظر را ایجاد کنید. سپس میتوانید در سمت کلاینت از توابع مورد نیاز استفاده کنید.

توجه: در صورتی که تابعی در پنل توسعه دهندگان برای سمت کاربر ممنوع شود استفاده از آن پیام خطایی را تولید خواهد کرد.

در ادامه با این توابع سمت کاربر آشنا میشویم:

  • دریافت اطلاعات باکت (GetBucketItems):

با این دستور تمام اطلاعات مربوط به باکت با ایدی مشخص شده برگرداننده می شود.

ورودی ها:

  • bucketId = شناسه باکت مورد نظر
  • onBucketItems = در صورت موفقیت اطلاعات بازگردانده میشوند
  • error = در صورت وجود مشکل خطا بازگردانده میشود

خطاها:

  • invalid_id = درصورتی که شناسه باکت معتبر نباشد
  • bucket_notfound = درصورتی که باکت مورد نظر پیدا نشود
  • permission_denied = درصورتی که دسترسی لازم برای انجام عملیات را داده باشید
  • UnreachableService = (درصورتی که گیم سرویس در دسترس نباشد (برای حل این مشکل دوباره گیم سرویس را راه اندازی کنید
  • NetworkUnreachable = درصورتی که دستگاه کاربر به اینترنت دسترسی نداشته باشد
  • حذف اشیای باکت (DeleteBucketItems):

با این دستور تمام اطلاعات باکت مورد نظر با ایدی خاص حذف می شود

ورودی ها:

  • bucketId = شناسه باکت مورد نظر
  • onDeleteBucket = بازگردانده می شود true درصورت موفقیت آمیز بودن مقدار
  • error = در صورت وجود مشکل خطا بازگردانده میشود

خطاها:

  • invalid_id = در صورتی که شناسه باکت معتبر نباشد
  • permission_denied = درصورتی که دسترسی لازم برای انجام عملیات را نداشته باشید
  • bucket_notfound = درصورتی که باکت مورد نظر پیدا نشود
  • invalid_structure = درصورتی که ساختار باکتی که برای ویرایش ارسال کرده اید با باکت ثبت شده در پنل هماهنگی نداشته باشد
  • UnreachableService = (درصورتی که گیم سرویس در دسترس نباشد (برای حل این مشکل دوباره گیم سرویس را راه اندازی کنید
  • NetworkUnreachable = درصورتی که دستگاه کاربر به اینترنت دسترسی نداشته باشد
  • دریافت شی (GetBucketItem):

با این دستور یکی از اطلاعات باکت مورد نظر با ایدی خاص برگرداننده می شود

ورودی ها:

  • bucketId = شناسه باکت مورد نظر
  • itemId = شناسه شی مورد نظر
  • onBucketItem = شی مورد نظر بازگردانده میشود
  • error = در صورت وجود مشکل خطا بازگردانده میشود

خطاها:

  • invalid_id = در صورتی که شناسه باکت معتبر نباشد
  • bucket_notfound = درصورتی که باکت مورد نظر پیدا نشود
  • permission_denied = درصورتی که دسترسی لازم برای انجام عملیات را نداشته باشید
  • UnreachableService = (درصورتی که گیم سرویس در دسترس نباشد (برای حل این مشکل دوباره گیم سرویس را راه اندازی کنید
  • NetworkUnreachable = درصورتی که دستگاه کاربر به اینترنت دسترسی نداشته باشد
  • افزودن شی (AddBucketItem):

با این دستور شی باکت مورد نظر به باکت اضافه می شود

ورودی ها:

  • bucketId = شناسه باکت مورد نظر
  • newBucket = اطلاعات مورد نظر برای ذخیره در باکت
  • onAddBucketItem = در صورت موفقیت شی جدید بازگردانده میشود
  • error = در صورت وجود مشکل خطا بازگردانده میشود

خطاها:

  • invalid_id = در صورتی که شناسه باکت معتبر نباشد
  • permission_denied = درصورتی که دسترسی لازم برای انجام عملیات را نداشته باشید
  • invalid_structure = درصورتی که ساختار باکتی که برای ویرایش ارسال کرده اید با باکت ثبت شده در پنل هماهنگی نداشته باشد
  • UnreachableService = (درصورتی که گیم سرویس در دسترس نباشد (برای حل این مشکل دوباره گیم سرویس را راه اندازی کنید
  • NetworkUnreachable = درصورتی که دستگاه کاربر به اینترنت دسترسی نداشته باشد
  • ویرایش شی (UpdateBucketItem):

با این دستور یکی از اطلاعات باکت مورد نظر با ایدی خاص ویرایش می شود

ورودی ها:

  • bucketId = شناسه باکت مورد نظر
  • itemId = شناسه شی مورد نظر
  • TBucket = شی باکتی که ویرایش شده است
  • onUpdateBucketItem = در صورت موفقیت شی جدید بازگردانده میشود
  • error =در صورت وجود مشکل خطا بازگردانده میشود

خطاها:

  • invalid_id = در صورتی که شناسه باکت معتبر نباشد
  • bucket_notfound = درصورتی که باکت مورد نظر پیدا نشود
  • permission_denied = درصورتی که دسترسی لازم برای انجام عملیات را نداشته باشید
  • invalid_structure = درصورتی که ساختار باکتی که برای ویرایش ارسال کرده اید با باکت ثبت شده در پنل هماهنگی نداشته باشد
  • UnreachableService = (درصورتی که گیم سرویس در دسترس نباشد (برای حل این مشکل دوباره گیم سرویس را راه اندازی کنید
  • NetworkUnreachable = درصورتی که دستگاه کاربر به اینترنت دسترسی نداشته باشد
  • حذف شی (DeleteBucketItem):

با این دستور یکی از اطلاعات باکت مورد نظر با ایدی خاص حذف می شود

ورودی ها:

  • bucketId = شناسه باکت مورد نظر
  • itemId = شناسه شی مورد نظر
  • onDeleteBucket = بازگردانده می شود true درصورت موفقیت آمیز بودن مقدار
  • error = در صورت وجود مشکل خطا بازگردانده میشود

خطاها:

  • invalid_id = در صورتی که شناسه باکت معتبر نباشد
  • permission_denied = درصورتی که دسترسی لازم برای انجام عملیات را نداشته باشید
  • bucket_notfound = درصورتی که باکت مورد نظر پیدا نشود
  • invalid_structure = درصورتی که ساختار باکتی که برای ویرایش ارسال کرده اید با باکت ثبت شده در پنل هماهنگی نداشته باشد
  • UnreachableService = (درصورتی که گیم سرویس در دسترس نباشد (برای حل این مشکل دوباره گیم سرویس را راه اندازی کنید
  • NetworkUnreachable = درصورتی که دستگاه کاربر به اینترنت دسترسی نداشته باشد

میزبانی بسته های داده

بازی های باکیفیت اغلب به خاطر حجم بالای پکیج سخت تر دریافت میشوند. در این بخش بسته های داده که با فرمت obb آنها را میشناسیم کمک بزرگی محسوب میشوند. گیم سرویس میتواند این بسته ها را در پنل توسعه دهندگان با برچسب های مختلف دریافت و میزبانی کند. بدین صورت میتوانید با توجه به مدل تلفن همراه کاربر و در هنگام اجرای بازی بسته مورد نظر را دریافت و به صورت اتوماتیک در محل مناسب قرار دهید.

با توجه به اینکه اطلاعات میزبانی شده در ایران و شامل ترافیک نیم بها میشوند دریافت آنها آسانتر، سریعتر و ارزان تر خواهد بود.


گیم سرویس با هدف آسان سازی و ارتقای کیفیت بازی های ایرانی تلاش میکند. پیشنهادات و نظرات توسعه دهندگان نقش موثر در افزایش سطح خدمات دارد.

استفاده از بسیاری از سرویس های ارائه شده رایگان و بسیار آسان است. شما میتوانید همین حالا با مراجعه به پنل بازی خود را آنلاین کنید و از خدمات شبکه ای لذت ببرید!

موفق باشید.


بخش بعدی : بازی های چند نفره (MultiPlayer)

بخش قبلی : افزودن لیدربورد و اچیومنت به بازی ها

دیتابیسبازیبازیسازیونیتیدیتا بازی
پلتفرم ابری برای بازی های ایرانی؛ از بازی های تکنفره تا صد هزار کاربر فعال در کنارتان هستیم!
شاید از این پست‌ها خوشتان بیاید