Defold: クロスプラットフォーム対応ゲームエンジン
(defold.com)- 軽量かつ高性能な2D中心のゲームエンジンで、3D機能にも対応
- Luaスクリプトベースでゲーム全体のロジックを制御し、高速ビルドとホットリロードで開発速度を向上
- 無料で提供され、ライセンス費用やロイヤリティは不要
- クロスプラットフォーム対応が強力で、1回の開発でさまざまなプラットフォームに配布可能
- シーンエディタ、GUIツールなどアーティストフレンドリーなツールを備え、ビジュアル制作のしやすさを強化
- C/C++などのネイティブ拡張や多様なSDK連携により、拡張性と実運用への適用が可能
Defoldの主な機能
- インストール不要: インストールや設定なしですぐに使える
- ビジュアルおよびコードエディタ: 視覚的なエディタとコードエディタで創造的な作業が可能
- Luaデバッガ: Luaスクリプトをデバッグできるツールを提供
- シーンおよびパーティクルエディタ: 2Dおよび3Dゲーム開発向けの多様なエディタを提供
- 費用なし: 初期費用、ライセンス費用、ロイヤリティ、ランタイム費用が不要
クロスプラットフォーム対応
- 多様なプラットフォーム: PlayStation、Nintendo Switch、Android、iOS、macOS、Linux、Windows、Steam、HTML5、Facebookなど主要プラットフォームへゲームを配布可能
- 外部ツール不要: 外部ツールなしで、1つのコードベースからすべてのプラットフォームに対応
2D中心、3Dにも対応するエンジン構成
- Defoldは2Dゲーム開発に最適化されている一方、3D機能も内蔵
- コンポーネントベース設計により、性能とモジュール性を強化
- 2Dコンポーネント: 2Dスプライト、Spineモデル、タイルマップエディタ
- 3Dコンポーネント:
- 3Dモデルおよびアニメーションの読み込み
- 実行時の3Dメッシュ生成と修正
- カスタムマテリアルとGLSLベースのシェーダー
- パーティクル効果
- リアルタイムプレビュー対応のパーティクルエディタ
- カーブエディタによるパラメータ調整
- 2D/3Dパーティクルエミッタ対応
アニメーション機能
- スプライト、モデル、GUIなどで使える強力なアニメーションシステム
- フリップブックアニメーション: スプライト、GUIノード、パーティクルに使用
- Spineおよびモデルアニメーション
- ブレンディング対応
- キーフレームイベント処理
- 逆運動学の適用やスクリプト制御が可能
- プロパティアニメーション
- すべてのスプライトおよびGUIプロパティをアニメーション可能
- カスタムスクリプトベースのプロパティアニメーション
- カスタムまたは事前定義されたイージング関数を使用
アーティストフレンドリーなツール
- GUIエディタ
- テキスト、画像、パイノードなどのレイヤー構成
- クリッピングおよびマスク機能
- 自動レイアウトと画面向き切り替えに対応
- 9スライステクスチャ、ビットマップ/距離フィールドフォント
- テンプレートを活用したUI要素の再利用が可能
- シーンエディタ
- アセットの組み立てと配置のためのビジュアルエディタ
- プレハブベースのゲームオブジェクト構成
- 階層構造によるオブジェクトのグループ化
物理シミュレーション
- Box2D、Bulletベースの2D/3D物理エンジンを完全統合
- 静的/動的/キネマティックオブジェクト
- 形状ベースの衝突およびレイキャスト検出
- タイルマップの高精度な衝突検出
- トリガー、ジョイント、モーター対応
すべてLuaスクリプトで実現可能
- Luaスクリプト
- コードエディタ、構文ハイライト、自動補完、LSPを含む
- デバッガ内蔵で変数の確認が可能
- レンダリングパイプラインを完全にスクリプト化可能
- Teal言語による型指定が可能
- リアクティブなコードスタイル
- リアクティブスタイルのLuaをサポートし、高性能を維持
- ゲームオブジェクト間の非同期通信構造
クロスプラットフォーム対応
- 真のクロスプラットフォーム
- 同一コードベースからワンクリックで配布
- Steam、Facebook Instantなどは拡張で対応
- エディタはmacOS、Windows、Linuxをすべてサポート
- XcodeやAndroid Studioがなくてもモバイル配布が可能
- WebGL、OpenGL、Vulkan、Metalに対応
- 非常に軽量
- 使用したアセットのみを含める自動リソース管理
- スプライトアトラスのパッキング
- プラットフォーム別のテクスチャ圧縮設定が可能
- レンダーパイプラインでの動的バッチ処理
性能と安定性
- 他のエンジンよりはるかに小さいバイナリサイズ
- Unity 6、Godot 4.3と比べて約10%のバイナリサイズ(Android、iOS、HTML5、Windowsすべて)
- 優れた性能
- 数万個のオブジェクトをレンダリング可能(例: Bunnymark)
- 古いハードウェアやモバイルブラウザでも快適に動作
- Stable版
- 4週間のリリースサイクル、2週間のベータ期間を含む
- 下位互換性を壊す変更はほとんどない
- エンジンクラッシュは非常にまれ
高速なワークフロー
- ホットリロード
- アセット/ロジックをリアルタイムで反映
- ワイヤレスデバイスのホットリロードおよびデバッグに対応
- Luaフックを通じたカスタムリロード処理が可能
- カスタムワークフロー
- 独立したビルドパイプラインを利用可能
- CIと統合されたヘッドレスビルドに対応
- プロジェクト間でライブラリを共有可能
- 公式およびコミュニティ資産を含むAsset Portalを運営
- すべてのデータはテキストファイルで管理され、マージしやすい
- ビルドおよびリファクタリング
- HTML5を含むすべてのビルドが数秒で完了
- 非同期および同期ローディングに対応
- 自動アセットリファクタリング
- 最適化およびデバッグ
- リアルタイムのビジュアルプロファイラ
- リモートのWebベースフレームサンプリング
- ゲーム映像のキャプチャが可能
- ネイティブクラッシュログAPIを提供
ネイティブ拡張で機能追加
- C、C++、ObjectiveC、Java、JavaScriptでDefoldエンジン機能を拡張可能
- クラウド上でユーザー向けのカスタムエンジンを自動生成
- 活用例
- 高性能な演算およびデータ処理
- モバイルカメラなどハードウェアへのアクセス
- 広告、分析など外部SDKとの連携
実運用とサードパーティ統合
- Defoldは実運用向けゲームエンジンとして、信頼性のあるSDK統合を提供
- プッシュ通知: Google、Apple
- アプリ内課金: Google、Apple、Amazon、Facebook
- ゲームサービス: Facebook SDK、Google Play、Firebase
- 広告: AdMob、IronSourceなどのメディエーションに対応
- ネットワーク: WebSockets、Nakama、PlayFab、Colyseusなど
- さらに多くの拡張はAsset Portalで確認可能
なぜDefoldなのか?
- Defoldはあらゆるゲームに最適だとは主張しない
- しかし、一部のゲームにとっては最良の選択肢になり得る
- 開発生産性、軽量性、クロスプラットフォーム、高速な反復作業などで特化した強みを持つ
2件のコメント
単なる Lua ではなく LuaJIT なので、非常に高速です。
Hacker News のコメント
彼らは興味深いライセンスの解決策を選んでいる。オープンソースではなく、ソースアベイラブルライセンスと呼んでいる点が気に入っている
「ソースアベイラブル」と呼び、「オープンソース」という言葉を誤用していない点を高く評価する。Apache ベースのライセンスに追加された内容を強調しているのも良い
Defold には愛着がある。ゲーム開発分野では独特だ。たとえば、内蔵 GUI エディタは Clojure で書かれている
Defold はかなり前から存在している。なぜ今これがメインページに載っているのか分からない。いずれにせよ Defold は良い。コミュニティやドキュメントなどは Godot と比べるとやや弱い
Unity が初めて登場したときの感覚を覚えている。これは何か大きなものになるかもしれない、という感じだった
関連する進行中の投稿がある。このエンジンを使って、60k LOC の Lua で書かれたゲームについてのものだ
Nixpkgs には入っていないことに気づいた
機能面で Godot とのより深い比較を見てみたい。少なくとも 3D 機能については、後者のほうがはるかに進んでいるように思える
数年前にこのエンジンを追っていた。King が作ったゲームエンジンで、彼らが自前で投資しなくなったあと自由に公開された
Löve 2D と比べて、IDE が付属していること以外にどう違うのか気になる。Defold はより多くのプラットフォームをサポートしているようだが、さまざまなコンソール向けにゲームをパッケージ化するには、かなり非公開の依存関係を伴うことがある