این صفحه نحوه ادغام ورود به سیستم سرویسهای بازیهای Play را با هویت موجود یا راهکار ذخیرهسازی ابری شما توضیح میدهد. اگرچه این توصیهها اختیاری هستند، اما میتوانند به شما در تکمیل الزامات ذخیرهسازی ابری برای بازیهای Google Play در رایانه شخصی کمک کنند. از صفحات الزامات تداوم و رفتارهای مورد انتظار برای تأیید اینکه پیادهسازی شما این الزامات را برآورده میکند، استفاده کنید.
بازیابی وضعیت بازیکن
در بخش مدیریت بازی شما، حسابهای بازی احتمالاً توسط یک شناسه نمایش داده میشوند که به شما امکان میدهد پیشرفت آنها را در بازی خود دریافت و بهروزرسانی کنید. ما به اختصار این را شناسه حساب شما مینامیم. وقتی یک بازیکن وارد سرویسهای بازیهای پلی میشود، میتوانید از آن احراز هویت برای دریافت یک شناسه جدید، شناسه بازیکن سرویسهای بازیهای پلی، استفاده کنید که برای تأمین نیاز به ذخیره ابری استفاده میشود.

وقتی بازیکنی با خدمات بازیهای Play وارد سیستم میشود، باید مراحل زیر را ادامه دهید:
- کد OAuth را از کلاینت دریافت کرده و به سرور خود ارسال کنید.
- توکن احراز هویت را مبادله کنید و یک شناسه تأیید شده خدمات بازیهای Play را از سرور بازیهای Play دریافت کنید. این کار تضمین میکند که شناسه مورد اعتماد است و کسی نیست که با استفاده از یک دستگاه هک شده وانمود کند بازیکن دیگری است.
- تلاش برای حل مشکل حساب بازی بر اساس شرایط دستگاه و هرگونه شناسه مرتبط.
دو سناریوی اصلی جدید باید به بازی شما اضافه شوند:
- ذخیره شناسههای سرویسهای بازیهای Play در بخش مدیریت شما و اختصاص آنها به شناسههای حسابهای موجود به نحوی، مانند موارد زیر:
- برای بازیکنان جدید، پیشرفت باید در مقطعی به طور خودکار به سرویسهای بازیهای پلی (Play Games Services) مرتبط شود. (مثلاً در هنگام اجرای بازی، بعد از آموزش یا بعد از گذشت تعدادی از مراحل و غیره).
- برای بازیکنان فعلی، پیشرفت فعلی باید پس از بهروزرسانی بازیکن به نسخهای از بازی که شامل Play Games Services V2 است، بهطور خودکار به Play Games Services مرتبط شود.
- شناسه سرویسهای بازیهای Play را میتوان به یک یا چند حساب متصل کرد و میتوان سرویس بازیهای Play را از آن حسابها جدا کرد، اما باید حداقل به یک حساب معتبر متصل باشد.
- بازیابی خودکار پیشرفت بازی در دستگاهی که از حساب کاربری خارج شده/جدید است بر اساس شناسه بازیکن Play Games Services.
نحوه ذخیره و اختصاص شناسههای سرویسهای بازیهای Play به حسابهای موجود، همانطور که در مثالهای زیر آمده است، انعطافپذیر است. الزامات اصلی که باید در نظر داشته باشید این است که بازیکن نباید برای ایجاد پیوند بین شناسه سرویسهای بازیهای Play خود و پیشرفت بازی، مجبور به ورود دستی یا ایجاد پیوند با سیستم هویتی دیگر باشد و پیشرفت بازیکن باید به طور یکپارچه در سطوح مختلف بازیابی شود.
هنگام طراحی راهکار خود، با بررسی سیستم موجود خود و نحوهی ادغام ارائهدهندگان هویت مختلف در آن شروع کنید. برخی سیستمها از یک شناسهی واحد برای هر حساب استفاده میکنند، در حالی که برخی دیگر از چندین شناسه برای هر حساب استفاده میکنند.
اگر فقط میتوانید هر شناسه حساب را به یک شناسه واحد مرتبط کنید، باید پشتیبانی را برای مرتبط کردن سرویسهای بازیهای Play با آن اضافه کنید. راهحلهای زیر نحوه انجام این کار را نشان میدهند.
مثالهایی از راهحلها
راهحلهای نمونه شامل راهحلهای اتصال و فراخوانی هستند.
اتصال (binding) فرآیندی است که شناسه سرویسهای بازیهای Play را به طور دائم یا نیمه دائم به وضعیت یک حساب متصل میکند. در صورت اتصال، حساب اصلی که از طریق سرویسهای بازیهای Play بازیابی میشود، بدون اقدام بازیکن، حتی اگر از سیستم خارج شود و با حساب دیگری در بازی شما وارد شود، برای او تغییر نمیکند. ما در اینجا این موضوع را با اتصال حساب پوشش میدهیم.

