Ichizokuは日本唯一のSentry公認販売業者です。
日本語のドキュメント、動画、サポート窓口で日本のお客様のSentry活用を支援します。

PlayStation・Xbox・Switch・PC・モバイル どのプラットフォームでもSentry がバグの修正をサポート

Article by: Sasha Blumenfeld

 

ボス戦でのフリーズでも、マルチプレイ中の突然の切断でも、クラッシュは没入感を壊し、プレイヤーを怒らせてしまいます。しかも各プラットフォームごとに異なるエラー報告システムがある中で、これらの問題をデバッグするのは非常に困難です。

Riot Games、Epic Games、Unity を含む 1,500 社以上のゲーム企業が Sentry を使用して自社プロダクトを監視しており、当社はゲームエンジンおよびコンソールとの統合サポートを継続的に拡充しています。Unreal Engine、Unity、Godot、社内エンジンのいずれで開発していたとしても、PlayStation、Xbox、Nintendo Switch 向けに出荷していても、Sentry は本番環境におけるクラッシュ、エラー、パフォーマンス問題を分散したログを探し回ったり、プラットフォーム固有のツールを切り替えたりすることなく追跡できます。

Sentry を使えば、すべてのプラットフォームで発生したネイティブクラッシュや例外を一箇所に集約できるため、こうした問題を簡素化できます。読みにくいメモリアドレス(長い 16 進数の数字列)と格闘する代わりに、Sentry はシンボル化されたスタックトレースを提供し、どの関数のどのコード行がクラッシュを引き起こしたのかを正確に示してくれます。

以下のような充実したコンテクスト情報を得ることができます。

  • 読みやすいスタックトレースやパンくずリストにより、クラッシュ直前のプレイヤーの操作、エンジンイベント、システム動作を記録。何が壊れたかだけでなく「何が起きたのか」を把握できます。
  • ビルド番号やOSバージョンの追跡により、クラッシュが特定のアップデートに関連しているのか、古いシステムを使用しているプレイヤーのみに影響しているのかを判断できます。
  • クラッシュ時のスクリーンショットを記録し、ゲームが停止する直前のプレイヤーの視点を把握できます。
  • クロスプラットフォームでの可視化により、コンソールの問題を認証の障害となる前に解決できます(パブリッシャーに「なぜリリースできなかったのか」と説明することは、誰にとっても望ましくありません)。

開発用キットでは正常に動作していたにも関わらず、市販のハードウェア上で突然クラッシュが起き始めた… という場合でも、Sentry なら、原因(たとえば物理エンジン内のヌルポインタ例外)を正確に突き止め、プレイヤーの怒りが爆発する前に修正することができます。

Nintendo Switch 向けゲームで Sentry を使用するには、Nintendo のサーバーを設定してクラッシュ情報を Sentry に自動で転送するようにします。まずは Nintendo の CRPORTAL から始めてください。

Xbox 向けには、Microsoft の GDKX Middleware 認証ページで Sentry を見つけて、そこから導入を開始できます。

そして最後に、PlayStation 向けには Tools & Middleware ページに Sentry が掲載されています。

 

 

Unreal Engine のデバッグがより簡単に

Unreal Engine にはゲームを構築するための多くのシステムが用意されていますが、その分だけ…トラブルの原因も無数に存在します。C++ のクラッシュ、つかみにくい Blueprint エラー、サーバー側の問題など、それらを追跡するのは「顔面をキーボードにぶつけたくなる」ほど大変です。

そのため、Sentry は Unreal のデスクトップ版 Crash Reporter Client(CRC)と直接統合しており、追加のセットアップなしでエラーを簡単にキャプチャ・診断できます。ユーザーの操作なしにクラッシュを自動で報告したい場合でも、Sentry の Unreal プラグインを使えば、それも可能です。

マルチプレイヤーのデバッグ機能も拡張し、サーバー側のクラッシュを追跡できるようにしました。また、パフォーマンス分析機能も追加され、プレイヤーが「ゲームがフリーズしたのか?」と感じる前に、レンダリングやアセット読み込みの遅延箇所を特定することができます。

これにより、以下のことが可能になります。

  • 追加のセットアップなしでクラッシュを検出
    Crash Reporter Client との統合により、Sentry は C++ クラッシュや Blueprint エラーを自動でキャプチャ。問題解決に必要なコンテクストが一箇所に揃い、迅速な対応が可能になります。より広範なクロスプラットフォーム対応(モバイルも含む)のためには、CRC に加えて Sentry の SDK を組み込むことを推奨します。
  • マルチプレイヤーゲームでのサーバー側クラッシュを追跡
    クライアントではなく専用サーバー上でクラッシュが発生した場合でも、Sentry がそれを表面化させ、実際のプレイ中にしか発生しない問題を特定できます。
  • カクつき、ポップイン、長い読み込み時間を削減
    パフォーマンス分析により、レンダリングやアセットストリーミングの遅延を特定。フレームレートを改善し、テクスチャの表示遅れや操作の鈍さを防止します。
 
 

