2013-07-11 20 views
4

我們正在將Google Play遊戲服務成就添加到我們的遊戲(Epic Swords)中。我們正在進行最後的測試,它的工作原理,除了我曾預計未鎖定的成就可以通過g +以某種方式顯示或發佈。我沒有看到這種共享發生。Google Play遊戲服務 - 是否通過g +自動分享的成果解鎖?

谷歌的文檔暗示這些是共享的,例如, 「通過Google登錄,與朋友分享你的成績和成就」http://goo.gl/V3Y41和其他各種地方,儘管它們在共享方式上很模糊。

問題1:解鎖播放服務成果是否可以通過g +自動顯示? Q2:如果是,那麼我們在測試這些方面做了什麼錯誤?

Q3:如果沒有...那麼,爲什麼使用播放服務實現成就而不是滾動我們自己?我們自己的實現會更簡單也更可靠(由於與谷歌雲同步狀態導致了很多複雜性,更不用提他們客戶端代碼中的一些有趣的錯誤;-)

背景:我們發佈了Google玩遊戲服務。一切都在遊戲中正常運行,並且狀態正在從谷歌共享/檢索。我在登錄遊戲服務時選擇了遊戲進度的公開可見性。

btw我們可以添加明確的g +分享時使用共享API http://goo.gl/L70sY解鎖成就,但如果我們必須這樣做,那麼爲什麼使用播放服務的成就呢?

回答

4

感謝ianhanniballake的幫助,我添加了這個來澄清答案(例如可以自動發佈成就)並總結我們學到的添加此功能。

希望Google員工可以看看我們的Pro/Con,因爲使用1.0 SDK很難推薦API,但通過改進,它將會很有價值。

谷歌的自動共享播放服務成就(如7/13的SDK):

  • 取得的進展(如解鎖)不共享/到G +可見
  • 該SDK不便於共享成就。像PlusShare.Builder一樣。如果未添加自動共享,shareUnlock()將有所幫助,但目前要在g +上共享成就,您必須從頭開始實施
  • imo nothing阻止Google 在未來添加自動成就共享。他們在流動跡象得到用戶的許可共享「遊戲進展」等帖子說排行榜做有社會共享

從我們的經驗:的Pro /成果與谷歌精讀播放服務

  • 這是谷歌官方的解決方案,所以希望將是事實上的標準的Android
  • 谷歌如果願意,可以通過g +使使成就進展共享/可見。這將使它更有價值

精讀

  • 用戶必須願意登錄到G + /保存的成就。有些用戶不會這樣做,並且很煩,他們無法使用成就
  • 同步客戶端 - 服務器有複雜的策略和實施問題。例如。用戶可以在大量的遊戲進程之後登錄;可以同時在多個設備上播放;可能會以不同用戶在遊戲中註銷並登錄
  • 測試很困難,因爲無法通過Android API或服務器UI重置測試帳戶的成就進度。我認爲谷歌可以解決這個...請!有些帖子說刪除/重新添加一個測試人員帳戶重置,但這並不適用於我們,或者它可能只適用於發佈
  • 谷歌的設計旨在他們的服務器管理UI資產(圖標,字符串)和成就政策。如果未來能夠在g +中看到成就,那麼這很好,但在此之前這是一件麻煩事。例如。看到下面的代碼
  • 客戶端用戶界面是好的,但沒有打磨。例如。描述文本區域是有限的,「在戰鬥中擊敗骷髏王」在某些UI模式下被截斷,無法看到完整的細節。增量成果僅限於10,000步

建議(爲什麼?):如果你認爲谷歌將通過G +明顯的成就,這是一個很大的特點,並解釋了最上面的「精讀」的。但是,如果成就保持不變,那麼使用谷歌的API就不那麼可靠,而且工作量要比推出我們自己的客戶端實現要多得多。

警告:如果您使用ImageManager,則截至2013年7月15日的Google Play遊戲服務似乎具有間歇性崩潰錯誤。見ClassCastException: com.google.android.gms.common.images.e我們已經切換到在APK捆綁解鎖圖像和不再使用的ImageManager

