Defold 1.13へ上げる前に見る5点。小規模開発向けの移行判断と回帰テスト
安定版1.13.0の新機能と破壊的変更を分け、3D、Android、Box2D、Web、Live Updateの依存状況から、移行時期と回帰テスト範囲を決める。
Defold 1.13へ上げるかは、新機能の数ではなく、作品が依存する箇所を五つに分けると決めやすい。見るのは3D資産、Android描画、2D物理、Web/Live Update、エディター自動化だ。新規企画や試作なら安定版1.13.0を基準にしやすい一方、制作終盤の作品は、必要な改善が破壊的変更の確認コストを上回る場合に移行ブランチで試すのが現実的である。
Defold公式GitHubでは、2026年7月18日時点で1.13.0がstableかつLatestと表示されている。一方、1.13.1は公式フォーラムでbetaとして別に公開されている。既存作品の移行判断で「1.13系」という呼び方だけを使うと、安定版とプレリリース版が混ざる。まずEditorとBob、CIで使う版を1.13.0 stableへ固定してから差分を見る。
先に結論:2D/3Dを問わず、1.13.0は無条件更新ではない。3DではCollada廃止とモデル座標、AndroidではVulkan、カスタム描画では頂点の巻き順、WebとLive Updateでは削除機能が移行コストを作る。該当しない新規プロジェクトは採用しやすく、該当する既存プロジェクトは作業コピーで出荷経路まで通してから切り替える。
五つの入口で、得るものと壊れ得る場所を分ける
公式の1.13.0紹介には、Morph Targets、Box2D API、AndroidのVulkan既定化、/evalなどが並ぶ。しかし、アップグレード判断では、同じページが案内する完全版リリースノートの破壊的変更を同じ重さで読む必要がある。
| 依存箇所 | 1.13.0で得られるもの | 先に疑う回帰 |
|---|---|---|
| 3D/glTF | Morph Targetsの読み込み、アニメーション、Luaからのweight制御 | Collada廃止、glTF再中心化の廃止、モデル座標とカリング、既存マテリアル |
| Android | Vulkanを優先し、利用不可ならOpenGLへ戻る既定構成 | シェーダー、Render Target、端末別表示、起動、発熱とフレーム時間 |
| 2D物理 | ネイティブBox2D body/shape/jointへ触れるb2d API |
V2とV3のAPI差、周波数/減衰、motorとlimit、再現性のずれ |
| Web/Live Update | wasm-webと現在のmount方式へ工程を整理できる | js-web指定、旧Live Update形式、自動mount前提、CIコマンド |
| Editor連携 | 認証付き/evalからEditor LuaとEditor APIを操作できる |
tokenの扱い、意図しないファイル変更、Editor起動を前提にした自動化 |
Morph Targetsは「読み込める」だけでは制作工程にならない
1.13.0はglTFのmorph/blend target dataをmodel componentで扱える。公式Model Animationマニュアルによれば、glTF内のweight animationはmodel.play_anim()で再生でき、model.get_blend_weights()とmodel.set_blend_weights()でLuaから上書きできる。ただし、一つのmodel componentが同時に再生できるmodel animationは一つで、別々のskeletal animationとmorph animationを同時再生する構成にはならない。skeletal playbackへスクリプトのweight上書きを組み合わせる方法はある。
描画側にも条件がある。モデル用vertex shaderは、生成されるmorph_targetsの2D array textureを読み、morph_targets_weightsを使って頂点へ差分を適用する必要がある。さらに現行マニュアルでは、Editor上のmodel animation previewで生成textureを使えず、例のtextureSize()はOpenGL ES 2.0で動かないとされている。つまり、BlenderからglTFを書き出してEditorで形が見えたことだけでは採用判定を終えられない。対象端末の実行ビルドで、表情、法線、接線、最大weight数、skeletal animationとの組み合わせを確認する。
3D既存作品の注意:1.13.0では.daeが廃止され、glTF/GLB import時の自動re-centeringも取り除かれた。Morph Targetsを使わない作品でも、古いCollada資産、複雑な親子transform、skinned mesh、独自のface cullingがあれば3D場面を比較対象に入れる。
AndroidとBox2Dは「どのbackendで動いたか」を記録する
AndroidではVulkanが優先backendになった。App Manifestマニュアルで選べるのはOpenGL+Vulkan、OpenGLのみ、Vulkanのみで、既定の組み合わせはVulkanを先に使い、利用できなければOpenGL ESへfallbackする。fallbackがあるから比較不要なのではない。同じAPKでも端末によって実際のbackendが変わり得るため、起動ログやgraphics.get_adapter_info()で使用backendを記録し、主要sceneのスクリーンショットとframe timeを紐付ける。
Box2Dでは、既存の高水準なphysics.create_joint()に加え、1.13.0のリリースノートがネイティブhandleを扱うb2d.joint APIの拡張を示している。stable API referenceにはdistance、mouse、prismatic、revolute、weld、wheelなどが載るが、V2にはrope/pulley/gear、V3にはmotor/filterがあるなど対応集合は同一ではない。App Manifestでもlegacy V2が既定、V3はopt-inで、V3はsimulation resultが異なり得ると明記されている。APIが増えたことと、V2からV3へ同じ手触りのまま移れることは分けて考える。
/evalはゲーム実行APIではなく、強いEditor操作口
1.13.0のEditor serverには、Editor Lua runtimeでコードを評価する/evalが追加された。リリースノートの例では、.internal/editor.portのlocalhostへ接続し、.internal/editor.tokenをBearer tokenとして渡す。editor.execute()による外部command実行、resourceの読み書き、Editor操作まで届くため、最初から生成や一括変更へ使わず、選択resourceの列挙やbuild前reportのような読み取り中心の処理から始める。
Editorマニュアルが示すOpenAPIは、起動中Editorのローカルserverを調べる入口である。/evalは出荷したゲームへLuaを送る仕組みではなく、Editor processとproject内の.internal情報へ到達できるローカルclient向けだ。tokenをログ、チャット、リポジトリ、共有CI出力へ貼らず、変更処理では実行前後のGit差分を検査する。
移行ブランチで回す回帰テスト
- 版を固定する。Editor、Bob、CIを1.13.0 stableへ揃え、1.13.1 betaを同じ結果として扱わない。
- 削除対象を検索する。
.dae、js-web、liveupdate.mount_on_start、旧Live Update形式、model.play()やphysics.ray_cast()などリリースノート記載のdeprecated APIをプロジェクトとbuild scriptから探す。 - 基準ビルドを保存する。現行版の主要scene、物理挙動、描画結果、load時間、frame time、保存データ読込を記録し、同じ入力と端末で比較する。
- 描画経路を分ける。AndroidはVulkan優先版とOpenGL固定版を用意する。カスタムrender scriptではsprite、GUI、tilegrid、particleのCCW統一とface cullingを確認する。
- 3Dはruntimeで見る。glTF/GLBの位置、向き、bounds、skinning、morphのweight、法線、接線を出荷先で確認し、Editor previewだけを合格条件にしない。
- 物理backendを混ぜない。V2とV3のどちらをbundleしたかを記録し、anchor、joint limit、motor、reaction force、spring設定を同じtest sceneで比較する。
- 公開工程まで通す。wasm-web、Android release bundle、Live Update mount、native extensionを含む実際の成果物を作り、起動、更新、保存互換、主要操作を確認する。
- 採用条件を文章にする。1.13.0で解決する問題、修正工数、未確認端末、元の版へ戻す条件を残し、制作本線への反映可否を決める。
判断の要点:新規または試作段階なら、1.13.0 stableを基準にして新しいasset/build pipelineを組みやすい。制作中なら、3D、Android、Box2D、Web/Live Update、Editor連携のうち該当する列だけを先に試す。リリース直前で必要機能も修正対象もないなら、更新を次の制作区切りへ送り、現在の出荷版を守る選択にも根拠がある。
検証範囲:この記事は2026年7月18日に公開されていたDefold公式資料を照合して作った移行計画であり、特定のゲーム、端末、asset、native extensionを実行した結果ではない。実際の採用前には、stable channelと利用extensionの対応版を再確認する。
参照した情報源
一次情報、補助報道、コミュニティ観測を役割別に表示しています。
1.13.0の公式紹介。Morph Targets、Box2D scripting API、AndroidでのVulkan優先とOpenGL fallback、Editorの認証付き/eval、主要な削除項目の概要を確認。
完全版リリースノート。deprecated Lua API、js-web、旧Live Update、Collada、自動re-centeringの削除、CCW統一、V2/V3別b2d.joint API、Morph Targetsの制約、/evalのtoken認証とeditor.execute到達範囲を確認。
2026年7月18日時点で1.13.0がstableかつLatestとして表示され、stable channelとsha1が明示されていることを確認。
2026年7月18日時点で1.13.1がbeta channelとして公開されていることを確認。stable 1.13.0とプレリリース版を分ける根拠に使用。
glTFからのMorph Targetsと初期weight読込、model.play_anim、get/set_blend_weights、一つのmodel animationのみ同時再生、shader側のtextureとweight適用、Editor previewとOpenGL ES 2.0の制約を確認。
AndroidのOpenGL+Vulkan、OpenGL、Vulkan選択、既定のVulkan優先とOpenGL ES fallback、Box2D legacy V2が既定でV3はopt-inかつsimulation resultが異なり得ることを確認。
stable版のネイティブBox2D joint APIと、V2/V3で重複・相違するcreate/property関数の対応範囲を確認。
Editor起動時にランダムportのローカルserverが立ち、.internal/editor.portとOpenAPIが外部連携の入口になる範囲を確認。/evalの認証と実行範囲は完全版リリースノートで補完。