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

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

本說明文件可以幫助您注重品質、功能集、UI 等重要層面,這些層面對遊戲是否能成功具有很深遠的影響。每個應注重的層面都會提供檢查清單,列出最低需求、最佳做法及建議採用的改善項目。為了向玩家提供最優質的產品,請盡可能遵循檢查清單的建議。

1. 登入

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

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

遊戲應實作靜默登入功能,協助玩家快速驗證並授權使用 Google Play 遊戲服務提供的完整功能。如果靜默登入失敗,應用程式應提示玩家以互動方式登入。使用互動式登入功能後,玩家可以選擇登入遊戲,Play 遊戲會確保玩家的個人資料正確設定,以便在遊戲中使用。結合靜默和互動式登入功能,可在使用者不必費心操作的情況下,提高登入率。

如果玩家選擇不登入,請記住這項資訊,並不要再次提示玩家。請改為提供登入按鈕。登入按鈕應可讓玩家輕鬆找到,例如在主畫面或「設定」畫面中顯示。這個按鈕不應藏在多層遊戲選單中。請繼續嘗試在玩家每次啟動遊戲時自動登入,他們可能會變更偏好設定並自動登入。

1.2 必填 建立登入用戶端時,請勿要求非 Play 遊戲的範圍。這樣一來,玩家就能自動登入遊戲,因為要求非 Play 遊戲範圍會強制使用者使用互動式登入功能。

如果您已要求非 Play 遊戲範圍,請從 GoogleSignInOptions 建構中移除所有不需要的範圍,以及您不再使用的 API。如果您需要要求其他範圍 (例如,如果您想查看使用者的電子郵件以進行行銷),請在適當的時機提出要求,而非在登入程序中提出要求。

// This is the proper way to do it
GoogleSignInOptions signInOption = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
1.3 必填 允許玩家保持登入狀態。

玩家成功登入遊戲後,只要遊戲啟動,系統就會自動連線,直到玩家明確登出為止。

1.4 必填 在登入時適當顯示「連線中」彈出式視窗。

在 Android 裝置上,只要叫用登入流程,就必須顯示 Google Play 遊戲「連線中」彈出式視窗。這需要您呼叫 GamesClient 類別的 setViewForPopups() 方法。請確認在遊戲開始時自動登入玩家時,會顯示這個彈出式視窗。這樣玩家就能知道自己是否已正確登入遊戲。

以下範例說明在登入期間,Android 遊戲中可能會顯示「Connecting」彈出式視窗,接著顯示 Google Play 遊戲服務標誌的簡短動畫。

螢幕截圖:顯示「Connecting to」彈出式視窗。
1.5 必填 為玩家提供登出選項。

玩家登入後,必須隨時能選擇登出。

建議您在應用程式中相關的遊戲畫面 (例如玩家設定畫面) 中提供登出按鈕。

1.6 最佳做法 記住玩家是否拒絕登入。

如果玩家在遊戲一開始啟動登入流程時拒絕登入 (例如在登入 UI 中按下「取消」),您仍應允許玩家繼續進行遊戲。

玩家再次啟動遊戲時,請勿自動叫用互動式登入流程。這些玩家可以選擇稍後使用「設定」系統中的「登入」按鈕登入。這樣一來,玩家每次啟動遊戲時,就不必一再拒絕登入。

例外狀況是玩家嘗試存取需要登入才能使用的遊戲功能 (例如將分數提交至排行榜)。在這種情況下,請先提示玩家登入帳戶,再繼續進行遊戲。

1.7 最佳做法 盡可能讓最多玩家登入。

更多玩家登入 Google Play 遊戲服務,可增加合作和競爭遊戲玩法的機會,為玩家帶來更多好處。為了盡可能增加登入 Google Play 遊戲服務的玩家人數,強烈建議您自動提示玩家登入,如上所述。

否則,請盡早在下列任一時機點引導玩家進入登入流程 (建議優先採用):

  • 遊戲開始後立即執行。
  • 在簡介體驗 (例如過場動畫或教學課程) 後立即顯示。
  • 玩家在遊戲中點選任一處的 Google 登入按鈕。
1.8 建議 遵循 Google 品牌宣傳指南。

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

1.9 建議 提醒玩家已登入。

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

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

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

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

2. 成就

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

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

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

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

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

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

成就分數應與贏得成就所花費的時間或技巧難度成正比。

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

請加入一些輕鬆遊玩即可贏得的簡單成就、一些需要較多技巧或心力才能達成的中等難度成就,以及一或兩項非常困難的成就,供最忠實的玩家挑戰。

舉例來說,以下螢幕截圖顯示的是很難贏得的成就,可以鼓勵並留住遊戲支持者繼續遊玩。

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

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

定義成就時,請勿讓玩家在遊戲過程太早期就意外贏得成就。舉例來說,請注意可能在遊戲初期隨意達成的成就,例如「在不受傷害的情況下破關」

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

請選取能建立成就感的指標,讓遊戲更引人入勝,並提高重玩價值。舉例來說,比起「角色行走里程數」指標,「殺死的殭屍數量」會更有趣。

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

Google Play 遊戲服務會使用灰階版本的成就圖示,藉此顯示玩家是否已經贏得這些成就。如果您有必須使用全黑 (或全白) 成就圖示的限制,請用彩色背景顯示這些圖示。

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

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

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

比起「找到有 1% 機率會出現在寶箱內的物品」,「找到 100 個寶箱」是比較好的成就。

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 建議 讓玩家知道自己的競爭表現。

排行榜 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 或好友名單,必須以安全的方式存取這些項目。另外,若是較舊的遊戲和較資深的玩家,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 中選擇項目後,載入正確的遊戲進度存檔。