ディベロッパーダイアリー:「GOバトルリーグ」
トレーナーの皆さん
「GOバトルリーグ」が2年前に登場してから、私たちはトレーナーの皆さんのフィードバックを受けて、よりよい体験をお届けできるよう改善を重ねて来ました。次のシーズンに様々な調整を行うにあたり、今回は『Pokémon GO』のバトルを担当するエンジニアが現在取り組んでいる「GOバトルリーグ」の改善に向けた取り組みの舞台裏をご紹介したいと思います。
エンジニア達は、バトルに関するシステム全体を考えています。具体的には、GOロケット団、ジムバトル、トレーナー同士での対戦などのバランス調整を行っています。「GOバトルリーグ」では現在、以下の4つの分野に取り組んでいます。
4つの重点分野
エンジニア達は、バトルに関するシステム全体を考えています。具体的には、GOロケット団、ジムバトル、トレーナー同士での対戦などのバランス調整を行っています。「GOバトルリーグ」では現在、以下の4つの分野に取り組んでいます。
バトルのコードメンテナンス
- 将来的なエンジニアリング作業の安定性と柔軟性を高められるよう、コードの書き換えや再構築を行っています。
「ノーマルアタック」の不具合修正
- 不安定なゲームプレイの原因となってしまっている「ノーマルアタック」の不具合に対処しています。
バトルログ
- 不具合のあったバトルのあとで、トレーナーの皆さんに提出いただいた報告から問題を分析して、素早く修正できるようにします。
緊急性のある不具合を優先的に対処
- 「GOバトルリーグ」で、トレーナーの皆さんに大きな影響が出てしまうような不具合を優先的に対処しています。
次のシーズン期間でも、皆さんから頂いたご要望に耳を傾けながら改善を続けます。そして今回は「GOバトルリーグ」の裏側や詳細について、開発者の生の声をご紹介します。
「GOバトルリーグ」についての質問
「GOバトルリーグ」の開始以来、トレーナーの皆さんから「GOバトルリーグ」の仕組みについて多くの質問が寄せられてきました。そこで、開発チームに、現在の「GOバトルリーグ」についての考えや、今後の展望について質問しました。
「GOバトルリーグ」にラグが生じる理由は?それをどのように減少させようと考えていますか?
ラグや遅延などは、トレーナーが取ったアクションとそれに対するサーバーの応答との間に遅れが生じることで発生します。特に2人のトレーナー間では、そのラグが不均衡になることで、よりラグが発生しやすくなります。これらの問題は、サーバー側およびトレーナー側のどちらでも起こり得ます。特に、トレーナーの端末からサーバーへ伝わる情報の遅延が原因となり発生することが多いです。バトルに関わるエンジニアチームは、特に外部で発生するラグを削減する方法を模索しており、多くの解決方法を検討・実施しています。
バトルに関わるエンジニアチームはラグを減らすよう調査を続けていますが、トレーナーの皆さんご自身が、Wi-Fi接続からデータ通信(もしくはその逆)に切り替えるなどの方法を取ることで、遅延を減らすことができる可能性もあります。
Wi-Fiまたはモバイルデータ通信のどちらを使用すべきか分からない方は、以下の方法でご確認ください。
- 端末のモバイルデータ通信をオフにする。
- Wi-Fi環境下で通信速度を測るツールを使い、端末とサーバー間の応答を確認する。
- Wi-Fi接続をオフにして、モバイルデータ通信をオンにする。
- 先ほどと同じ方法で応答を確認する。
より良いネットワークの応答速度を得られる通信方法を使用することを推奨します。ネットワークの応答速度は、データの使用状況(より多くの人がネットワーク上でデータを使うと、速度が低下する可能性があります)や、プレイする場所によって変わる場合があります。
Stephen - Engineering Director
「GOバトルリーグ」のマッチングシステムはどのように機能しているのですか?
GOバトルリーグのマッチングは各トレーナーのスキルやそれまでの実績に基づいて行われます。マッチングシステムは、その時点でGOバトルリーグで登場頻度の高いポケモンのタイプやわざの組み合わせを反映しています。
このことはいくつかのスペシャルカップ(「リトルカップ」や「カントーカップ」など)で顕著に見られます。設定された制限により、よく選んでいるポケモンやわざが選べない場合、別のポケモンを捕まえて新しく効果的な組み合わせを試すことが求められます。ランクが上がるにつれ、トレーナーの皆さんにはそのランクに合ったチームが自然に見つかるようになり、その結果、より多くの種類のポケモンがバトルで活躍するようになるのです。スペシャルカップ中に繰り広げられるこのようなマッチによって、バトルがよりバラエティに富んだ楽しい体験になることを目指しています。
Steve Wang - Senior Executive Producer
バトルログとは何ですか?「GOバトルリーグ」ではどのように機能するのでしょう?
2021年に実装したレイドログ機能とよく似たログ機能をバトルにも実装する予定です。この機能によって「GOバトルリーグ」のバトル中にトレーナーの皆さんが経験した詳細な記録を、任意で送信することができます。これらの詳細な記録は、トレーナーがサポートチームに報告する問題に対し、改善を目指すための洞察を与えてくれます。サポートチケットとバトルログの両方をトレーナーに提出頂くことで、私たちが問題解決に向けて取り組むための助けとなります。これらの報告を参考に、「GOバトルリーグ」における不具合の特定と修正をより迅速なものにしたいと考えています。
Jess C - Software Engineer
バトルのコードメンテナンスとは何ですか?
バトルシステムが発展・進化するにつれ、既存のゲームインフラでは対応できなくなっていきました。こうした状況に対応するべく、発生した問題をより正確に把握することを可能にする「バトルリファクター」と呼ばれるバトルコードメンテナンスを構築しました。これにより、「GOバトルリーグ」コミュニティに影響する問題をより素早く効果的に修正することを可能にします。現在は予防策がコードに追加され、視覚効果がパフォーマンスの問題を引き起こす可能性が低くなっています。これらの変更により、既存のコードへの影響をあまり出さずに新しい機能を開発したり、さらに大きな変更を加えることが可能になりました。
Alex Hardinger - Client Software Engineer
「ノーマルアタック」の問題についての質問です。どんな問題が発生していて、どのように修正するのでしょうか?
現在把握している主な問題は以下の3つです。
- 1.「ノーマルアタック」の非同期:「ノーマルアタック」を繰り出すのに時間がかかる場合がある
- 2.「ノーマルアタック」の不安定な挙動:「スペシャルアタック」が繰り出される際、相手の「ノーマルアタック」の挙動に一貫性がなくなる
- 3.「スペシャルアタック」後の非同期:「スペシャルアタック」の後に「ノーマルアタック」を繰り出せない時がある
「ノーマルアタック」の非同期
通常、この現象はバトル開始時に発生します。相手が問題なくバトルを続けているのにも関わらず、こちらの「ノーマルアタック」の回数がおかしい、もしくは「ノーマルアタック」をしようとしてもポケモンが反応しないといった問題が確認されています。この問題はラグのように感じられ、「りゅうのいぶき」などの短い「ノーマルアタック」を繰り出した時には特に顕著に見られます。この問題は、トレーナーの端末が、サーバーが認識しているものと異なる状態にあると誤認することで、挙動の反応が悪くなるという問題が発生することがわかっています。この問題を解決するため、トレーナーから見えない状態でバトル中に同期を追加して、クライアントとサーバーが同じ状態になるようにする見通しです。
「ノーマルアタック」の非同期を解決するため、私たちはこれ以外にも複数のアプローチに取り組んでいます。今回ご紹介した以外にも、今後も引き続き最善の解決策を探っていきたいと考えています。
「ノーマルアタック」のリーク
どちらかのトレーナーが「スペシャルアタック」を繰り出している時に、もう一方のトレーナーが余分に「ノーマルアタック」を行えるといったことが報告されています。これは、片方のトレーナーの「ノーマルアタック」終了と、もう一方のトレーナーの「スペシャルアタック」の始動が同時に繰り出されることで発生する現象だと考えられます。現在のシステムにおいては、「スペシャルアタック」が繰り出される前に、「ノーマルアタック」によるダメージが優先的に実行されます。そのため、「ノーマルアタック」を行ったトレーナーがさらに「ノーマルアタック」を繰り出せる可能性が生じる場合があります。
短期的な対応策として、「ノーマルアタック」終了と同時に繰り出される「スペシャルアタック」を遅らせないようにしたことで「ノーマルアタック」と「スペシャルアタック」のタイミングが一致するようになり、「スペシャルアタック」を繰り出す間に「ノーマルアタック」を終了させることも可能となりました。「ノーマルアタック」が終了するまでの時間に「スペシャルアタック」を出した場合、「ノーマルアタック」を効果的にはねのけることができます。
この解決策はリスクを低減させるだけでなく、「ノーマルアタック」と「スペシャルアタック」が一貫性のある挙動をするようになります。また、コミュニティにおいて今まで培われてきた知識や技術をそのまま活かすことにも役立ちます。
「スペシャルアタック」の非同期
最後に、トレーナーが「スペシャルアタック」終了後すぐに行動できなくなることがある「非同期」についてです。開発チームもこの現象については認識しております。現時点において直ちに解決できる問題ではありませんが、引き続き根本的な原因を調査して参ります。進捗状況については、「GOバトルリーグの確認されている不具合」ページをご覧ください。
Ben Li - Senior Server Engineer
今後の展望
現在私たちが最優先で取り組んでいるのは、すべてのトレーナーの皆さんが平等に遊べるよう、安定した体験をお届けすることです。
次の「GOバトルリーグ」のシーズンでは、バトル体験の調整に重点を置いて取り組んで参ります。次のシーズンでは引き続きバトルの勝利に応じてリワードを獲得できますが、レーティングはなく、ランクにも影響を与えません。「GOバトルリーグ」の体験をなるべく損ねることなく、問題の根幹の解決に向けて時間をかけて取り組みます。一方、「GOバトル・デイ」のようなイベントは、トレーナー同士のバトルコミュニティが盛り上がるきっかけでもあります。私たちは、これらのイベントを特別なボーナスと共に次のシーズンでも開催する予定です。今後も引き続き、現状や今後の課題について進捗をお知らせしていきます。
より多くのトレーナーの皆さまにGOバトルリーグの楽しさを体験していただけるよう、今後も改善を続けて参ります。
『Pokémon GO』を遊ぶ際は、周囲の安全に注意のうえ、国や自治体等の法令や方針等に従ってお楽しみください。今後行われるイベントについて、開催が中止、または内容が変更になる可能性があります。今後もソーシャルメディアやアプリ内ニュースやヘルプセンター記事で最新情報をご確認ください。
—Pokémon GO開発チームより
『Pokémon GO』を遊ぶ際は、周囲の安全に注意のうえ、国や自治体等の法令や方針等に従ってお楽しみください。今後行われるイベントについて、開催が中止、または内容が変更になる可能性があります。今後もソーシャルメディアやアプリ内ニュースやヘルプセンター記事で最新情報をご確認ください。