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

【Sentry Godot SDK】Logs・User Feedback など新機能追加

Article by: Serhii Snitsaruk

 
 
 

 

 

クラッシュとエラー

Sentry はエラーやクラッシュのレポートを収集し、それらを「Issue」としてダッシュボード上に自動でグルーピングします。これにより、どの問題から優先的に修正すべきかを判断しやすくなります。

Godot Engine のランタイムエラーやスクリプトエラーを自動で捕捉し、詳細なスタックトレースを表示します。必要に応じてローカル変数やメンバー変数の情報、さらに可能な場合はその前後のスクリプトソースコード行まで確認することができます。

Screenshot of a Sentry issue showing a Godot stack trace with an error: animation ‘Dance’ not found.

C++ レイヤーで発生したクラッシュについては、Sentry が minidump を収集・送信できます。これにより、ゲームがいつ、Godot のソースコードのどこでクラッシュしたのかを把握できます。この情報をもとにクラッシュの原因を理解したり、スタックトレース(または minidump ファイル)を Godot の開発者と共有したり、自分たちで問題を修正したりすることが可能になります。

Screenshot of a Sentry issue showing a Godot crash with an EXC_BAD_ACCESS stack trace caused by dereferencing a null pointer.

 

デバッグにもっとコンテキストを

世の中には、ほぼ無限と言っていいほど多様なハードウェア構成があります。そのせいで、「一部のプレイヤーだけが遭遇していて、自分の環境では再現できないバグ」の原因を突き止めるのは、とても骨の折れる作業です。

Sentry は、プレイヤーが使用しているハードウェアやソフトウェアに関する詳細なコンテキストを提供することで、この問題を助けてくれます。各 Issue には、そのイベントが発生したときの環境情報が含まれているため、「どんな構成で問題が起きたのか」を正確に確認できます。

それだけではありません。SDK はランタイムログやエンジンの統計情報、シーンツリーのスナップショット、さらには Issue が発生する直前のゲーム内スクリーンショットまで送信することができます。

Screenshot of Sentry showing a Godot crash stack trace alongside structured logs detailing an error when the player leaves the playable area.
 

User Feedback

User Feedback にも対応しました。これにより、プレイヤーは発生したエラーの詳細だけでなく、ゲーム体験全般についてのフィードバックも直接送れるようになります。スタックトレースなどの技術情報に加えて「実際のプレイヤーの声」を並べて確認できるので、どの修正を優先すべきか判断しやすくなり、プレイヤー体験をコードの外側からも理解する助けになります。

addons/sentry/user_feedback フォルダには、すぐに使える User Feedback 用の UI が同梱されています。そのまま使うことも、プロジェクトのスタイルに合わせてカスタマイズすることも可能です。実際に動かすと、ちょうど次のような見た目になります。

In-game feedback form open over a platformer scene, with fields for message, name, and email, and a character celebrating on a platform.
Screenshot of Sentry’s User Feedback panel showing a player’s report with an attached game screenshot and related device and context data.
Screenshot of Godot GDScript code creating a SentryFeedback object, setting its message, contact_email, and name properties, and then sending it using SentrySDK.capture_feedback(feedback).
 

テスト周りの改善

一般提供に向けて SDK を仕上げていく中で、テストのこともきちんと押さえました。

この領域での一番の成果は、イベント JSON コンテンツの厳密なバリデーションを追加したことです。これにより、プラットフォーム間の小さな不整合を解消できただけでなく、いくつものバグを事前に発見することができました。

これを可能にするために、私たちは 高度な JSON コンテンツテストのための fluent API を提供する GDScript モジュールを開発しました。多くのユーザーが SDK の API とやり取りするのは GDScript 経由であるため、GDScript からテストを書き始められることはとても重要です。

このアプローチにより、「リリース前に潜在的なリグレッションをきちんと検知できるだけの土台がある」という確信を持ってリリースプロセスに臨めるようになりました。

Screenshot of test code using assert_json(json) to validate a JSON structure. The chain checks the /message field, asserts it is an object, not empty, and that it contains a "formatted" key with the value "Nobody expects the Spanish Inquisition!", then calls .verify().

この表現力の高い構文により、JSON 構造に対して「何を期待するか」を正確に定義しつつ、テストコード自体は読みやすく簡潔に保つことができます。
テストの出力も分かりやすく、どの呼び出しチェーンのステップで失敗したのかに加え、関連する JSON の一部もあわせて表示してくれるため、原因の特定がしやすくなっています。

 

 

メジャーバージョンでの変更点

メジャーリリースは、これまでを振り返りつつ改善する良い機会でもあります。

今回の最大の変更点は、SDK の初期化プロセスを再設計したことです。以前は、ライフサイクルが少し分かりづらい設定用スクリプトに依存していましたが、今後はゲーム側の都合に合わせて、好きなタイミングで手動で SDK を初期化・設定できるようになりました。これにより、プロジェクト構成やゲームのフローに合わせた、より柔軟な組み込みが可能になります。

Screenshot of Godot GDScript code defining a ProjectMainLoop class that extends SceneTree. In the _initialize() function, SentrySDK.init is called with an options callback that sets options.release to "mygame@1.0.0".

SDK を手動で初期化できるようになった今、推奨はとてもシンプルです。できるだけ早いタイミングで初期化してください。最適なのは、プロジェクトのメインループ用スクリプト内です。

あわせて、「もう SDK が不要になったタイミングで、クリーンに接続を閉じるためのメソッド」も追加しました。これにより、SDK のライフサイクル全体がより分かりやすく、扱いやすく整えられています。

 

 

対応プラットフォームと始め方

Sentry Godot SDK は、現時点で Windows / Linux / macOS / iOS / Android をサポートしています。今後の予定としては、Web と C# エクスポートの対応, および W4 コンソール系フォークのサポート を追加する計画です。

PlayStationSwitch 向けのクラッシュレポートについては、すでに Sentry がサポートしており、Godot 用 SDK は不要です。

始め方としては、まず GitHub から SDK をダウンロードし、Docsを参照しながらセットアップしてください。質問やフィードバックがあれば、GitHub の Discussions からお送りいただけます。

まだ Sentry を使ったことがない場合は、インタラクティブに試せる Sentry Sandbox を触ってみる、またはまずは無料サインアップしていただくのがおすすめです。

 

 

Original Page: Introducing Logs, User Feedback, and more in the Sentry Godot SDK

 

 


 


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

 

シェアする

Recent Posts