※本記事にはアフィリエイトリンクが含まれています。
スマホゲーム開発大手のサムザップが、内製Unityアプリケーション基盤「Spica」に含まれるデバッグツール「Spica.Debugger」の設計・実装を自社ブログで公開しました。ゲーム実行中に不具合調査やパラメータ確認を行うための「ランタイムデバッグツール」を、サードパーティ製ではなく自社開発した事例です。
同社はこれまでサードパーティ製ツール「SRDebugger」を使用していましたが、同社の開発開始当時は長期間更新が止まり新しいUnityで警告が出ていたことに加え、社内独自の要件に応じた拡張が難しいという課題を抱えていました。そこで内製に踏み切り誕生したのが「Spica.Debugger」です。詳細はこちらのゲームメーカーズの記事で紹介されています。
💡 UI Toolkit
Unity公式のUI構築フレームワーク。従来の「uGUI」とは独立して動作し、Webのスタイルシートに近い「USS」で見た目を管理できるのが特徴。
主な特徴・設計上の工夫は次の通りです。
- ゲーム本体のUI(uGUI)から独立して動作する「UI Toolkit」ベースで構築
- CSSに近い記法の「USS」でスタイルを一元管理できる
- ListViewの仮想化で、数千件のログを扱う際も表示に必要な要素数を抑える設計
- 「Trigger」と「Report Sender」は専用のScriptableObject派生クラスで拡張し、設定に登録できる。「DebugPage」はVisualElement派生のDebugPageBaseを継承して追加できる
- 例として「端末を振るとデバッガが起動する」独自Triggerの実装例も紹介
💡 USS(Unity Style Sheets)
UI ToolkitでUIのフォントや色などの見た目を定義するスタイルシート言語。Web開発のCSSに近い書き方ができる。
このニュースから考えられることをまとめます。
✅ メリット
- サードパーティツールに依存せず、自社の運用に合わせた拡張が可能になる
- UI Toolkitの実践的な活用事例として、自作ツール開発の参考になる
⚠️ 課題
- 内製ツールの開発・保守には相応の開発リソースが必要
学ぶならこの講座
※本リンクはアフィリエイトリンクです。
まとめ
- サムザップが内製UnityデバッグツールSpica.Debuggerの設計をブログで公開
- UI Toolkit・USSベースで拡張性の高い設計を実現
- ScriptableObjectやDebugPageBaseによる拡張ポイント設計は自作ツール開発の参考になる
ソース: ゲームメーカーズ
