game-developer
UnityやUnreal Engineなどのゲームエンジンを駆使し、没入感のあるインタラクティブエンターテイメントを開発するSkill。
📜 元の英語説明(参考)
Expert in interactive entertainment, creating immersive experiences with Unity, Unreal Engine, and Godot.
🇯🇵 日本人クリエイター向け解説
UnityやUnreal Engineなどのゲームエンジンを駆使し、没入感のあるインタラクティブエンターテイメントを開発するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o game-developer.zip https://jpskill.com/download/6669.zip && unzip -o game-developer.zip && rm game-developer.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6669.zip -OutFile "$d\game-developer.zip"; Expand-Archive "$d\game-developer.zip" -DestinationPath $d -Force; ri "$d\game-developer.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
game-developer.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
game-developerフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
ゲーム開発者
目的
Unity (C#) と Unreal Engine (C++) を専門とする、インタラクティブなエンターテイメント開発の専門知識を提供します。没入型ゲーム体験のために、ゲームプレイプログラミング、グラフィック最適化、マルチプレイヤーネットワーキング、エンジンアーキテクチャを備えた2D/3Dゲームを構築します。
使用場面
- ゲームメカニクスのプロトタイプ作成(キャラクターコントローラー、戦闘システム)
- グラフィックパフォーマンスの最適化(シェーダー、LOD、オクルージョンカリング)
- マルチプレイヤーネットワーキングの実装(Netcode for GameObjects、Mirror、Unreal Replication)
- レベルアーキテクチャとストリーミングシステムの設計
- VR/AR体験の開発(OpenXR、ARKit)
- カスタムエディターツールとパイプラインの作成
2. 意思決定フレームワーク
エンジン選択
どのエンジンがプロジェクトに適合しますか?
│
├─ **Unity**
│ ├─ モバイル/2D/VRですか? → **はい** (最高のエコシステム、ビルドサイズが小さい)
│ ├─ チームはC#を知っていますか? → **はい**
│ └─ スタイライズされたグラフィックですか? → **はい** (URPは柔軟です)
│
├─ **Unreal Engine 5**
│ ├─ フォトリアリズムですか? → **はい** (Nanite + Lumenがすぐに利用可能)
│ ├─ オープンワールドですか? → **はい** (World Partitionシステム)
│ └─ チームはC++を知っていますか? → **はい** (またはBlueprintsビジュアルスクリプティング)
│
└─ **Godot**
├─ オープンソースの要件がありますか? → **はい** (MITライセンス)
├─ 軽量な2Dですか? → **はい** (専用の2Dエンジン)
└─ Linuxネイティブ開発ですか? → **はい** (優れたLinuxサポート)
マルチプレイヤーアーキテクチャ
| モデル | 説明 | 最適な用途 |
|---|---|---|
| クライアントホスト型 (P2P) | 1人のプレイヤーがホストです。 | 協力ゲーム、格闘ゲーム(ロールバックあり)。安価です。 |
| 専用サーバー | クラウド内の権威あるサーバーです。 | 競技シューター、MMO。チートを防止します。 |
| リレーサーバー | リレーサービス(例:Unity Relay)。 | NATの問題を回避するセッションベースのゲーム。 |
グラフィックパイプライン (Unity)
| パイプライン | ターゲット | 利点 |
|---|---|---|
| URP (Universal) | モバイル、VR、Switch、PC | 高性能、カスタマイズ可能、豊富なアセットストアサポート。 |
| HDRP (High Def) | PC、PS5、Xbox Series X | フォトリアリズム、ボリューメトリックライティング、コンピュートシェーダー。 |
| Built-in | レガシー | 新規プロジェクトでは避けてください。 |
危険信号 → graphics-engineer (スペシャリスト) にエスカレートしてください:
- ゼロからのカスタムレンダリングバックエンド(Vulkan/DirectX/Metal)の記述
- ドライバーレベルのGPUクラッシュのデバッグ
- 新しいGI (Global Illumination) アルゴリズムの実装
ワークフロー 2: Unreal Engine マルチプレイヤー設定
目標: サーバーからクライアントへ変数 (Health) をレプリケートする。
手順:
-
ヘッダー (
Character.h)UPROPERTY(ReplicatedUsing=OnRep_Health) float Health; UFUNCTION() void OnRep_Health(); void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override; -
実装 (
Character.cpp)void AMyCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(AMyCharacter, Health); } void AMyCharacter::TakeDamage(float DamageAmount) { if (HasAuthority()) { Health -= DamageAmount; // OnRep_Health() called automatically on clients // Must call manually on Server if needed OnRep_Health(); } } -
ブループリント統合
- UIプログレスバーを
Health変数にバインドします。 - "Play as Client" (NetMode) でテストします。
- UIプログレスバーを
ワークフロー 4: VFX Graph & Shader Graph (視覚効果)
目標: 魔法の呪文のためのGPUアクセラレーションされたパーティクルシステムを作成する。
手順:
-
Shader Graph (見た目)
Unlit Shader Graphを作成します。TimeでスクロールするVoronoi Noiseノードを追加します。Colorプロパティ (HDR) で乗算します。Base ColorとAlphaに接続します。- Surface Type を
Transparent/Additiveに設定します。
-
VFX Graph (動き)
Visual Effect Graphアセットを作成します。- Spawn Context: Constant Rate (1000/秒)。
- Initialize: Lifetime (0.5秒 - 1秒) を設定し、Velocity (Random Direction) を設定します。
- Update: 風をシミュレートするために
Turbulence(Noise Field) を追加します。 - Output: 上記で作成したShader Graphを使用するように
Quad Outputを設定します。
-
最適化
- パーティクルがゲームプレイロジック(例:ダメージ)をトリガーする必要がある場合は
GPU Eventsを使用します。 - カリングの問題を避けるために
Boundsを正しく設定します。
- パーティクルがゲームプレイロジック(例:ダメージ)をトリガーする必要がある場合は
5. アンチパターンと注意点
❌ アンチパターン 1: Update() 内の重いロジック
どのようなものか:
- 毎フレーム
FindObjectOfType、GetComponent、または重い計算を実行する。
なぜ失敗するのか:
- CPUパフォーマンスを低下させます。
- モバイルのバッテリーを消耗させます。
正しいアプローチ:
Start()またはAwake()で参照をキャッシュします。- 毎フレーム実行する必要のないロジック(例:AIのパスファインディング更新を0.5秒ごとに行う)には、コルーチンまたは
InvokeRepeatingを使用します。
❌ アンチパターン 2: クライアントを信頼する
どのようなものか:
- クライアントがサーバーに「プレイヤーXを撃った」と送信する。
- サーバーがすぐにダメージを適用する。
なぜ失敗するのか:
- チーターが偽のパケットを送信できます。
正しいアプローチ:
- 権威あるサーバー: クライアントは「発砲した」と送信します。サーバーがヒットを計算します。サーバーがクライアントに「ヒットした」と伝えます。
- ローカルプレイヤーの遅延を隠すために予測/調整を使用します。
❌ アンチパターン 3: ゴッドクラス
どのようなものか:
PlayerController.csが移動、戦闘、インベントリ、UI、オーディオを処理する2000行のコードを持っている。
なぜ失敗するのか:
- スパゲッティコードになります。
- デバッグが困難です。
正しいアプローチ:
- コンポジション:
PlayerMovement、PlayerCombat、PlayerInventory。 - 責任を分割するためにコンポーネントを使用します。
7. 品質チェックリスト
パフォーマンス:
- [ ] フレームレート: ターゲットハードウェアで安定した60fps。
- [ ] GC Alloc: メインゲームプレイループで毎フレーム0バイト割り当て。
- [ ] ドローコール: 適切にバッチ処理されている(フレームデバッガーで確認)。
- [ ] ロード時間: シーン/アセットに非同期ロードを使用。
コードアーキテクチャ:
- [ ] 疎結合: システムはハードな依存関係ではなく、イベント/インターフェースを介して通信します。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Game Developer
Purpose
Provides interactive entertainment development expertise specializing in Unity (C#) and Unreal Engine (C++). Builds 2D/3D games with gameplay programming, graphics optimization, multiplayer networking, and engine architecture for immersive gaming experiences.
When to Use
- Prototyping game mechanics (Character controllers, combat systems)
- Optimizing graphics performance (Shaders, LODs, Occlusion Culling)
- Implementing multiplayer networking (Netcode for GameObjects, Mirror, Unreal Replication)
- Designing level architecture and streaming systems
- Developing VR/AR experiences (OpenXR, ARKit)
- Creating custom editor tools and pipelines
2. Decision Framework
Engine Selection
Which engine fits the project?
│
├─ **Unity**
│ ├─ Mobile/2D/VR? → **Yes** (Best ecosystem, smaller build size)
│ ├─ Team knows C#? → **Yes**
│ └─ Stylized graphics? → **Yes** (URP is flexible)
│
├─ **Unreal Engine 5**
│ ├─ Photorealism? → **Yes** (Nanite + Lumen out of box)
│ ├─ Open World? → **Yes** (World Partition system)
│ └─ Team knows C++? → **Yes** (Or Blueprints visual scripting)
│
└─ **Godot**
├─ Open Source requirement? → **Yes** (MIT License)
├─ Lightweight 2D? → **Yes** (Dedicated 2D engine)
└─ Linux native dev? → **Yes** (Excellent Linux support)
Multiplayer Architecture
| Model | Description | Best For |
|---|---|---|
| Client-Hosted (P2P) | One player is host. | Co-op games, Fighting games (with rollback). Cheap. |
| Dedicated Server | Authoritative server in cloud. | Competitive Shooters, MMOs. Prevents cheating. |
| Relay Server | Relay service (e.g., Unity Relay). | Session-based games avoiding NAT issues. |
Graphics Pipeline (Unity)
| Pipeline | Target | Pros |
|---|---|---|
| URP (Universal) | Mobile, VR, Switch, PC | High perf, customizable, large asset store support. |
| HDRP (High Def) | PC, PS5, Xbox Series X | Photorealism, Volumetric lighting, Compute shaders. |
| Built-in | Legacy | Avoid for new projects. |
Red Flags → Escalate to graphics-engineer (Specialist):
- Writing custom rendering backends (Vulkan/DirectX/Metal) from scratch
- Debugging driver-level GPU crashes
- Implementing novel GI (Global Illumination) algorithms
Workflow 2: Unreal Engine Multiplayer Setup
Goal: Replicate a variable (Health) from Server to Clients.
Steps:
-
Header (
Character.h)UPROPERTY(ReplicatedUsing=OnRep_Health) float Health; UFUNCTION() void OnRep_Health(); void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override; -
Implementation (
Character.cpp)void AMyCharacter::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME(AMyCharacter, Health); } void AMyCharacter::TakeDamage(float DamageAmount) { if (HasAuthority()) { Health -= DamageAmount; // OnRep_Health() called automatically on clients // Must call manually on Server if needed OnRep_Health(); } } -
Blueprint Integration
- Bind UI Progress Bar to
Healthvariable. - Test with "Play as Client" (NetMode).
- Bind UI Progress Bar to
Workflow 4: VFX Graph & Shader Graph (Visual Effects)
Goal: Create a GPU-accelerated particle system for a magic spell.
Steps:
-
Shader Graph (The Look)
- Create
Unlit Shader Graph. - Add
Voronoi Noisenode scrolling withTime. - Multiply with
Colorproperty (HDR). - Connect to
Base ColorandAlpha. - Set Surface Type to
Transparent/Additive.
- Create
-
VFX Graph (The Motion)
- Create
Visual Effect Graphasset. - Spawn Context: Constant Rate (1000/sec).
- Initialize: Set Lifetime (0.5s - 1s), Set Velocity (Random Direction).
- Update: Add
Turbulence(Noise Field) to simulate wind. - Output: Set
Quad Outputto use the Shader Graph created above.
- Create
-
Optimization
- Use
GPU Eventsif particles need to trigger gameplay logic (e.g., damage). - Set
Boundscorrectly to avoid culling issues.
- Use
5. Anti-Patterns & Gotchas
❌ Anti-Pattern 1: Heavy Logic in Update()
What it looks like:
- Performing
FindObjectOfType,GetComponent, or heavy math every frame.
Why it fails:
- Kills CPU performance.
- Drains battery on mobile.
Correct approach:
- Cache references in
Start()orAwake(). - Use Coroutines or InvokeRepeating for logic that doesn't need to run every frame (e.g., AI pathfinding updates every 0.5s).
❌ Anti-Pattern 2: Trusting the Client
What it looks like:
- Client sends "I shot player X" to server.
- Server applies damage immediately.
Why it fails:
- Cheaters can send fake packets.
Correct approach:
- Authoritative Server: Client sends "I fired". Server calculates hit. Server tells Client "You hit".
- Use prediction/reconciliation to mask latency for the local player.
❌ Anti-Pattern 3: God Classes
What it looks like:
PlayerController.cshas 2000 lines handling Movement, Combat, Inventory, UI, and Audio.
Why it fails:
- Spaghetti code.
- Hard to debug.
Correct approach:
- Composition:
PlayerMovement,PlayerCombat,PlayerInventory. - Use components to split responsibility.
7. Quality Checklist
Performance:
- [ ] Frame Rate: Stable 60fps on target hardware.
- [ ] GC Alloc: 0 bytes allocated per frame in main gameplay loop.
- [ ] Draw Calls: Batched appropriately (check Frame Debugger).
- [ ] Load Times: Async loading used for scenes/assets.
Code Architecture:
- [ ] Decoupled: Systems communicate via Events/Interfaces, not hard dependencies.
- [ ] Clean: No "God Classes" > 500 lines.
- [ ] Version Control: Large binaries (textures, audio) handled via Git LFS.
UX/Polish:
- [ ] Controls: Input remapping supported.
- [ ] UI: Scales correctly for different aspect ratios (16:9, 21:9, Mobile Notches).
- [ ] Feedback: Audio/Visual cues for all player actions (Juice).
Examples
Example 1: 2D Platformer Game Development
Scenario: Building a commercial 2D platformer with physics-based gameplay.
Implementation:
- Physics: Custom physics engine for responsive platforming
- Animation: Sprite-based animation with state machines
- Level Design: Tilemap-based levels with procedural elements
- Audio: Spatial audio system with adaptive music
Technical Approach:
# Character controller pattern
class PlayerCharacter:
def update(self, dt):
input = self.input_system.get_player_input()
velocity = self.physics.apply_gravity(velocity, dt)
velocity = self.handle_movement(input, velocity)
displacement = self.physics.integrate(velocity, dt)
self.handle_collisions(displacement)
self.animation.update_state(velocity, input)
Example 2: VR Experience Development
Scenario: Creating an immersive VR experience for Oculus/Meta Quest.
VR Implementation:
- Locomotion: Teleportation and smooth movement options
- Interaction: Hand tracking with gesture recognition
- Optimization: Single-pass stereo rendering
- Comfort: Comfort mode options for sensitive users
Key Considerations:
- 72Hz minimum frame rate for comfort
- Motion sickness avoidance in design
- Hand physics for realistic interaction
- Battery optimization for standalone headsets
Example 3: Multiplayer Battle Royale
Scenario: Developing a competitive multiplayer game with 100 players.
Multiplayer Architecture:
- Networking: Client-side prediction with server reconciliation
- Lag Compensation: Interpolation and extrapolation techniques
- Anti-Cheat: Server-side validation, cheat detection
- Matchmaking: Skill-based matchmaking with queue optimization
Best Practices
Game Development
- Core Loop First: Prototype and refine the core gameplay loop
- Modular Architecture: Decouple systems for maintainability
- Performance Budgeting: Define and monitor performance targets
- Data-Driven Design: Use configuration files for game balance
- Version Control: Handle large binary assets appropriately
Physics and Movement
- Determinism: Ensure consistent physics across networked games
- Collision Detection: Optimize for minimal false positives
- Character Controllers: Separate physics from character logic
- Ragdoll Physics: Use for death animations and interaction
- Performance: Profile physics update time, optimize as needed
Graphics and Rendering
- Batching: Group draw calls for GPU efficiency
- Level of Detail: Implement LOD for models and textures
- Shaders: Optimize shader complexity, use shared materials
- Lighting: Balance quality and performance, use baked lighting
- Post-Processing: Apply selectively, profile GPU impact
Audio Implementation
- Spatial Audio: 3D positioning for immersion
- Adaptive Music: Dynamic soundtrack based on gameplay
- Performance: Stream large audio files, pool sound effects
- Compression: Use appropriate audio compression formats
- Accessibility: Provide audio cues as alternatives to visual feedback
Testing and Quality
- Playtesting: Regular playtesting sessions for feedback
- Performance Profiling: Monitor frame rate, memory, load times
- Platform Testing: Test on target hardware, not just dev machines
- Accessibility: Implement accessibility features from start
- Localization: Plan for international markets early