پس از منسوخ شدن رابط برنامهنویسی کاربردی ورود گوگل (Google Sign-In API)، ما در سال ۲۰۲۶ کیت توسعه نرمافزاری بازیها نسخه ۱ (games v1 SDK) را حذف خواهیم کرد. پس از فوریه ۲۰۲۵، شما قادر به انتشار عناوینی که به تازگی با کیت توسعه نرمافزاری بازیها نسخه ۱ (games v1 SDK) ادغام شدهاند، در گوگل پلی نخواهید بود. توصیه میکنیم به جای آن از کیت توسعه نرمافزاری بازیها نسخه ۲ (games v2 SDK) استفاده کنید.
در حالی که عناوین موجود با بازیهای قبلی نسخه ۱ ادغامشده تا چند سال دیگر به کار خود ادامه میدهند، توصیه میشود از ژوئن ۲۰۲۵ به نسخه ۲ مهاجرت کنید .
این راهنما برای استفاده از SDK نسخه ۱ سرویس بازیهای Play Games Services است. برای اطلاعات بیشتر در مورد آخرین نسخه SDK، به مستندات نسخه ۲ مراجعه کنید.
کیفیت بازی شما بر موفقیت بلندمدت آن تأثیر میگذارد -- از نظر نصب، رتبهبندی و نظرات بازیکنان، تعامل و حفظ بازیکن. قبل از انتشار بازی، مهم است که مطمئن شوید بازی شما از طریق ویژگیهای جذاب و یک رابط کاربری بصری و خوب طراحی شده، انتظارات اولیه بازیکنان بازی را برآورده میکند.
این سند به شما کمک میکند تا بر جنبههای کلیدی کیفیت، مجموعه ویژگیها و رابط کاربری که میتوانند تأثیر قابل توجهی بر موفقیت بازی شما داشته باشند، تمرکز کنید. هر حوزه تمرکز با یک چک لیست از حداقل الزامات، بهترین شیوهها و بهبودهای خوب ارائه شده است. برای ارائه بهترین محصول ممکن به بازیکنان، توصیههای چک لیست را تا حد امکان دنبال کنید.
۱. ورود
وظایف چک لیست زیر برای پیادهسازی قابلیت ورود بازیکن در بازی شما اعمال میشود. برای کسب اطلاعات بیشتر در مورد نحوه عملکرد ورود و نحوه پیادهسازی آن، به مفاهیم ورود مراجعه کنید. برای مثالهای کد در مورد نحوه پیادهسازی ورود در بازیهای موبایل، به پیادهسازی ورود در اندروید مراجعه کنید.
| شناسه | اهمیت | توضیحات |
|---|---|---|
| ۱.۱ | مورد نیاز | بازیکنان را با خدمات بازیهای گوگل پلی وارد سیستم کنید.
|
| ۱.۲ | مورد نیاز | هنگام ایجاد کلاینت ورود به سیستم، محدودههای غیر از Play Games را درخواست نکنید. این کار به بازیکنان اجازه میدهد تا به طور خودکار وارد بازی شما شوند، زیرا درخواست محدودههای غیر از Play Games کاربران را مجبور به استفاده از ورود به سیستم تعاملی میکند. اگر از قبل درخواست محدودههایی غیر از Play Games را دادهاید، هرگونه محدوده غیرضروری را به همراه هرگونه API که دیگر استفاده نمیکنید، از ساختار // This is the proper way to do it GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN; |
| ۱.۳ | مورد نیاز | به بازیکنان اجازه دهید همچنان وارد سیستم باشند. بعد از اینکه بازیکن با موفقیت وارد بازی شما شد، هر زمان که بازی شروع شود، او را به طور خودکار متصل کنید، تا زمانی که بازیکن صریحاً از بازی خارج شود. |
| ۱.۴ | مورد نیاز | هنگام ورود، پنجرهی «در حال اتصال» را به طور مناسب نمایش دهید. در دستگاههای اندروید، هر زمان که فرآیند ورود به سیستم فراخوانی میشود، باید پنجرهی «اتصال» بازیهای گوگل پلی نمایش داده شود. این کار مستلزم فراخوانی متد مثال زیر نشان میدهد که چگونه ممکن است در یک بازی اندروید، هنگام ورود به سیستم، پنجرهی «در حال اتصال» ظاهر شود و به دنبال آن یک انیمیشن کوتاه از لوگوی سرویسهای بازیهای گوگل پلی نمایش داده شود. ![]() |
| ۱.۵ | مورد نیاز | به بازیکنان گزینه خروج از سیستم را ارائه دهید. پس از ورود به سیستم، بازیکن همیشه باید گزینه خروج از سیستم را داشته باشد. در نظر داشته باشید که یک دکمه خروج در صفحه بازی مربوطه در برنامه خود (مثلاً در صفحه تنظیمات بازیکن) قرار دهید. |
| ۱.۶ | بهترین شیوه | به یاد داشته باشید که آیا بازیکنان از ورود به سیستم خودداری کردهاند یا خیر. اگر بازیکن در ابتدای ورود به سیستم (مثلاً اگر در رابط کاربری ورود به سیستم روی لغو کلیک کرده باشد) از ورود به سیستم خودداری کند، همچنان باید به بازیکن اجازه دهید تا به بازی ادامه دهد. وقتی بازیکن دوباره بازی شما را اجرا میکند، جریان ورود تعاملی را به طور خودکار فعال نکنید. این بازیکنان میتوانند بعداً با استفاده از دکمه ورود که باید در سیستم تنظیمات شما باشد، وارد سیستم شوند. این کار باعث میشود بازیکنان مجبور نباشند هر بار که بازی شما را شروع میکنند، بارها درخواست ورود را رد کنند. یک استثنا این است که اگر بازیکنان سعی دارند به یک ویژگی گیمپلی دسترسی پیدا کنند که وابسته به ورود به سیستم است (مثلاً ارسال امتیاز به جدول امتیازات). در این صورت، قبل از ادامه بازی، از آنها بخواهید که وارد سیستم شوند. |
| ۱.۷ | بهترین شیوه | تعداد بازیکنانی که وارد سیستم میشوند را به حداکثر برسانید. ورود بازیکنان بیشتر به سرویس بازیهای گوگل پلی، با افزایش فرصتهای گیمپلی مشارکتی و رقابتی، به نفع بازیکنان شماست. برای به حداکثر رساندن تعداد بازیکنانی که به سرویس بازیهای گوگل پلی وارد شدهاند، اکیداً توصیه میشود که همانطور که در بالا توضیح داده شد، به طور خودکار از بازیکنان بخواهید وارد سیستم شوند. در غیر این صورت، بازیکنان را در اسرع وقت از یکی از این نقاط (که بیشتر توصیه میشود ابتدا) به جریان ورود هدایت کنید:
|
| ۱.۸ | خوب است که داشته باشید | دستورالعملهای برندسازی گوگل را دنبال کنید. برای ارائه یک تجربه جذاب و یکپارچه به بازیکنان، دستورالعملهای برندسازی خدمات بازیهای گوگل پلی را اجرا کنید. |
| ۱.۹ | خوب است که داشته باشید | به بازیکنان یادآوری کنید که وارد سیستم شدهاند. وقتی بازی شما از طرف بازیکنان وارد شده، عملی را انجام میدهد، به آنها یادآوری یا نشانهی مناسبی بدهید. برای مثال، وقتی یک بازیکن وارد شده، یک مرحله را تمام میکند، میتوانید پیامی مانند این ارائه دهید تا نشان دهد که امتیاز و دستاوردهای بازیکن به طور خودکار آپلود میشوند: «شما با گوگل وارد سیستم شدهاید. دستاوردها و امتیازات شما به طور خودکار ذخیره میشوند.» |
| ۱.۱۰ | مورد نیاز | با استفاده از شناسه خدمات بازیهای Play، از پیشرفت بازیکن نسخه پشتیبان تهیه کنید. برای اطمینان از اینکه بازیکنان هنگام تغییر یا تنظیم مجدد دستگاهها، یا اگر روی چندین دستگاه بازی میکنند، پیشرفت خود را از دست نمیدهند، مطمئن شوید که پیشرفت آنها در یک راهکار ذخیره ابری (Cloud Save) پشتیبانگیری شده است و اگر از سرور بازی پشتیبان خود استفاده میکنید، از شناسه خدمات بازیهای پلی (Play Games Services ID) به عنوان کلید، به طور ایمن، استفاده کنید. وقتی بازیکنان با شناسه خدمات بازیهای پلی خود وارد سیستم میشوند، بررسی کنید که آیا پیشرفتی برای آن حساب وجود دارد یا خیر و اگر وجود دارد، به بازیکن اجازه دهید از جایی که متوقف شده است، ادامه دهد. میتوانید از راهکار ذخیره ابری خود یا بازیهای ذخیره شده خدمات بازیهای پلی استفاده کنید. اگر کاربر وارد سیستم نشده است، سعی کنید پیشرفت بازیکن را به صورت محلی حفظ کنید، سپس وقتی بازیکن در نهایت وارد سیستم شد، آن پیشرفت را همگامسازی کنید. این کار به جلوگیری از از دست رفتن هرگونه پیشرفت بازیکن در صورت به تعویق افتادن ورود به بازی شما کمک میکند. |
۲. دستاوردها
وظایف چک لیست زیر برای اجرای ویژگی دستاوردها در بازی شما اعمال میشود.
| شناسه | اهمیت | توضیحات |
|---|---|---|
| ۲.۱ | مورد نیاز | اطمینان حاصل کنید که همه دستاوردها قابل دستیابی هستند. بازیکنان باید بتوانند تمام دستاوردهایی را که ایجاد میکنید، آزاد کنند. |
| ۲.۲ | بهترین شیوه | دستاوردها را متمایز کنید. تمام تصاویر، متنها و توضیحات باید در هر دستاورد منحصر به فرد باشند. |
| ۲.۳ | بهترین شیوه | به دستاوردها به طور متناسب امتیاز دهید. امتیاز دستاورد باید متناسب با میزان زمان یا مهارت مورد نیاز برای کسب آن دستاورد باشد. |
| ۲.۴ | بهترین شیوه | دستاوردها را برای سطوح دشواری مختلف طراحی کنید. شامل چند دستاورد آسان که یک بازیکن میتواند از طریق گیمپلی معمولی به دست آورد، تعدادی دستاورد با درجه سختی متوسط که کسب آنها نیاز به مهارت یا فداکاری بیشتر بازیکن دارد، و یک یا دو دستاورد بسیار دشوار برای بازیکنان بسیار فداکار. برای مثال، تصویر زیر یک دستاورد (اچیومنت) سخت به دست آمده را نشان میدهد که به ایجاد انگیزه و حفظ طرفداران این عنوان کمک میکند. ![]() |
| ۲.۵ | خوب است که داشته باشید | دستاوردها را پیشاپیش منتشر نکنید. از اعطای بیش از یک دستاورد در ۵ دقیقه اول گیمپلی خودداری کنید، زیرا بازیکنانی که تازه با بازی شما آشنا شدهاند، آنقدر عمیقاً درگیر آن نخواهند شد که اهمیتی بدهند. دستاوردهای خود را طوری تعریف نکنید که ناخواسته خیلی زود در گیمپلی به شما داده شوند. برای مثال، مراقب دستاوردهایی باشید که احتمالاً در ابتدای بازی به طور بیاهمیتی به دست میآیند، مانند «تمام کردن یک مرحله بدون دریافت آسیب» . |
| ۲.۶ | خوب است که داشته باشید | دستاوردها را حول فعالیتهای جذاب درون بازی تعریف کنید. معیارهایی را برای ایجاد دستاوردهایی انتخاب کنید که بازی شما را جذابتر و قابل بازی مجددتر کند (برای مثال، «تعداد زامبیهای کشته شده» معیار جالبتری نسبت به «تعداد مایلهایی که شخصیت شما طی کرده است» است). |
| ۲.۷ | خوب است که داشته باشید | از آیکونهای رنگی برای دستاوردها استفاده کنید. سرویسهای بازیهای گوگل پلی از نسخههای خاکستری آیکونهای دستاوردها برای نشان دادن کسبشده یا نشده بودن آنها استفاده میکنند. اگر محدود به استفاده از آیکونهای دستاورد کاملاً سیاه (یا کاملاً سفید) هستید، آنها را روی یک پسزمینه رنگی نمایش دهید. |
| ۲.۸ | خوب است که داشته باشید | استفاده از دستاوردهای پنهان را به حداقل برسانید. دستاوردهای پنهان فقط باید برای جلوگیری از لو رفتن داستان بازی استفاده شوند؛ استفاده از آنها نباید به یک امر عادی تبدیل شود. |
| ۲.۹ | خوب است که داشته باشید | از دستاوردهایی که بیش از حد به شانس وابسته هستند، اجتناب کنید. «یافتن ۱۰۰ صندوق گنج» دستاورد بهتری نسبت به «یافتن آیتمی که احتمال وجود آن در یک صندوق گنج ۱٪ است» است. |
| ۲.۱۰ | خوب است که داشته باشید | مثل یک «شکارچی موفقیت» فکر کنید. برخی از بازیکنان سعی میکنند هر دستاوردی را که شما ایجاد میکنید، کسب کنند. سعی کنید دستاوردهایی را ارائه دهید که برای این دسته از بازیکنان مناسب باشد. از ایجاد دستاوردهایی که بیش از حد به عناصری فراتر از کنترل بازیکن وابسته هستند یا پس از تصمیمگیری بازیکن در بازی، قابل کسب نیستند، خودداری کنید. |
| ۲.۱۱ | خوب است که داشته باشید | مطمئن شوید که نماد دستاورد شما به درستی نمایش داده میشود. وقتی یک آیکون دستاورد در یک تست اندروید نمایش داده میشود، آیکون با یک دایره پوشانده شده و گوشههای بیرونی آن پنهان میشوند. مطمئن شوید که آیکون شما در این شرایط همچنان خوب به نظر میرسد. |
۳. جدول امتیازات
چک لیست زیر برای پیادهسازی ویژگی جدول امتیازات در بازی شما اعمال میشود.
| شناسه | اهمیت | توضیحات |
|---|---|---|
| ۳.۱ | بهترین شیوه | جدول امتیازات را در منوی اصلی و بعد از انتقال کلیدها قابل مشاهده کنید. جدول امتیازات باید در هنگام بارگذاری بازی به راحتی قابل دسترسی باشد. پس از انتقالهای حساس در یک بازی (به عنوان مثال، در پایان یک مرحله یا زمانی که بازیکن میمیرد)، بازیکنان باید بلافاصله لینکهایی به جدول امتیازات مربوطه را مشاهده کنند. |
| ۳.۲ | بهترین شیوه | برای نمراتی که میتوان ارائه داد، سقف مجاز را تعیین کنید. در صورت امکان، هنگام تعریف جدول امتیازات، محدودیتهایی را اضافه کنید تا امتیازات جعلی حذف شوند. |
| ۳.۳ | بهترین شیوه | از آیکونهای سفارشی استفاده کنید. برای هر جدول امتیازاتی که تعریف میکنید، یک آیکون سفارشی ایجاد کنید؛ فقط از آیکون بازی خود استفاده نکنید، زیرا در برنامه Google Play Games به خوبی نمایش داده نخواهد شد. |
| ۳.۴ | بهترین شیوه | فرکانس ارسال نمرات را مناسب نگه دارید. نمرات را پس از انتقالهای حساس در بازی، مانند پایان یک مرحله یا زمانی که شخصیت بازی بازیکن میمیرد، ارسال کنید. برای بازیهایی که انتقالهای حساس ندارند (به عنوان مثال، یک بازی از نوع "دونده بیپایان")، در مورد فواصل زمانی ارسال نمرات، قضاوت خوبی داشته باشید. نمرات نباید به طور مداوم یا هر ثانیه ارسال شوند. |
| ۳.۵ | خوب است که داشته باشید | از برچسبهای امتیاز استفاده کنید. برچسبهای امتیاز، دادههای اضافی هستند که میتوانند همراه با ارسال امتیاز شما ارسال شوند. برای مثال، میتوانید یک برچسب امتیاز را به عنوان یک پرچم پیادهسازی کنید تا تأیید کنید که امتیاز ارسالی یک بازیکن معتبر است. جدول امتیازات سفارشی همچنین میتوانند دادههای این برچسب را بخوانند. برای مثال، اگر برچسب امتیاز شامل شناسه یک ویدیوی یوتیوب حاوی گیمپلی آن بازیکن باشد، بازی شما میتواند لینکی برای مشاهده آن ویدیو در جدول امتیازات شما ایجاد کند. |
| ۳.۶ | خوب است که داشته باشید | رابط کاربری جدول امتیازات خود را خلاقانه طراحی کنید اگر منابع لازم را دارید، نمای جدول امتیازات سفارشی خود را بر روی دادههای جدول امتیازات اجتماعی ایجاد کنید. جدول امتیازات اجتماعی معمولاً تجربه جذابتری نسبت به جدول امتیازات عمومی ایجاد میکنند. ابتدا بررسی کنید که آیا ورودیهایی در جدول امتیازات اجتماعی وجود دارد یا خیر. در غیر این صورت، از جدول امتیازات عمومی استفاده کنید. |
| ۳.۷ | خوب است که داشته باشید | به بازیکنان نشان دهید که در رقابت با رقبا چگونه عمل میکنند. API جدول امتیازات از نمایش پنجرههای امتیاز (مثلاً رتبه بازیکن در محدوده +/-10) پشتیبانی میکند. اگر در حال ایجاد یک نمای سفارشی هستید، این میتواند راهی قدرتمند برای ایجاد انگیزه در تعامل باشد. این میتواند درست پس از یک انتقال حساس در بازی (مثلاً در پایان یک مرحله یا زمانی که شخصیت بازی یک بازیکن میمیرد) نشان داده شود. از کلیکهای غیرضروری بین بازیکنان و اطلاعات رتبهبندی آنها خودداری کنید. |
۴. دوستان
وظایف چک لیست زیر برای پیادهسازی APIهای دوستان در بازی شما اعمال میشود.
| شناسه | اهمیت | توضیحات |
|---|---|---|
| ۴.۱ | مورد نیاز | وقتی بازیکنان در یک لیست نمایش داده میشوند، نماد بازیهای Play را در کنار کاربرانی که نمایه بازیهای Play دارند، نشان دهید. این لیست میتواند یک لیست دوستان موجود، یک لیست دوستان اخیراً بازی شده یا لیست دیگری از دوستان باشد.
|
| ۴.۲ | بهترین شیوه | از آیکونهای مختلف برای نشان دادن اینکه کدام کاربران Play Games از قبل دوست هستند و کدامها هنوز دوست Play Games نیستند اما با Play Games وارد سیستم شدهاند، استفاده کنید. برای کاربران Play Games از دو آیکون استفاده کنید، یکی برای «دوستان» و دیگری برای «غیردوستان» (یا وقتی وضعیت دوستی مشخص نیست). ![]() |
| ۴.۳ | بهترین شیوه | هر بار که وارد سیستم میشوید، تابع loadFriends() را فراخوانی کنید و لیست دوستان را نمایش دهید تا از بهروز بودن لیست دوستان اطمینان حاصل کنید. مطمئن شوید که بازیکنان لیست بهروز شده را مشاهده میکنند. |
| ۴.۴ | بهترین شیوه | اگر بازی شما از قبل شامل دوستان درون بازی است، از APIهای دوستان برای افزایش فهرست دوستان با اضافه کردن دوستان Play Games استفاده کنید. اگر بازیکنی در فهرست دوستان درون بازی است و همچنین دوست Play Games نیز هست، نماد «دوستان» را نمایش دهید. |
| ۴.۵ | بهترین شیوه | اگر بازیکنی درخواست دسترسی به لیست دوستانش را رد کرده باشد، دیگر پنجره درخواست دسترسی را نمایش ندهید، مگر اینکه کاربر اقدامی برای نشان دادن تمایل خود به دادن دسترسی انجام داده باشد (مثلاً فشار دادن دکمه «وارد کردن دوستان بازیهای پلی»). |
| ۴.۶ | بهترین شیوه | اگر بازیکنی دسترسی به فهرست دوستان را رد کرده است، به او راهی بدهید تا در آینده به فهرست دوستان دسترسی بدهد (مثلاً پس از فشردن دکمه «وارد کردن دوستان بازیهای پلی»). |
| ۴.۷ | بهترین شیوه | اگر از شناسه بازیکن یا لیست دوستان با یک سرور backend استفاده میکنید، باید به طور ایمن به شناسه یا لیست دسترسی داشته باشید. علاوه بر این، برای برخی از بازیها و بازیکنان قدیمیتر، شناسه بازیکنی که توسط SDK اندروید برای یک بازیکن برگردانده میشود ممکن است همان شناسهای نباشد که سایر بازیکنان هنگام مشاهده آن بازیکن در همان بازی میبینند. این امر به ویژه هنگام استفاده از لیست دوستان اهمیت دارد. با این حال، player_id برگردانده شده در REST API همیشه ثابت است و همیشه شناسهای است که برای سایر بازیکنان قابل مشاهده است. |
۵. سهمیهبندی و محدود کردن نرخ
وظایف چک لیست زیر برای مدیریت سهمیه و محدودیت نرخ در بازی شما اعمال میشود. برای یادگیری نحوه مدیریت سهمیه بازی خود و تشخیص زمانی که از حد نرخ آن تجاوز شده است، به مدیریت سهمیه و محدودیت نرخ مراجعه کنید.
| شناسه | اهمیت | توضیحات |
|---|---|---|
| ۵.۱ | بهترین شیوه | از کتابخانههای کلاینت استفاده کنید. کتابخانههای کلاینت موبایل از تعدادی استراتژی برای کاهش تماسهای شما با سرویس استفاده میکنند. به عنوان مثال، دادههای مربوط به دستاوردها و جدول امتیازات ذخیره میشوند، بنابراین بازیکنان میتوانند دستاوردهای خود را هر چند بار که دوست دارند مشاهده کنند، بدون اینکه نیاز به تماسهای متعدد سرویس باشد. کتابخانه کلاینت اندروید اگر امتیاز شما به خوبی امتیازی که اخیراً ارسال کردهاید نباشد، امتیاز بازیکن را به سرور ارسال نمیکند. کتابخانه اندروید همچنین وقتی تشخیص دهد که امتیاز شما محدود شده است، به طور خودکار فراخوانیهای مکرر افزایش دستاورد را ترکیب میکند. |
| ۵.۲ | خوب است که داشته باشید | تماسهای مکرر را با دستاوردهای تدریجی ترکیب کنید. اگر در حال ساخت یک بازی مبارزهای هستید و دستاورد «پرتاب ۵۰۰۰ مشت» دارید، هر بار که کسی مشت میزند، پیام افزایش دستاورد ارسال نکنید. تا پایان راند صبر کنید و سپس یک پیام |
| ۵.۳ | خوب است که داشته باشید | از میزان مصرف خود آگاه باشید. مراقب تعداد تماسهایی که با سرویسهای بازیهای گوگل پلی برقرار میکنید باشید. حتی اگر از محدودیتهای نرخ استفاده نکنید، تماسهای مکرر میتوانند منجر به ترافیک بالای شبکه شوند و باعث شوند باتری دستگاه سریعتر خالی شود. برای جلوگیری از این امر، میتوانید از این تکنیکها استفاده کنید:
|
۶. بازیهای ذخیره شده
چک لیست زیر برای پیادهسازی ویژگی بازیهای ذخیره شده در بازی شما اعمال میشود.
| شناسه | اهمیت | توضیحات |
|---|---|---|
| ۶.۱ | مورد نیاز | برای ارائه زمینه بیشتر برای بازیهای ذخیره شده، فراداده اضافه کنید. حداقل، هنگام ذخیره یک بازی، باید فرادادههای زیر را وارد کنید:
|
| ۶.۲ | مورد نیاز | به بازیکنان اجازه دهید بازیهای ذخیره شده را بارگیری کنند. وقتی بازیکنان از طریق برنامه Play Games یا رابط کاربری پیشفرض انتخاب بازیهای ذخیرهشده، انتخابی انجام میدهند، بازی ذخیرهشده صحیح را بارگذاری کنید. |


