簡體   English   中英

Google Play游戲服務 - 是否通過g +自動共享未鎖定的成就?

[英]Google Play game services — are unlocked achievements automatically shared through g+ or not?

我們正在為我們的游戲(Epic Swords)添加Google Play游戲服務成就。 我們正在進行最終測試, 除非我預期解鎖的成就會通過g +顯示或以某種方式發布。 我沒有看到這種共享發生。

Google的文檔暗示這些是共享的,例如“通過Google登錄以與朋友分享您的分數和成就” http://goo.gl/V3Y41以及其他各個地方,盡管它們如何分享這些內容是模糊的。

Q1:解鎖后的游戲服務成就是否通過g +自動顯示?

Q2:如果是,那么我們在測試這些問題上做錯了嗎?

問題3:如果沒有......那么,為什么要使用播放服務來實現成就而不是自己動手? 執行我們自己的實現會更簡單,更可靠(由於與谷歌的雲同步狀態而存在很多復雜性,更不用說客戶端代碼中的一些有趣的錯誤;-)

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

順便說一句,當成就使用通用共享API http://goo.gl/L70sY解鎖時我們可以添加明確的g +共享...但是如果我們必須這樣做那么為什么要使用播放服務成就呢?

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

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

自動分享Google Play服務成就 (截至7/13 SDK):

  • 通過g +不會共享/可見成就進度(例如解鎖)
  • sdk不利於分享成就。 如果沒有添加自動共享,像PlusShare.Builder.shareUnlock()這樣的東西會有所幫助,但是目前要在g +上分享成就你必須從頭開始實現
  • imo什么都不會阻止谷歌在未來添加自動成就共享。 他們的登錄流程獲得用戶分享“游戲進度”的權限,其他帖子稱排行榜確實有社交分享

根據我們的經驗: 使用Google Play服務的Pro / Con成就

  • 這是谷歌的官方解決方案,所以希望將成為事實上的Android標准
  • 如果他們想要,谷歌可以通過g +分享/可見成就進展。 這將使它更有價值

騙局

  • 用戶必須願意登錄g +才能查看/保存成就。 有些用戶不會這樣做而且生氣他們無法使用成就
  • 同步客戶端 - 服務器具有復雜的策略和實現問題。 例如,用戶可以在大量游戲進度后登錄; 可以同時在多個設備上播放; 可以退出並以游戲中的其他用戶身份登錄
  • 測試很困難,因為無法通過Android API或服務器UI重置測試帳戶的成就進度。 我認為谷歌可以解決這個問題...拜托! 有些帖子說刪除/重新添加測試人員帳戶重置,但這對我們不起作用,或者它可能僅適用於預發布
  • 谷歌的設計意圖是他們的服務器管理UI資產(圖標,字符串)和成就政策。 如果將來在g +中可以看到成就,這是很好的,但在那之前它是一個麻煩。 例如,見下面的代碼
  • 客戶端用戶界面很好,但沒有完善。 例如,描述文本區域是有限的,“在戰斗中擊敗骷髏王”在某些UI模式中被截斷,並且無法看到完整的細節。 增量成就限於10,000步(為什么?)

建議 :如果您認為Google會通過g +顯示成就,這是一個很棒的功能,並解釋了上面的大部分“Con”。 但是,如果成就仍然未得到共享,那么使用谷歌的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提供共享解鎖的成就。 但是反過來說這是一個很好的理由,為什么谷歌應該在g +上做出社交成就...開發人員很懶,這將確保很多游戲社交成就都在g +第一;-)

沒有Android應用可以自動發布到Google+ - 您必須通過傳統的分享方式或通過您提到的互動發布API來瀏覽Google+應用。 應用程序活動可以由應用程序創建,並通過其配置文件在用戶的應用程序頁面中查看 (然后由用戶從那里共享)。 但是,App活動目前尚未整合到Google Play游戲服務中。 這並不是說它不會在任何時候神奇地發生(並且,因為它是服務器端的變化,可能會自動發生,因為所有游戲都已經請求創建游戲活動的許可(目前沒有))。

成就,如Google Play游戲服務主頁上所述 ,“鼓勵用戶以全新且有趣的方式探索您的游戲”,當然,還可以為所有支持Google Play的游戲提供一致的體驗。 這對您或您的用戶來說是否足夠重要可能會隨着時間的推移而變化,但預先提供完整的體驗(因為那些願意通過Google+登錄的人可能期望)可以提供更好的用戶體驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM