4

Google Play ゲーム サービスの実績をゲーム (Epic Swords) に追加しています。私たちは最終テストを行っています。ロックされていない実績が g+ を通じて何らかの方法で表示または投稿されると予想していた以外は機能します。この共有が行われていることはわかりません。

Google のドキュメントは、これらが共有されていることを暗示しています。たとえば、「Google でサインインしてスコアと成果を友達と共有する」http://goo.gl/V3Y41やその他のさまざまな場所ですが、これらがどのように共有されているかはあいまいです。

Q1: ロックされていないプレイ サービスの実績は、g+ を通じて自動的に表示されますか?

Q2: はいの場合、これらのテスト方法に何か問題がありますか?

Q3: いいえの場合...では、なぜ独自のロールではなく、プレイ サービスを使用して実績を実装するのですか? 独自の実装を行う方が簡単で信頼性が高くなります (クライアント コードのいくつかの興味深いバグは言うまでもなく、Google のクラウドと状態を同期するために多くの複雑さがあります ;-)

背景: Google Play ゲーム サービスを公開しました。ゲーム内ではすべて正常に動作し、状態は Google から共有/取得されています。ゲーム サービスにサインインするときに、ゲームの進行状況を一般公開することを選択しました。

ところで、一般的な共有 API http://goo.gl/L70sYを使用してアチーブメントのロックを解除するときに明示的な g+ 共有を追加することもできますが、それを行う必要がある場合、なぜプレイ サービスのアチーブメントを使用する必要があるのでしょうか。

4

2 に答える 2

4

ianhanniballake さん、ご協力ありがとうございます。回答を明確にするため (たとえば、実績を自動投稿することができます)、この機能を追加することで学んだことを要約するために、これを追加します。

1.0 SDK では API を推奨するのは難しいため、Google 社員が私たちの賛否両論を検討してくれることを願っていますが、改善されれば価値があるでしょう。

Google Play サービスの実績の自動共有(7/13 SDK 時点):

  • アチーブメントの進行状況 (ロック解除など) は g+ で共有/表示されません
  • SDK は成果の共有を促進しません。自動共有が追加されていない場合は PlusShare.Builder.shareUnlock() のようなものが役立ちますが、現在 g+ で実績を共有するには、ゼロから実装する必要があります
  • imo は、Googleが将来的に自動実績共有を追加することを妨げるものは何もありません。彼らのサインインフローは、「ゲームの進行状況」を共有するためのユーザー許可を取得し、他の投稿では、リーダーボードにはソーシャル共有があると書かれています

私たちの経験から: Google Play サービスでの実績の賛否両論:

プロ

  • これは Google の公式ソリューションなので、Android のデファクト スタンダードになることを願っています。
  • Google、必要に応じて、g+ を通じて実績の進捗状況を共有または表示できるようにすることができます。そうすればもっと価値が上がる

短所

  • 実績を表示/保存するには、ユーザーが g+ にサインインする必要があります。一部のユーザーはこれを行わず、実績を使用できないことに悩まされます
  • クライアントとサーバーの同期には、複雑なポリシーと実装の問題があります。たとえば、ユーザーはゲームがかなり進行した後にサインインする場合があります。複数のデバイスで同時に再生できます。ゲーム中にサインアウトして、別のユーザーとしてサインインすることができます
  • Android API またはサーバー UI を介してテスト アカウントの実績の進行状況をリセットする方法がないため、テストは困難です。私はグーグルがこれを修正できると思います...お願いします!一部の投稿では、テスター アカウントのリセットを削除/再追加すると書かれていますが、それは機能しませんでした。または、公開前にのみ機能する可能性があります
  • Google の設計では、サーバーが UI アセット (アイコン、文字列) と実績ポリシーを管理することを意図しています。今後g+で実績が見えるようになればこれでいいのですが、それまでは面倒です。たとえば、以下のコードを参照してください
  • クライアント UI は問題ありませんが、洗練されていません。たとえば、説明のテキスト エリアが限られている、「バトルでスケルトン キングを倒せ」が一部の UI モードで切り詰められており、完全な詳細を表示する方法がありません。インクリメンタル アチーブメントは 10,000 ステップに制限されています (なぜですか?)

推奨事項: Google が g+ を通じて実績を表示できると信じている場合、それは優れた機能であり、上記の「短所」のほとんどを説明しています。ただし、成果が共有されないままである場合、Google の API を使用することは信頼性が低くなり、独自のクライアント実装を展開するよりも大幅に多くの作業が必要になります。

警告: 2013 年 7 月 15 日の時点で、Google Play ゲーム サービスには、ImageManager を使用すると断続的にクラッシュするバグがあるようです。ClassCastException: com.google.android.gms.common.images.e 参照してください

これは、ユーザーが実績のロックを解除したときにビットマップを取得するための、現在非推奨のコードです。

    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+ 共有を提供しないことの利点の 1 つは、とにかく独自の共有をロールバックする必要がある場合、g+ に加えて他のサービスに対しても同様に実行できることです。たとえば、ロック解除された実績を Twitter で共有することもできます。しかし逆に言えば、これは Google ができるだけ早く g+ で実績をソーシャルにすべき理由です... 開発者は怠け者であり、ソーシャル実績が最初に g+ にあった多くのゲームを確実にするでしょう ;-)

于 2013-07-13T23:30:48.357 に答える
1

Android アプリは Google+ に自動投稿できません。従来の共有インテントまたは前述のインタラクティブな投稿 API を介して Google+ アプリを経由する必要があります。アプリケーションによって作成され、プロファイルを介してユーザーの [アプリ] ページに表示される (その後、ユーザーがそこから共有する)ことができるアプリ アクティビティがあります。ただし、アプリ アクティビティは現在、Google Play ゲーム サービスに統合されていません。これは、いつでも魔法のように起こらないと言っているわけではありません (また、これはサーバー側の変更であるため、すべてのゲームが既にゲーム アクティビティを作成する許可を要求しているため、自動的に発生する可能性があります (現時点ではありません))。

Google Play ゲーム サービスのメイン ページで説明されているように、実績は、「ユーザーが新しい興味深い方法でゲームを探索することを奨励する」ものであり、もちろん、すべての Google Play 対応ゲームで一貫したエクスペリエンスを提供します。それがあなたやユーザーにとって重要かどうかは、時間の経過とともに変化する可能性がありますが、事前に完全なエクスペリエンスを提供することは (Google+ でサインインすることをいとわない人が期待するように)、より優れたユーザー エクスペリエンスを提供する可能性があります。

于 2013-07-11T17:15:52.110 に答える