【Defold】Luaで動かす「Defold Engine」とは何なのか?

2019/08/14Defold, DEVELOP

概要

UnityやUnrealEngineは知っているけどDefoldって何か知らないという人のためのページです。

公式ページ

Defold –2Dゲーム用に作られた究極のゲームエンジン

日本語のページはフルで情報が出ていないので
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

これは「ゲームの主要な部分は共通のコードで書ける」ことを示しており、プラットフォームごとに依存したコードを書く必要が減ります。例外として、広告用SDKなどネイティブプラグインとの連携を必要とする場合、その部分はプラットフォーム依存での実装が必要になります。

最小サイズのゲームエンジン

アプリのビルドサイズが小さいです。現在バージョン1.2.157で空のモバイルプロジェクトをAndroidビルドした時のapkサイズは6143KBでした。これはDebugビルド設定のままなので、Releaseビルドだともう少し減りそうです。試してみます。

構成apkサイズ
Debug(初期設定)6143KB
Release5624KB

このRelease構成のまま、さらに32bitアプリを非対応にしてみます。

構成apkサイズ
32bit(armv7)を削除4187KB

5MB以下です。公式の文言に偽り無し。素晴らしい。

ビルド早い

エンジン部分のサイズも小さく、Lua自体はランタイムで走るはずなのでビルド時間が発生しない。初回ビルドも早い。

ホットリロードに対応している

アプリ実行中にLuaスクリプトを修正すると即時反映できる。再起動する必要が無く、これはとても強力に作用する。

無償利用が可能

完全無償で最強。ロイヤリティの支払いも無し。そしてクレジットのロゴ表記も不要。この理由については

これについてはシンプルに,「Defold」を通じてゲーム業界に対して貢献したいという思いなのだそうだ。

 Kingは「キャンディークラッシュ」シリーズが世界的にヒットし,今でも巨大なプレイヤー層を抱えている。しかし,「キャンディ」だけの会社ではいたくない,という思いがあったという。ゲーム業界に何かを還元し,多くのエンジニアとつながっていきたいという思惑と,Defoldを始めた創業者の2人の「なるべくたくさんの人に使ってもらって,開発者の苦痛を取り除きたい」という思いが結実し,現在の形になっている。

https://jp.gamesindustry.biz/article/1704/17041303/

なんと素晴らしい。インディーズ開発者にも、ものすごく優しい思想となっています。

気になる点

これだけメリットが多く素晴らしいDefoldですが、Luaの性質上、メッセージパッシングを多用する点です。これは好みが分かれそうです。

まとめ

Defold Engineは、日本ではあまり知られておらず採用実績も少ない。資料は限りなく少ないのですが、できる限りアウトプットしてDefoldのすばらしさを広げていける様に頑張りたいと思います。それに、最近よく見るハイパーカジュアルゲームとの相性が良さそうに感じています。Defoldの未来は、きっと明るい!

Posted by kazupon