Google Play 遊戲服務品質檢查清單

遊戲品質對遊戲的長期經營大有影響,分別有安裝、玩家評分及評論、參與度和玩家留存率等層面。在發布遊戲之前,請務必確認遊戲符合玩家對遊戲的基本期望,具備吸引人的功能以及符合直覺、設計精美的 UI。

本說明文件可以幫助您注重品質、功能集、UI 等重要層面,這些層面對遊戲是否能成功具有很深遠的影響。每個該注重的領域都會由一份列有最低要求、最佳做法以及建議加強內容的檢查清單代表。為了為玩家提供最佳品質的產品,請您盡可能遵守這些檢查清單提出的推薦事項。

1. 登入

以下檢查清單工作適用於實作遊戲玩家登入功能的情況。如果想進一步瞭解登入程序運作方式及實作方式,請參閱「登入概念」。如需參閱在手機遊戲實作登入流程的程式碼範例,請參閱「在 Android 實作登入程序」。

ID 重要性 說明
1.1 必填 使用 Google Play 遊戲服務將玩家登入。
1.1.1. 在遊戲啟動後自動登入玩家,並把手動登入程序列為候補方式

自動登入功能會讓玩家快速驗證身分,並能使用 Google Play 遊戲服務提供的完整功能。

一旦使用者拒絕登入,應用程式應該提供讓使用者之後登入的機會 (例如在遊戲選單提供按鈕等等)。登入按鈕應該要能讓玩家輕鬆找到,例如:應該可在主螢幕或「設定」畫面中存取。這個按鈕不應計入遊戲選單中的多個層級。

1.2 建議內容 遵循 Google 品牌宣傳指南。

要為玩家提供引人入勝且一致的端對端體驗,請實作 Google Play 遊戲服務品牌宣傳指南

1.3 建議內容 提醒玩家已登入。

為登入玩家顯示合適的提醒,或在遊戲代表玩家執行部分操作時發出提醒。舉例來說,當登入玩家完成某關卡之後,您可以提供以下訊息,讓玩家知道系統會自動上傳得分和成就:「您已登入 Google 帳戶,您的關卡和分數將會自動儲存」。

1.4 必填 使用 Play 遊戲服務 ID 備份玩家進度。

為了確保玩家在切換或重設裝置後不會遺失進度,或是在多部裝置上玩遊戲時不會遺失進度,請確認其進度已備份到雲端儲存解決方案,如果您使用自己的後端遊戲伺服器,請以安全的方式將 Play 遊戲服務 ID 做為金鑰。玩家使用 Play 遊戲服務 ID 登入時,請檢查該帳戶是否有進度,以及遊戲進度是否允許玩家接續先前的進度。您可以使用自己的雲端儲存解決方案或 Play 遊戲服務「遊戲進度存檔」

如果玩家未登入,請設法在本機保留玩家的遊戲進度,然後在玩家最終登入時同步處理該進度。如果玩家延後登入遊戲,這種做法有助於避免玩家遺失遊戲進度。

2. 成就

以下檢查清單工作適用於實作遊戲成就功能的情況。

ID 重要性 說明
2.1 必填 確認使用者能夠達成所有成就條件。

玩家必須能夠解鎖您建立的所有成就。

2.2 最佳做法 建立不會令人混淆的成就。

所有成就都應該使用不重複的圖片、文字和說明。

2.3 最佳做法 按照比例計算成就得分。

成就點數應該要和贏得成就的花費時間或技巧高低成正比。

2.4 最佳做法 為各種難度等級設計成就。

加入一些玩家輕鬆遊玩也可以贏得的簡單成就,然後是一些需要更多技巧或心力才能解鎖的中等難度成就,最後是一或兩項最忠實的玩家才能解鎖的困難成就。

例如,以下螢幕截圖顯示難以達成的成就,並且能吸引並留住更多支持者。

需要賺取 5,000 個寶石才能贏得的困難成就
2.5 建議內容 請勿預先載入成就。

請避免在遊戲過程的前 5 分鐘內發出超過一項成就,因為剛接觸遊戲的玩家還沒玩到那麼深入,不會在乎這些成就。

定義成就時,請勿讓玩家在遊戲過程中太早就能意外達成成就。舉例來說,請特別小心很可能在遊戲初期就隨意贏得的成就,例如「在未受傷害的情況下完成關卡」

2.6 建議內容 為吸引人的遊戲活動定義成就。

挑選用來建構成就的指標,讓遊戲更引人入勝,並更有重玩價值 (例如「殺死的殭屍數量」這個指標就比「角色行走里程數」要更有趣)。

2.7 建議內容 使用彩色成就圖示。

