defold-project-setup について
Defold プロジェクトを設定するスキルです。依存関係とエンジン組み込みファイルを `.deps/` にダウンロードし、モジュール参照の読み取り専用コンテキストとして用意します。新規プロジェクト向けの `game.project` 基本設定も示します。
主な機能
- 01game.project から依存 URL を読み取る
- 02宣言済み include ディレクトリを取得・展開
- 03Defold エンジン組み込みファイルを取得
- 04dry-run モードに対応
- 05game.project の基本設定を提示
活用シーン
- 01作業開始前に `.deps/` を準備
- 02依存関係の変更後に参照コンテキストを更新
- 03新規プロジェクトの基本設定を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ indiesoftby/ defold-agent-config --skill defold-project-setupインストール後、Claude Code で/defold-project-setupを入力して読み込まれたか確認します。
同梱ファイルscripts/fetch_deps.py
詳細
Defold プロジェクトのセットアップ
Defold ライブラリの依存関係とエンジンの組み込み機能をダウンロードして .deps/ ディレクトリに展開します。このディレクトリは、モジュール参照を解決するための読み取り専用コンテキストとして使用されます。また、新しいプロジェクトに推奨される game.project の設定も提供します。
実行するタイミング
- タスクを開始する前:
.deps/フォルダーが存在しない、または空の場合。 - 依存関係を編集した後:
game.projectの[project] dependencies#Nエントリーが追加、削除、または変更された場合。
実行方法
プロジェクトのルートからセットアップスクリプトを実行します。
Windows(PowerShell):
python .agents/skills/defold-project-setup/scripts/fetch_deps.py
Linux/macOS:
python3 .agents/skills/defold-project-setup/scripts/fetch_deps.py
何もダウンロードまたは展開せずに実行内容を表示するには、--dry-run を使用します。
処理内容
game.projectを読み込み、すべての[project] dependencies#NURL を解析します。- 各依存関係の zip ファイルを一時ディレクトリにダウンロードします。
- 各 zip ファイル内の
game.projectを調べ、[library] include_dirsを確認します。 - 宣言されている include ディレクトリのみを
.deps/に展開します。 - Defold エンジンの組み込み機能を、最新の安定版リリースから
.deps/builtins/にダウンロードします。
実行後
.deps/フォルダーは、読み取り専用の include ディレクトリとして使用できる状態になります。
推奨される game.project の設定
新しいプロジェクトを作成するとき、または game.project を確認するときは、以下の推奨される基本設定を適用してください。ほとんどの Defold ゲームで適切なデフォルト値です。
[html5]
[html5]
scale_mode = Stretch
heap_size = 64
cssfile = /builtins/manifests/web/dark_theme.css
retry_count = 1000
scale_mode = Stretch— HTML5 キャンバスがブラウザーウィンドウ全体に表示されます。heap_size = 64— ほとんどのゲームでは 64 MB で十分です。必要に応じてエンジンがメモリを追加で割り当てます。cssfile = /builtins/manifests/web/dark_theme.css— 白いテーマよりもダークテーマが適しています。retry_count = 1000— ネットワークの問題が発生した場合、エンジンはゲームファイルの読み込みを最大 1000 回再試行し、接続が遅い場合の失敗を防ぎます。
[engine]
[engine]
fixed_update_frequency = 60
max_time_step = 0.05
fixed_update_frequency = 60— 固定更新は 60 FPS で実行されます(Defold のデフォルトです)。max_time_step = 0.05— 20 FPS まで速度低下なしでゲームを実行できます。それを下回ると、大きな時間区間をスキップするのではなく、ゲームの速度が低下します。
[physics]
[physics]
gravity_y = -1000.0
scale = 0.01
velocity_threshold = 100.0
use_fixed_timestep = 1
max_fixed_timesteps = 0
gravity_y = -1000.0— この値はphysics.scaleと乗算されるため、物理エンジン内部では -10 m/s²(地球の重力)として扱われます。scale = 0.01— 2D ゲームでは通常0.01(1 ピクセル = 0.01 m)を使用します。3D ゲームでは1.0(1 単位 = 1 m)を使用します。velocity_threshold = 100.0— (2D 物理のみ)物理演算を安定させるには1.0 / physics.scaleにする必要があります。そのため、scale が0.01の場合は100.0です。use_fixed_timestep = 1— 物理演算を固定タイムステップモードで実行します。物理演算のステップ間でオブジェクトを補間するには、object_interpolation拡張機能を使用します。max_fixed_timesteps = 0— (3D 物理のみ)固定 dt を Defold エンジンから Bullet3D に直接渡し、Bullet3D の内部アキュムレーターを無効にします。
コメント
Markdown 対応