【问题标题】:Google Play game services -- are unlocked achievements automatically shared through g+ or not?Google Play 游戏服务——解锁的成就是否会通过 g+ 自动分享?
【发布时间】:2013-07-11 16:52:42
【问题描述】:

我们正在向我们的游戏 (Epic Swords) 添加 Google Play 游戏服务成就。我们正在进行最终测试,它可以工作除了我曾预计解锁的成就会通过 g+ 以某种方式可见或发布。我没有看到这种共享发生。

Google 的文档暗示这些是共享的,例如“通过 Google 登录以与朋友分享您的分数和成就”http://goo.gl/V3Y41 和其他各种地方,尽管关于如何分享这些内容并不清楚。

Q1:解锁的游戏服务成就是否可以通过 g+ 自动显示?

Q2:如果是,那么我们在测试这些方面是否做错了什么?

Q3:如果不是……那么,为什么要使用播放服务而不是滚动我们自己的服务来实现成就?做我们自己的实现会更简单,更可靠(由于与谷歌的云同步状态有很多复杂性,更不用说他们的客户端代码中的一些有趣的错误;-)

背景:我们已经发布了 Google Play 游戏服务。游戏中一切正常,状态正在从谷歌共享/检索。我在登录游戏服务时选择了游戏进度的公开可见性。

顺便说一句,我们可以在使用通用共享 API http://goo.gl/L70sY 解锁成就时添加显式 g+ 共享,但同样...如果我们必须这样做,那为什么还要使用播放服务成就呢?

【问题讨论】:

    标签: android google-play-services


    【解决方案1】:

    感谢 ianhanniballake 的帮助,我添加此内容是为了澄清答案(例如,成就可以自动发布)并总结我们在添加此功能时所学到的知识。

    希望 Google 员工会关注我们的 Pro/Con,因为使用 1.0 SDK 很难推荐 API,但经过改进会很有价值。

    自动分享 google play services 成就(截至 7/13 SDK):

    • 成就进度(例如解锁)不通过 g+ 共享/可见
    • sdk 不利于共享成就。如果不添加自动共享,PlusShare.Builder.shareUnlock() 之类的东西会有所帮助,但目前要在 g+ 上共享成就,您必须从头开始实施
    • imo 没有什么能阻止谷歌在未来添加自动成就分享。他们的登录流程获得了用户分享“游戏进度”的权限,其他帖子称排行榜确实有社交分享

    根据我们的经验:Google Play 服务成就的优劣

    专业版

    • 这是 Google 的官方解决方案,因此有望成为事实上的 Android 标准
    • 如果 Google 愿意,可以通过 g+ 分享/查看成就进度。这会让它更有价值

    骗局

    • 用户必须愿意登录 g+ 才能查看/保存成就。一些用户不会这样做,并且对他们无法使用成就感到恼火
    • 同步客户端-服务器存在复杂的策略和实施问题。例如。用户可以在游戏取得实质性进展后登录;可以同时在多个设备上播放;可以在游戏中途退出并以其他用户身份登录
    • 测试很困难,因为无法通过 Android API 或服务器 UI 重置测试帐户的成就进度。我认为谷歌可以解决这个问题......拜托!有些帖子说删除/重新添加测试员帐户会重置,但这对我们不起作用,或者它只适用于发布前
    • Google 的设计旨在让他们的服务器管理 UI 资产(图标、字符串)和成就策略。如果将来在 g+ 中可以看到成就,这很好,但在那之前,这很麻烦。例如。见下面的代码
    • 客户端 UI 正常,但未完善。例如。描述文本区域有限,“在战斗中击败骷髅王”在某些 UI 模式中被截断,无法查看完整细节。增量成就限制为 10,000 步(为什么?)

    建议:如果您相信 Google 会通过 g+ 显示成就,这是一个很棒的功能,并且解释了上面的大部分“缺点”。但是,如果成就仍然不共享,那么使用 google 的 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);
        }
    

    Google 不提供自动 g+ 分享的一个好处是,当您无论如何都必须推出自己的分享时,您不妨为 g+ 之外的其他服务这样做。例如。我们还向 twitter 提供分享解锁的成就。但是,这是 Google 应该尽快在 g+ 上实现社交成就的一个很好的理由……开发人员很懒惰,这将确保许多游戏的社交成就首先在 g+ 上;-)

    【讨论】:

    【解决方案2】:

    没有 Android 应用可以自动发布到 Google+ - 您必须通过 Google+ 应用通过传统的分享意图或通过您提到的交互式发布 API。 App Activities 可以由应用程序创建,并通过用户的个人资料在用户的Apps page 中查看(然后由用户从那里共享)。但是,App Activity 目前并未集成到 Google Play 游戏服务中。这并不是说它不会在任何时候神奇地发生(并且,因为它是服务器端的变化,可能会自动发生,因为所有游戏都已经请求创建游戏活动的权限(目前没有))。

    成就,如Google Play Game Service main page 所述,“鼓励用户以新颖有趣的方式探索您的游戏”,当然,它确实为所有支持 Google Play 的游戏提供了一致的体验。这对您或您的用户是否足够重要可能会随着时间而改变,但预先提供完整的体验(正如那些愿意通过 Google+ 登录的人可能期望的那样)可能会提供更好的用户体验。

    【讨论】:

    • 首先——你可能是对的。但是,这不是 Android 应用发布的帖子,而是 Google Play 服务发布的帖子,这是一个谷歌应用/服务,如果谷歌愿意的话,大概可以这样做。例如。为什么登录时会询问您是否希望将游戏进度发布为公开、仅限圈子等?
    • @mwk - 让你觉得他们有其他计划,不是吗?目前,这些设置控制您如何/是否出现在排行榜上(即,只有选择公开的玩家才会出现在公开排行榜上)等,如 Advanced Leaderboards guide 中所述
    • 是的,我也想知道是否还有更多。在文档的某个地方,我看到了一个参考,暗示了 g+ 中的游戏页面,但现在不记得在哪里了。这个版本的服务是一个非常薄的 1.0,所以我认为它们会继续运行。我觉得被那些强调分享、朋友等卖给我的文档有点误导了我。但如果谷歌能把它提高几个档次,它将成为安卓游戏玩家在 g+ 上的杀手级应用,而 g+ 可以使用一对杀手应用程序。
    • @mwk - 嗯,成就是目前社会性最低的,但基础工作已经存在,因此不一定需要任何 API 更改来添加它们。排行榜,尤其是多人游戏功能在这一点上大大更具社交性。
    猜你喜欢
    • 2014-01-11
    • 2014-07-08
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 2015-03-01
    • 2013-06-27
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多