Google Play 遊戲服務會使用灰階版本的成就圖示,顯示其是否獲得獎勵。如果您限定使用所有黑色 (或全白) 成就圖示,請在彩色背景中顯示這些圖示。

2.8 次 建議內容 盡量減少隱藏成就的數量。

建議您只有在為了避免透露劇情才隱藏成就,而不是把隱藏成就當成常態。

2.9 建議內容 避免建立過度依賴機率的成就。

「找到 100 個寶藏箱」比「找到寶藏箱有 1% 機率會出現的物品」要更好。

2.10 建議內容 考慮會努力達成所有成就的玩家。

有些玩家會嘗試贏得所有您建立的成就。請嘗試為這類玩家提供合適的成就。請避免讓成就依靠太多玩家無法控制的條件,或是玩家在遊戲做出某決定後就無法贏得的成就。

2.11 建議內容 確認成就圖示可以正確顯示。

如果在 Android 浮動式訊息中顯示成就圖示,圖示上會有圓圈重疊,並會隱藏外角。請確保圖示在這類情況下仍可正常顯示。

3. 排行榜

以下檢查清單工作適用於實作遊戲排行榜功能的情況。

ID 重要性 說明
3.1 最佳做法 讓玩家可以在主選單和主要轉場之後看到排行榜。

載入遊戲時,應該要讓玩家可以確實存取排行榜。在遊戲出現重要轉場後 (例如在關卡結束時,或是玩家死亡時),玩家應該可以立即看到相關排行榜的連結。

3.2 最佳做法 定義提交得分上限。

盡可能在定義排行榜時加入限制,以便系統捨棄明顯是假造的得分。

3.3 最佳做法 使用自訂圖示。

為每個定義的排行榜建立自訂圖示,不要光使用遊戲的圖示,因為這在 Google Play 遊戲並不美觀。

3.4 最佳做法 保有合適的得分提交頻率。

在遊戲發生重要轉場時才提交得分,例如關卡結束時,或玩家遊戲角色死亡時。如果您的遊戲沒有重要轉場 (例如「跑酷遊戲」類型),請自行判斷最合適的提交分數頻率。您不應該讓遊戲持續或每秒都提交得分。

3.5 建議內容 運用得分標籤。

得分標籤是一種額外的資料,可以和得分一起提交。舉例來說,您可以把得分標籤實作為標記,藉此確認玩家提交的得分是否有效。

自訂排行榜也可以讀取這個標記資料。舉例來說,如果得分標籤內有記錄玩家遊戲過程的 YouTube 影片 ID,您的遊戲可以建立連結,讓玩家可以在排行榜觀看該段影片。

3.6 建議內容 在設計排行榜 UI 時發揮創意

如果您有足夠的資源,可以在社群媒體排行榜資料上再建構您自己的自訂排行榜檢視畫面。社群媒體排行榜通常能夠提供比公開排行榜更有吸引力的體驗。先檢查社群媒體排行榜是否有任何項目。如果沒有,則改用公開排行榜。

3.7 建議內容 讓玩家知道自己的競爭表現。

Leaderboards API 支援顯示得分視窗 (例如玩家在 +/-10 名以內的排名)。如果您有建立自訂檢視畫面,可以藉此方式大幅提高參與度。您應該在遊戲重要轉場 (例如在關卡結束時,或是玩家角色死亡時) 之後立刻顯示這個內容。避免讓玩家需要在看到排名資訊之前進行多餘的點擊。

4. 朋友

下列檢查清單工作適用於在遊戲中實作 Friends API

ID 重要性 說明
4.1 必填 清單中顯示玩家時,請在擁有 Play 遊戲設定檔的使用者旁顯示 Play 遊戲圖示。

清單可以是現有的好友名單、最近遊玩的好友名單,或其他類型的好友名單。

4.1.1. Play 遊戲圖示必須可供點擊。
當使用者按下圖示後,遊戲應該呼叫 getCompareProfileIntent()getCompareProfileIntentWithAlternativeNameHints(),以便顯示讓使用者和其他玩家個人資料互相比較成果的 UI。
4.1.2. 為遊戲內可自訂的玩家名稱支援玩家個人資料和好友邀請功能。
如果玩家在遊戲裡設定不同的名稱 (不使用 Play 遊戲個人資料名稱),當查看個人資料或收到好友邀請時,請用 getCompareProfileIntentWithAlternativeNameHints() 為目前玩家和正在檢視的玩家提供在遊戲內使用的替代名稱。請只傳遞一致的全域玩家名稱當做值,不要傳遞任意玩家內容。這項規範可以讓遊戲傳送的好友邀請為雙方玩家提供背景脈絡:
  • 接收邀請的玩家可以看到傳送邀請玩家的遊戲內名稱,以及遊戲名稱。
  • 查看好友狀態時,傳送邀請的玩家依然可以看到接收邀請的玩家的遊戲內名稱,以及雙方結交為好友的遊戲。