با فراخوانی، شما به عنوان توسعهدهنده بازی، یک نگاشت آزاد از شناسه خدمات بازیهای Play و آخرین حساب(های) دیده شده را برای بازیکن ذخیره میکنید تا هنگام ورود به سیستم با خدمات بازیهای Play در دستگاه دیگر، آن را بازیابی کند. هر بار که بازیکن با همان شناسه خدمات بازیهای Play به حساب بازی دیگری وارد میشود، این اتصال تغییر میکند. در اینجا یک نمودار جریان نمونه آورده شده است که در مثال حسابهای اخیر فراخوانی در زیر، بیشتر به آن میپردازیم:


مثالهای بیشتری از جریان کاربری به راهحلهای زیر پیوست شدهاند.
الزامآور بودن حساب
اگر بازی شما بازیکنان چندحسابه زیادی ندارد، یا اگر دوست دارید گیمرها را به داشتن یک حساب واحد در بازی خود تشویق کنید، احتمالاً اتصال بهترین راه حل برای بازی شماست. در این مثال، اولین حسابی را که هنگام ورود به سیستم با Play Games Services (چه یک حساب مهمان یا یک حساب متصل با یک پلتفرم هویت دیگر) مشاهده میکنید، با شناسه بازیکن Play Games Services متصل میکنید. پس از این اتصال، آن حساب متصل به طور خودکار در دستگاههای جدید بازیابی میشود. از آنجایی که ما در حال انجام یک اتصال قوی هستیم، بازیکن همچنین میتواند پروفایلهای Play Games Services را برای تغییر حسابها در بازی تغییر دهد و میتوانید در این سناریو از بازیکن بخواهید که تأیید کند.

اگر حسابهای کاربری متناقضی وجود دارد، توصیه میکنیم از بازیکن بخواهید یک حساب کاربری انتخاب کند. این موارد متناقض فقط باید برای بازیکنانی اتفاق بیفتد که چندین حساب کاربری در بازی شما دارند و بنابراین احتمالاً دانش و تمایل به بازی با یک حساب کاربری خاص را دارند.
پس از حل مشکل حساب، بازی شما باید انتخاب بازیکن را به خاطر بسپارد، مگر اینکه تغییری در شناسههای ورود به سیستم ایجاد شود. اگر نمایه خدمات بازیهای Play تغییر کند یا بازیکن با شناسه دیگری در بازی وارد سیستم شود، مراحل بالا باید تکرار شوند زیرا بازیکن سیگنال قوی مبنی بر تمایل به تغییر حسابها داده است.
غیر الزام آور
اگر میخواهید به بازیکن این امکان را بدهید که اتصالهای خود را به طور کامل کنترل کند، میتوانید به او این امکان را بدهید که شناسه بازیکن Play Games Services خود را با یک حساب بازی جدا کند. این میتواند برای برخی از بازیکنان چند حسابه مهم باشد، اگر آنها به طور تصادفی شناسه بازیکن Play Games Services خود را با حسابی که حساب اصلی آنها نیست، متصل کنند.
مثالهای اضافی برای اتصال حساب

این مثال اصلی نشان میدهد که یک شناسه بازیکن (1) در سرویسهای Play Games به اولین حساب کاربری درون بازی که دیده میشود (A) متصل است و وقتی بازیکن از پیشرفت بازی خود خارج میشود تا در حساب دیگری بازی کند، به حساب کاربری قبلیاش برنمیگردد.
شما میتوانید به صورت اختیاری به بازیکنان اجازه دهید حساب خود را دوباره ببندند، اما این کار الزامی نیست.
تعویض حسابها در دستگاه