這是我們現在不推薦使用代碼來檢索位圖,當用戶解鎖的成就:

Uri unlockedUri = achievement.getUnlockedImageUri(); 
    if (unlockedUri != null) { 
     ImageManager im = ImageManager.create(context); 
     // Warning -- loadImage may silently skip call back if called too soon after achievement load 
     im.loadImage(new ImageManager.OnImageLoadedListener() { 
      @Override public void onImageLoaded(Uri arg0, Drawable drawable) { 
       // Attempt to convert the Drawable to a sharable image; if it fails we'll post text only 
       Bitmap bitmap = null; 
       if (drawable instanceof BitmapDrawable) { 
        bitmap = ((BitmapDrawable) drawable).getBitmap(); 
       } else { 
        log.warn("not BitmapDrawable ", drawable); 
       } 
       listener.onBitmapLoaded(bitmap); 
      } 
     }, unlockedUri); 
    } else { 
     log.debug("no unlockedImageUri"); 
     listener.onBitmapLoaded(null); 
    } 

谷歌不提供自動g +共享的一個好處是,當你不得不推出自己的共享時,除了g +之外,你還可以爲其他服務做到這一點。例如。我們還提供了向twitter分享解鎖獲得的內容。但反過來說,這是Google爲什麼要儘快實現社交效果的一個很好的理由......開發人員很懶惰,這將確保很多遊戲的社交成就在g +第一;-)

+1

Google的傢伙創建了一個簡單的瀏覽器客戶端來管理您的成就和排行榜。 Available here:https://github.com/playgameservices/management-tools/tree/master/tools 更多信息:http://www.youtube.com/watch?v=_2Tp3v7fhQs – x3m

1

沒有Android應用可以自動發佈到Google+ - 您必須通過傳統共享目的或通過您提到的交互式發佈API訪問Google+應用。有App Activities這可以由應用程序創建,並通過用戶的配置文件(在用戶從那裏共享)Apps page中看到。但是,應用活動目前尚未集成到Google Play遊戲服務中。這並不是說它在任何時候都不會神奇地發生(並且,因爲它是服務器端的變化,所有遊戲都已經請求創建遊戲活動(目前沒有遊戲活動)的許可),所以它可以自動發生。

成就,如Google Play Game Service main page所述,「鼓勵用戶以全新且有趣的方式探索您的遊戲」,當然,您還可以在所有支持Google Play的遊戲中提供一致的體驗。對於您或您的用戶是否足夠重要,這些內容可能會隨時間而改變,但預先提供完整的體驗(因爲願意通過Google+登錄的用戶可能會期待)可能會提供更好的用戶體驗。

+0

首先 - 你可能是對的。然而,這不會是一個Android應用程序的帖子,它可能是Google Play服務的一個帖子,它是一個谷歌應用程序/服務,據推測如果谷歌希望它可以這樣做。例如。爲什麼它會詢問您何時登錄您是否希望將您的遊戲進度發佈爲公開,僅圈子等? – mwk

+0

@mwk - 讓你覺得他們有別的計劃,不是嗎?目前,這些設置控制如何/如果您在排行榜上顯示(即只有選擇公開的選手在公開排行榜上顯示)等,如[高級排行榜指南](https://developers.google.com/遊戲/服務/共同/概念/排行榜高級) – ianhanniballake

+0

是的,我也懷疑是否會有更多的未來。在文檔的某個地方,我看到一個暗示g +中的遊戲頁面的參考,但現在不記得現在在哪裏。這個版本的服務是一個非常薄的1.0,所以我認爲他們會保持啓動。我感覺有點被銷售我強調分享,朋友等的文檔所誤導。但是,如果谷歌能夠將這個問題拉高一些,那麼這對於Android遊戲玩家來說是一個殺手級的應用程序,g +可以使用一對情侶殺手應用。 – mwk

相關問題