4.2 最佳做法 運用不同圖示顯示已經是好友的 Play 遊戲使用者,以及還不是 Play 遊戲好友但是已經登入 Play 遊戲的使用者。使用兩個圖示代表 Play 遊戲使用者,一個代表「好友」,另一個代表「不是好友」(或好友狀態不明)。
好友圖示
不是好友圖示
4.3 最佳做法 在每次登入時呼叫 loadFriends() 並顯示好友名單,確保好友名單是最新資訊。確保玩家可以看到更新過的名單。
4.4 最佳做法 如果您的遊戲已包含遊戲內好友,請使用 Friends API 來新增 Play 遊戲好友,藉此增加好友名單。當有玩家出現在遊戲內好友名單,同時也是 Play 遊戲好友的時候,顯示「好友」圖示。
4.5 最佳做法 如果玩家已拒絕存取好友名單的要求,除非使用者已表明要授予存取權 (例如按下「匯入 Play 遊戲好友」按鈕),否則請勿再次顯示要求存取權的對話方塊。
4.6 最佳做法 如果玩家拒絕存取好友名單,請讓他們日後能授予好友名單的存取權 (例如,按下「匯入 Play 遊戲好友」按鈕後)。
4.7 最佳做法 如果您使用後端伺服器處理玩家 ID 或好友名單,您必須用安全的方式存取 ID 或清單。另外,如果是某些較舊的遊戲和玩家,則「Android」SDK 回傳的玩家 ID 可能和其他玩家透過該遊戲檢視該名玩家時看到的 ID 不同,尤其是使用好友名單的時候這個情況特別明顯。不過,REST API 內部回傳的 player_id 一定可以保持一致,而且一律會是其他玩家所看到的 ID。

5. 配額和頻率限制

以下檢查清單工作適用於管理遊戲配額和頻率限制的情況。如果想瞭解如何管理遊戲配額,以及偵測是否超出頻率限制,請參閱「管理配額與頻率限制」。

ID 重要性 說明
5.1 最佳做法 使用用戶端程式庫。

行動用戶端程式庫可以採用多種策略減少呼叫服務的情形。舉例來說,成就資料和排行榜資料會進行快取處理,讓玩家可以隨時查看成就,不需要依靠服務發出多次呼叫。

如果得分比最近提交的得分要低,Android 用戶端程式庫就不會傳送玩家得分到伺服器。Android 程式庫偵測到您受到頻率限制時,也會自動組合經常提交的漸進式成就呼叫。

5.2 建議內容 把經常呼叫的內容組合為漸進式的成就。

如果您要製作格鬥遊戲,並有「拳擊 5000 次」的成就,請勿在每次發生拳擊時就傳送一次漸進式成就呼叫。請等到回合結束,然後傳送一次 increment(xxx) 呼叫 (xxx 代表該回合的拳擊總次數),或等到使出 50 次拳擊之後再送出一次 increment(50) 呼叫。

5.3 建議內容 注意用量。

請留意您向 Google Play 遊戲服務發出的呼叫次數。 即使您已經盡量避免達到頻率限制,頻繁呼叫依然可能產生高度的網路流量,使裝置更快用掉電池電量。您可以藉由以下技巧避免發生這個問題:

  • 執行遊戲進度存檔時,請把頻率保持在每幾分鐘一次,不要每次按下按鈕就執行一次。
  • 等到玩家遊戲結束後再提交最高分資料。
  • 前往 Google Cloud Platform 的專案資訊主頁查看應用程式的每日配額。

6. 遊戲進度存檔

以下檢查清單工作適用於實作遊戲遊戲進度存檔功能的情況。

ID 重要性 說明
6.1 必填 新增中繼資料,為遊戲進度存檔提供更多背景脈絡。

遊戲進度存檔至少須提供以下中繼資料:

  • 封面圖片 - 擷取遊戲進度的螢幕截圖,可以幫助玩家想起遊戲中斷的地方。
  • 說明 - 為封面圖片提供更多背景脈絡的簡短說明。
  • 時間戳記 - 表示玩家遊玩這項遊戲進度存檔的時間。
6.2 必填 允許玩家載入遊戲進度存檔。

當玩家透過 Play 遊戲或預設的選擇遊戲進度存檔 UI 選擇項目後,載入正確的遊戲進度存檔。