در اینجا، بازیکن به صورت دستی حسابهای Play Games Services را تغییر داده است و به این ترتیب به بازی سیگنال قوی داده است که میخواهد حساب درون بازی خود را به حساب دیگری تغییر دهد. واکنش به این تغییر همان چیزی است که بازیکن میخواهد؛ در نظر گرفتن این سیگنال منجر به تجربه بهتر بازیکن میشود.
حساب کاربری متصل موجود با شناسه دیگر

این مثال نشان میدهد که حتی حسابهایی که به شناسههای غیر از سرویسهای بازیهای Play متصل هستند، باید به سرویسهای بازیهای Play متصل شوند و سپس در دستگاههای جدید بازیابی شوند. اکثر بازیکنان فعلی بازی شما که دارای حساب کاربری هستند، در این دسته قرار میگیرند.
حسابهای اخیر را به خاطر بیاورید
وقتی به راهحلها فکر میکنیم، چیزی که اغلب مطرح میشود، تجربه چندحسابی است. اگر بازی شما کاربران حرفهای را تشویق میکند که حسابهای زیادی ایجاد کنند (مانند بازیهای گاچا یا انتخاب بازیهای ماجراجویی خودتان)، آنگاه اتصال شناسه پخشکننده Play Games Services به یک حساب ممکن است بهترین تجربه پخشکننده را هنگام انتقال بین دستگاهها ارائه ندهد.
در راهکار بازیابی، شما یک نگاشت آزاد از شناسه بازیکن Play Games Services و حساب درون بازی ذخیره میکنید و بازیکن به سادگی آخرین حسابهایی را که هنگام تعویض دستگاه یا هنگام خروج از سیستم ذخیره کردهاید، میبیند.

در این مثال، یک بازیکن سه حساب کاربری برای یک بازی دارد و سپس به دستگاه جدیدی منتقل میشود:

وقتی از بازیکن میخواهید حساب خود را بازیابی کند، میتوانید دکمههای «لغو» یا «ایجاد حساب جدید» را نیز در اختیار بازیکنان قرار دهید تا با انتخاب آنها، حساب جدیدی ایجاد کنند.
برای سادگی، بازی شما میتواند فقط آخرین حساب کاربری دیده شده را بازیابی کند. این ممکن است برای مورد استفاده سوئیچینگ بین چند حساب کاربری دشوارتر باشد، اما همچنان الزامات پیوستگی را برآورده میکند.
نمونههای فراخوان اضافی
بخش زیر شامل مثالهای بیشتری با استفاده از یادآوری است.
گوشیهای غیر اندرویدی

در اینجا ما هم فراخوانی حسابهایی را که از قبل وجود دارند (حساب شخص ثالث مرتبط) یا حسابهایی که از دستگاه دیگری که به Play Games Services وارد نشده است، ایجاد شدهاند، نشان میدهیم.
یک جریان رایجتر میتواند شروع از یک گوشی غیر اندرویدی و انتقال به بازیهای گوگل پلی در کامپیوتر باشد.

از آنجایی که گوشی غیر اندرویدی سرویس بازیهای پلی را ندارد، هیچ فراخوانی فعالی وجود ندارد و بازیکن باید به صورت دستی اطلاعات کاربری خود را از داخل گوگل پلی گیمز در کامپیوتر وارد کند.
چندین پروفایل سرویسهای بازیهای پلی برای یک حساب کاربری
گاهی اوقات ممکن است چندین پروفایل فعال در سرویسهای بازیهای پلی وجود داشته باشد که قبلاً یک حساب کاربری خاص را «فراخوانی» کردهاند. برای این مورد، دو راه حل اصلی وجود دارد که به یک اندازه خوب عمل میکنند:
به هر حال ذخیره کنید
ما در مدل «به هر حال ذخیرهاش کن» از اشارهگرهای تکراری به یک حساب کاربری خاص صرف نظر میکنیم.
آن را نادیده بگیرید
در مدل «Override it»، توسعهدهنده باید نگاشتهای سرویسهای بازیهای Play به حسابها را به خاطر بسپارد و نگاشتهای قدیمی را در جداول خود در مدل «Override it» پاک کند. با انجام این کار، آنها میتوانند نگاشت ۱:۱ تمیزی از حسابهای فراخوانیشده و حسابهای سرویسهای بازیهای Play داشته باشند.
فراخوان همان دستگاه
یک بازیکن چند حسابه میتواند از پیادهسازی فراخوان شما برای جابجایی سریع بین حسابهای بازی خود نیز استفاده کند.