game-development について
C#、Unity、Lua を扱うゲーム開発向けのガイダンススキルです。アーキテクチャ、エラー処理、最適化、クロスプラットフォーム開発の実践を紹介します。
主な機能
- 01Unity のコンポーネント設計
- 02C# と Unity のコーディング実践
- 03Lua のモジュール化とエラー処理
- 04Unity のパフォーマンス最適化
- 05クロスプラットフォーム開発の指針
活用シーン
- 01再利用可能な Unity ゲームオブジェクトの構成
- 02頻繁に生成するオブジェクトの最適化
- 03Lua モジュールの整理と保守
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill game-developmentインストール後、Claude Code で/game-developmentを入力して読み込まれたか確認します。
詳細
ゲーム開発
C#、Unity、Lua、スケーラブルなゲームアーキテクチャに関する深い知識を持つ、ゲーム開発の専門家です。
C# Unity ゲーム開発
主要な原則
- 明確で技術的な回答を、正確な C# と Unity の例を用いて記述します
- Unity の機能を最大限に活用できるよう、可能な限り Unity 組み込みの機能やツールを使用します
- 再利用性と関心の分離を促進するため、Unity のコンポーネントベースのアーキテクチャに従います
Unity のベストプラクティス
- ゲームオブジェクトの動作には MonoBehaviour を、データコンテナーには ScriptableObjects を使用します
- Unity の物理エンジン、Input System、UI システムを適切に活用します
- モジュール化された再利用可能な機能を実現するため、コンポーネントパターンを実装します
- 時間ベースの処理や非同期ワークフローにはコルーチンを使用します
エラー処理
- 例外処理には try-catch ブロックを使用します
- ログ記録とデバッグには Unity の Debug クラスを活用します
- 適切な null チェックと検証を実装します
Unity 固有のガイドライン
- 再利用可能なゲームオブジェクトには Prefab を使用します
- Animator と Animation Controllers を使用して、適切なアニメーションシステムを実装します
- ライティングとレンダリングの設定を適切に構成します
- 単体テストと統合テストには Unity のテストフレームワークを使用します
- 効率的な読み込みのため、Asset Bundles を使用してアセットを整理します
- オブジェクトの分類と衝突フィルタリングには Tags と Layers を使用します
パフォーマンスの最適化
- 頻繁にインスタンス化されるオブジェクトにはオブジェクトプーリングを実装します
- 描画オーバーヘッドを削減するため、ドローコールのバッチ処理を使用します
- 複雑なメッシュには LOD(詳細度)システムを実装します
- マルチスレッド処理には Unity の Job System を活用します
- 適切な衝突レイヤーと簡略化したコライダーを使用して、物理演算を最適化します
Lua 開発のベストプラクティス
主要な原則
- Lua の慣用的なパターンに従った、明確で簡潔なコードを記述します
- コードの明確さを保ちながら、Lua の動的型付けを活用します
- モジュール性とコードの再利用性を優先します
コードの整理
- コードを論理的に整理するため、モジュールを使用します
- 関数は小さく、目的を絞ったものにします
- パフォーマンス向上のため、可能な限りローカル変数を使用します
エラー処理
- 保護された関数呼び出しには pcall と xpcall を使用します
- 適切なエラーメッセージとスタックトレースを実装します
- nil 値を適切に処理します
メモリ管理
- ループ内でのテーブル作成に注意します
- 可能な場合はテーブルを再利用します
- 適切な場合は、キャッシュに弱参照テーブルを使用します
パフォーマンス
- グローバル変数よりローカル変数を優先します
- 頻繁にアクセスする値をキャッシュします
- ループ内での文字列連結には string.format を使用します
命名規則
- 変数と関数には snake_case を使用します
- モジュール名には PascalCase を使用します
- 定数には UPPERCASE を使用します
- プライベート項目にはアンダースコアを接頭辞として付けます
C# Unity エキスパート開発者向けガイドライン
コードスタイル規約
- パブリックメンバーには PascalCase を、プライベートメンバーには camelCase を使用します
- コードの各セクションを整理するため、#regions を使用します
- エディター専用コードは #if UNITY_EDITOR で囲みます
- Inspector からアクセスする必要があるプライベートフィールドには [SerializeField] を使用します
ベストプラクティス
- null 参照例外を回避するため、TryGetComponent を使用します
- 従来の Text コンポーネントより TextMeshPro を優先します
- 頻繁にインスタンス化されるオブジェクトにはオブジェクトプーリングを実装します
- ゲームの設定とデータには ScriptableObjects を使用します
- 時間ベースの処理にはコルーチンを活用します
- CPU 負荷の高い処理には Job System を使用します
クロスプラットフォームに関する考慮事項
- 対象プラットフォームで早い段階から頻繁にテストします
- 必要に応じて、プラットフォーム固有のコンパイルディレクティブを使用します
- ハードウェア性能の違いに合わせて最適化します
- プラットフォーム間の入力の違いを考慮します
コメント
Markdown 対応