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

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

本文件將引導您瞭解遊戲開發的重要層面,這些層面會對遊戲是否能成功造成重大影響。著重於品質、功能集和使用者介面 (UI)。

本文將針對每個重點領域提供以下資訊:

  • 詳細列出最低需求的檢查清單。
  • 提升遊戲品質的最佳做法。

請盡可能遵循這些建議,發布高品質遊戲,並向玩家提供最優質的產品。

1. 平台驗證

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

ID 重要性 說明
1.1 必填 使用 Google Play 遊戲服務驗證玩家。
1.1.1. 初始化 Google Play 遊戲服務 SDK,並檢查玩家是否已通過驗證。如果系統未自動驗證玩家身分,請提供手動登入選項。

自動驗證可以讓玩家快速驗證並授權使用完整的 Google Play 遊戲服務功能。

如果使用者拒絕驗證,遊戲應讓使用者能在之後驗證,例如在遊戲選單提供按鈕等。登入按鈕應可讓玩家輕鬆找到,例如在主畫面或「設定」畫面中顯示。這個按鈕不應藏在多層遊戲選單中。

1.2 最佳做法 遵循 Google 品牌宣傳指南。

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

1.3 最佳做法 提醒玩家已通過驗證。

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

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

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

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

2. 成就

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

ID 重要性 說明
2.1 必填 遊戲生命週期內至少有 10 個可見成就。

至少要有 10 個顯示狀態的成就。

2.2 必填 所有玩家都應能在遊戲開始後一小時內,合理且可靠地達成至少四個成就。

2.3 必填 所有成就的名稱和說明皆不得重複。 這些說明應清楚指出使用者需要採取哪些行動才能獲得成就。

2.4 必填 所有成就都應使用不重複的圖示。

圖示大小為 512 x 512,檔案格式為 PNG、JPEG 或 JPG,背景必須為透明。詳情請參閱圖示規範

土耳其里拉 必填 確認使用者能夠達成所有成就條件。

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

2.6 次 最佳做法 使用 增量成就顯示進度。

漸進式成就會在遊戲中逐漸累積。

在此漸進式成就範例中,玩家的進度是 23%。
在此漸進式成就範例中,玩家的進度是 23%。
2.7 次 最佳做法 遊戲生命週期內至少有 40 項成就,包括能帶給玩家驚喜和樂趣、表彰里程碑,以及記錄玩家進度的成就。

遊戲生命週期內至少有 40 個成就 (不限狀態)。

2.9 次 最佳做法 使用 隱藏成就,帶給玩家驚喜和樂趣。

隱藏成就是指玩家無法查看的成就相關詳細資料。

2.10 最佳做法 在遊戲中新增關卡或集數時,一併新增成就。

詳情請參閱「點數和經驗」。

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

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

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

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

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

需要賺取 5,000 個寶石才能贏得的困難成就
需要賺取 5,000 個寶石才能贏得的困難成就。
2.13 最佳做法 請勿預先載入成就。

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

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

2.14 最佳做法 為吸引人的遊戲活動定義成就。

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

2.15 最佳做法 使用彩色成就圖示。

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

2.16 最佳做法 盡量減少隱藏成就的數量。

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

2.17 最佳做法 避免建立過度依賴機率的成就。

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

2.18 最佳做法 考慮會努力達成所有成就的玩家。

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

範例

以下提供幾個範例,協助您設計優質成就:

良好範例

以下螢幕截圖顯示了成就的良好範例。成就的名稱圖示說明皆不重複。說明會告訴你如何達成成就。

成就名稱、圖示和說明不得重複。
成就名稱、圖示和說明都獨一無二 (按一下即可放大)。

錯誤示例

以下螢幕截圖顯示了不當的成就範例。

名稱、圖示和說明重複的錯誤成就。
名稱、圖示和說明重複的錯誤成就 (按一下即可放大)。

3. 排行榜

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

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

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

3.2 最佳做法 定義可提交分數的上限。

可能的話,請在定義排行榜時加入限制,方便系統捨棄明顯造假的分數。

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

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

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

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

3.5 最佳做法 運用得分標籤。

得分標籤屬於額外資料,可以和得分一併提交。舉例來說,您可以將得分標籤實作為標記,用來確認玩家提交的得分是否有效。

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

3.6 最佳做法 在設計排行榜 UI 時發揮創意

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

3.7 最佳做法 讓玩家知道自己的競爭表現。

排行榜 API 支援顯示得分視窗,例如玩家排名 +/-10 名以內的榜單。如要建立自訂檢視畫面,上述做法可以大幅提高玩家參與度。您應該在遊戲重要轉場 (例如在關卡結束時,或是玩家角色死亡時) 之後立刻顯示這個內容。請避免讓玩家需點選不必要的內容才能看到排名資訊。

4. 六人行

以下檢查清單工作適用於實作遊戲好友服務功能的情況。

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 最佳做法 當遊戲裡面已經有遊戲內結交的好友時,使用好友服務加入 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 中選擇項目後,載入正確的遊戲進度存檔。