【Godot .NET サポート】一般提供開始

Article by: (読了時間:2分)

 

 

先日、Sentry の Godot Engine SDK のバージョン 2.0.0 をリリースし、C#/.NET サポートとアプリケーションメトリクスを一般提供(GA)しました。これにより、マネージド C# コードからエラーを捉え、開発ビルドと製品版ビルドの両方でカスタムメトリクスを追跡できるようになりました。

 

C#/.NET サポート

Godot は非常に性格の異なる2つのスクリプティングの世界、GDScript と C# をサポートしています。1.x のリリースでは、GDScript、エンジン本体、ネイティブの C/C++ コードから Issue を捉えられるよう SDK をインストルメントし、公式にサポートされるすべてのプラットフォームへとサポートを広げてきました。2.0.0 のリリースでは、Godot Engine 上での .NET 向けの第一級のエラーレポートを導入します。

マネージドコードからのエラーは、GDScript やエンジンの Issue と同じトレース上に並んで表示されるようになり、タグ・breadcrumbs・ユーザーコンテキストといった scope の要素も、現時点で同期されている範囲で付与されます。

では、これが実際にどう動くのかを見てみましょう。以下は私たちの Godot ゲームで実行時に例外を投げる C# コードの短縮版です。

 

private List<UpgradePathBase>? TryFetchUpgradesFromServer()
{
var fetchTransaction = SentrySdk.StartTransaction(“fetch_upgrades”, “http.client”);
return ParseUpgradeData(FetchUpgradeDataFromServer(fetchTransaction), fetchTransaction);
}

private List<UpgradePathBase>? ParseUpgradeData(string responseContent, ITransactionTracer transaction)
{
// …

// Parsing the server response throws JsonException
var serverResponse = JsonSerializer.Deserialize<ServerUpgradeResponse>(responseContent);
var upgradePaths = new List<UpgradePathBase>(serverResponse!.upgrades.Length);

// …
}

 

SDK は実行時にそのエラーをキャプチャし、envelope を Sentry プロジェクトに送信します。Sentry ではこの Issue は次のように表示されます。

 
Sentry は GitHub をはじめとする主要な SCM 向けのインテグレーションを備え、各フレーム周辺のソースコードコンテキストをリポジトリから直接取得できます。
 
 

Metrics

さまざまなハードウェア構成におけるパフォーマンスをより深く把握するには、Sentryへメトリクスを送信します。メトリクスは時系列で追跡できるほか、カスタム属性を使って分析できます。この例では、エンジンのデルタタイムではなく、フレーム間の実際の経過時間を計測しています。デルタタイムは通常、クランプや平滑化が行われるためです。さらに、CPUとGPUの情報を属性として付与することで、ハードウェア構成ごとの比較や分析が容易になります。ゲームのレベルなど、メトリクスが記録された時点の属性を追加すれば、データをさらに絞り込むこともできます。
 
この例では、p95のフレームタイムを確認することで、ゲームが安定して滑らかに動作しにくいハードウェア構成を特定しています。これにより、ハードウェア固有のパフォーマンス問題だけでなく、レベル固有のボトルネックも見つけやすくなり、最も効果の大きい箇所に最適化の労力を集中できます。
 
 

もう1つの例として、ローグライト/サバイバー系ゲームで、1回のラン(プレイ)にどれくらい時間がかかるのか、またプレイヤーが平均してどの経験レベルまで到達するのかを見てみましょう。game.run.time は1回のランを完了するまでの所要時間を記録し、game.run.xp_level はそのランで到達した経験レベルを記録します。

この例が示しているのは、メトリクスはパフォーマンスの計測だけでなく、ゲームプレイそのものの分析にも活用できるということです。こうしたデータを活用すれば、ゲームプレイを左右するさまざまな要素のバランス調整や、より良いプレイヤー体験の実現に役立てられます。

 

 

試してみる

ぜひお試しください。SDKの改善を進めるにあたり、みなさんからのフィードバックをお待ちしています。始めるには、Godot Asset Store または GitHub から Sentry をダウンロードしてください。アーカイブをプロジェクトに展開し、プロジェクト設定から [Sentry] → [Options] で DSN を設定すれば、完全なコンテキスト付きでエラーを受け取れるようになります。詳しくは、C#/.NET向けのガイドをご覧ください。それでは、よいデバッグを!

 

 

Original Page: .NET support for Godot is now generally available

 

 




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

 

シェアする

Recent Posts

;