これからは、マルチプレイヤー FPS で「爆発が多すぎるとクラッシュする」とプレイヤーが報告してきた場合でも、それがレプリケーションの問題なのか、レンダリングの遅延なのか、物理エンジンのクラッシュなのかを推測する必要はありません。組み込みの CRC からのクラッシュレポート、サーバー側の追跡、パフォーマンス分析によって、正確にどこで問題が発生しているのかを特定し、次の試合が台無しになる前に修正できます。

プロジェクトに Sentry SDK を組み込む方法は、ドキュメントをご覧ください。

 

 

Unity におけるマルチプレイヤーデバッグ対応の拡張

Unity は複数のプラットフォームへの展開を容易にしてくれますが、異なる環境でのデバッグは一筋縄ではいきません。たとえば、オンライン協力プレイがローカルテストでは問題なく動作していたのに、異なる地域のプレイヤーが接続するとクラッシュしたり、特定のゲーム内操作(例:アイテムを落とす)が原因でプレイヤーがサーバーからランダムに切断されたりすることがあります。こうした再現困難なケースに何時間も費やす代わりに、Sentry を使えば迅速に問題を検出・修正できます。

 

クラッシュやサーバー側の問題について、より深いインサイトを得ることができます。

  • ゲームがどこで壊れているのかを正確に把握
    C# スクリプト内の null 参照エラーでも、IL2CPP ビルドのネイティブクラッシュでも、Sentry はスタックトレース付きでエラーを表示し、迅速な診断をサポートします。
  • プレイヤーの体験をステップごとに再現
    クラッシュ直前のプレイヤーの行動、エンジンイベント、スクリーンショット、ネットワーク呼び出しを確認することで、リクエストの不正、同期ズレ、その他のゲーム内操作が原因かどうかを把握できます。
  • マルチプレイヤーゲームでのサーバー側クラッシュを追跡
    専用サーバーやクライアントホスト型マッチで発生するクラッシュをデバッグし、本番プレイでしか起こらない問題を修正できます。
  • すべての端末を手動でテストする手間を削減
    OS バージョン、ハードウェアモデル、GPU ごとにクラッシュを自動でグループ化。プレイヤーから「切断された」と報告があった際にも、どの構成が影響を受けているか、そしてその理由を即座に把握できます。

 

導入は簡単です。Package Manager を使って Sentry Unity SDK をインストールし、各デバイスでクラッシュ、例外、パフォーマンスの問題を自動でキャプチャできるよう設定を開始してください。

 

 Godot にエラートラッキングを導入

テスト中は完璧に動作していたあなたのローグライクゲームが、プレイヤーから「特定のエリアで謎のクラッシュが起きる」と報告され始めます。Godot のオープンソースならではの柔軟性は完全なコントロールを可能にしますが、本番環境で問題が発生した場合、ログやプレイヤーの報告を頼りに原因を突き止めるのは、開発スピードを(ダンジョンのように)極端に遅くしてしまうことがあります。

Sentry は Godot を直接サポートする初のアプリケーションモニタリングツールです。最新のアップデートにより、軽量で強力なデバッグ機能が追加され、エンジンクラッシュや実行時エラーをキャプチャできます。

  • GDScript エラーに対するクラッシュ・エラー報告機能により、何が壊れたのかを推測する必要がなくなります。
  • PC、Linux、macOS に対応したクロスプラットフォームサポートにより、プレイヤーの環境を問わずデバッグが可能です。モバイルとコンソールの対応も計画中です。

エラーの詳細など、必要なコンテキストを即座に得られるので、より迅速に問題を特定・修正でき、楽しい開発作業にすぐ戻ることができます。

導入を始めるには、ドキュメントをご覧いただくか、ご質問があれば Discord までどうぞ。

 

 

 デバッグはハードコアモードであるべきではない

ゲーム開発はそれだけでも十分に複雑で、ログを手動で何時間も検索したり、再現が困難なクラッシュを追いかけたりする余裕はありません。Sentry を使えば、Unreal、Unity、Godot、コンソールプラットフォーム全体にまたがるクラッシュを一元的に可視化でき、より迅速な問題解決と安定したゲームのリリースを実現します。

Unreal、Unity、Godot でゲームを開発している場合でも、PlayStation、Xbox、Nintendo Switch 向けにリリースを予定している場合でも、Sentry はあなたの助けになります。リリース前に導入することで、バグ修正に費やす時間を減らし、より多くの時間をゲーム制作に充てられます。

まだ Sentry アカウントをお持ちでない方もご安心ください。無料で試すことも、デモをリクエストして導入を始めることもできます。

あるいは Discord に参加して、今後の機能追加やサポート強化に向けた議論にご参加ください。

 

Original Page: PlayStation, Xbox, Switch, PC, or Mobile — wherever you’ve got bugs to crush, Sentry can help

 

 




IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。

 

シェアする

Recent Posts