【Defold】Luaで動かす「Defold Engine」とは何なのか?
目次
概要
UnityやUnrealEngineは知っているけどDefoldって何か知らないという人のためのページです。
公式ページ
日本語のページはフルで情報が出ていないので
Defold: Free 2D Game Engine for Cross-Platform Publishing
Englishページを確認する方が良いです。
Defold って何?
「Defold」とはキャンディークラッシュ、ブロッサム・ブラストで知られる「King」が開発したゲームエンジンで、以下の特徴があります。
- 2D特化型で高速(しかし、3Dも出せる)
- 使用言語はLua
- マルチプラットフォーム
- 最小サイズのゲームエンジン
- ビルド早い
- ホットリロードに対応している
- 無償利用が可能
といった特徴があります。それぞれ簡単にお話しします。
2D特化型で高速
ほぼ同じ条件で、スプライトを大量に表示する様なパフォーマンス計測を行った場合、2Dに特化してチューニングされている事もあって他のゲームエンジンよりも、フレームレートが維持できている印象です。
使用言語はLua
独自言語ではなく、Luaを採用。コンシューマでの実績もあるLuaは高速で使い勝手が良いです。 私が過去経験したゲームタイトルでは、カットシーンや演出面のスクリプトにLuaが使われていました。それだけ汎用的だということなのではと思います。
マルチプラットフォーム
現在6種類のプラットフォームに対応されています。
- Android
- iOS
- macOS
- Windows
- Linux
- HTML5
- Nintendo Switch (2020年6月24日追加)
これは「ゲームの主要な部分は共通のコードで書ける」ことを示しており、プラットフォームごとに依存したコードを書く必要が減ります。例外として、広告用SDKなどネイティブプラグインとの連携を必要とする場合、その部分はプラットフォーム依存での実装が必要になります。
最小サイズのゲームエンジン
アプリのビルドサイズが小さいです。現在バージョン1.2.157で空のモバイルプロジェクトをAndroidビルドした時のapkサイズは6143KBでした。これはDebugビルド設定のままなので、Releaseビルドだともう少し減りそうです。試してみます。
構成 | apkサイズ |
Debug(初期設定) | 6143KB |
Release | 5624KB |
このRelease構成のまま、さらに32bitアプリを非対応にしてみます。
構成 | apkサイズ |
32bit(armv7)を削除 | 4187KB |
5MB以下です。公式の文言に偽り無し。素晴らしい。
ビルド早い
エンジン部分のサイズも小さく、Lua自体はランタイムで走るはずなのでビルド時間が発生しない。初回ビルドも早い。
ホットリロードに対応している
アプリ実行中にLuaスクリプトを修正すると即時反映できる。再起動する必要が無く、これはとても強力に作用する。
無償利用が可能
完全無償で最強。ロイヤリティの支払いも無し。そしてクレジットのロゴ表記も不要。この理由については
これについてはシンプルに,「Defold」を通じてゲーム業界に対して貢献したいという思いなのだそうだ。
https://jp.gamesindustry.biz/article/1704/17041303/
Kingは「キャンディークラッシュ」シリーズが世界的にヒットし,今でも巨大なプレイヤー層を抱えている。しかし,「キャンディ」だけの会社ではいたくない,という思いがあったという。ゲーム業界に何かを還元し,多くのエンジニアとつながっていきたいという思惑と,Defoldを始めた創業者の2人の「なるべくたくさんの人に使ってもらって,開発者の苦痛を取り除きたい」という思いが結実し,現在の形になっている。
なんと素晴らしい。インディーズ開発者にも、ものすごく優しい思想となっています。
気になる点
これだけメリットが多く素晴らしいDefoldですが、Luaの性質上、メッセージパッシングを多用する点です。これは好みが分かれそうです。