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

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

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

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

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

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

1. 平台驗證

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

ID 重要性 說明
1.1 必填 使用 Google Play Games 服務驗證玩家。
1.1.1. 初始化 Google Play Games 服務 SDK,並檢查玩家是否已通過驗證。

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

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

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

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

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

1.4 必填 使用 Play Games 服務 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.5 必填 確認使用者能夠達成所有成就條件。

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

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

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

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

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

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

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

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

範例

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

良好範例

以下螢幕截圖顯示了成就的良好範例。成就的名稱圖示說明必須獨一無二。說明會顯示您需要完成哪些事項才能獲得成就。

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

錯誤示例

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

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

3. 排行榜

以下檢查清單工作適用於實作排行榜。

詳情請參閱遊戲中的「排行榜」功能。

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

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

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

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

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

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

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 Games 好友的時候,顯示「好友」圖示。
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 Games 服務發出的呼叫次數。即使您已經盡量避免達到頻率限制,頻繁呼叫依然可能產生高度的網路流量,使裝置更快用掉電池電量。您可以藉由以下技巧避免發生這個問題:

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

6. 遊戲進度存檔

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

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

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

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

在玩家透過 Play 遊戲應用程式或預設的遊戲進度存檔選擇 UI 中選擇項目後,載入正確的遊戲進度存檔。