ゲーム開発用エンジン「Defold Editor 2.0」を試してみた。
Defold Editor 2.0 とは
「Defold Editor 2.0」は「King」によって開発された「フリー(無償で利用可能)」なゲーム開発用エンジン。モバイルに強く、iOS や Android のネイティブ動作アプリを標準で出力できます。ところがそれだけではなく、標準でウィンドウズや Mac OS、さらに Linux(32-bit)用ビルドにも対応。さらに HTML5 出力まで備えています。全六種のビルドに標準で、全部無償利用が可能。
参考(www.defold.com):Focus on performance
なんだか騙されているみたいで、書きながら心配にすらなってきましたが、エディタとしてはマルチプラットフォーム対応、Windows / Mac / Linux で動作します。お好きな OS をどうぞってことで、プレスリリースでは MacBookPro での動作が紹介されていますね。
King とは
King の代表作は Candy Crush(キャンディークラッシュ) が有名、この作品の成功によって King Digital Entertainment はモバイルゲーム開発の独立系企業として上場を果たした後、2015 年当時 59 億ドル($5.9B)で電撃的に買収され Activision Blizzard(世界的超大手) の傘下に収まっています。
Defold は GDC 2016 で突然発表され注目を集めました。
元は King のインハウスツール
King の CTO「 Thomas Hartwig 」 によると、Defold は内製のゲームエンジンとして King Digital Entertainment 時代から利用していたものを、一般のインディーゲームクリエーター向けに公開したものだそうです。
2D ゲーム製作がメインターゲットとなっているゲーム製作用エディタですが、基本は 3D なので 3D モデルをインポートして 2D で扱うような仕組みを提供しています。
2D アニメーション用として Spine Animation に標準対応、Spine で作成されたボーンアニメーションは完全対応しているそうです。
参考(80 LEVEL):King of Gamedev: What is Defold?
スクリプト環境として Lua を採用
個人的に嬉しいのはスクリプト環境として Lua が採用されている件。これは久しぶりに腕がなるわいな。しかしスクリプト環境で Lua は好みが別れると思う。
Lua だとコードのホットスワップに対応しているため、テスト実行中のアプリでもスクリプト側の変更はアプリ動作でも変更がその場ですぐ確認できる。ちょっとした変更とか追加、その確認にはもってこいなんや。
GameMakerStudio を使って絶望したのは、コードのホットスワップができなくて、必ずビルドが必要だった点。GML はスクリプト環境といっても Lua 程に気軽ではなかった。
まぁ、もう、こまけぇことはいいんだよ
参考(www.defold.com):DEFOLD TERMS OF SERVICE
参考(www.defold.com):General questions
とりあえず必要なことは上記とか読んで、チュートリアル試してみることにした。どうせまだプレリリースだから、一部完成度とかは足りてないんだ。
あとはまぁ、オープンソースプロジェクトでは無いのでゲームエンジン本体には直接手を入れることができない。必要に応じて C++ で独自エクステンションを作ることはできるけれど、独自拡張を含めた場合には標準ビルドが全対応はできなくなるなどが注意点だ。
ビルド速い
ビルドはかなり速い。ゲーム用の共通ライブラリはなるべく小さくなるように設計されているようだが、アプリのサイズ小さいしビルド速いのは確か。
Cocos2d-x を使ってビルドした時に絶望した「糞長い初回ビルド」は Defold に無い。
標準ビルド六種類は使えるか
とりあえず手元にある環境では HTML5 と Android と Windows しか試せない。
Linux と Mac は余計なもんいれることができないし iOS はライセンスが無い。
まず Windows 用のリリースビルドを試してみた。かなり短時間で終わるが、規模に応じてビルド時間は伸びるので、全体でどの位時間がかかるのかプログレスバー表示が欲しかったけど、現在はそれが無い。デバッガにもビルド中の動作ログは流れてこないため、何をしているのかよくわからない。でも速い。
じゃあ次に HTML5 のリリースビルド実行。ビルドにちょっと時間かかった印象だが、十分速い。Lua スクリプトは Emscripten で JavaScript に変換する過程が必要で、HTML5 はパフォーマンスもあまり良くならないみたい。しかし動作軽いものなら充分大丈夫だろう。
次に Android。普段 GMS で Android 用のビルドをこなしている環境でそのまま Defold を使っている。ビルド速い。クソほど速い。比較対象が GMS なのだけど、GMS の Android ビルドは小さなものでも相当時間がかかる。Defold はウソみたいに速い。Android 実機へ転送後、起動も速い軽い。
これはやはりモバイル用としてかなり使える、という印象。
日本語は使える?
フォント関連をまだ試していないが、エディタ自体は日本語に対応している。ただしビルドはやばい。
例えば Assets に日本語を使うとビルドで文字が化けている。さらに Android は実機転送して実行するまでビルド失敗か成功か分からなかった。
HTML5 も日本語を Assets に含めるとビルドに失敗する、もしくは文字化け。アプリのタイトルに日本語を混ぜたらビルドに失敗。たぶん文字化けのためパスが通ってない。
Android はアプリケーションのタイトルに日本語を含めているだけなのに実機でアプリが起動しない。起動後エラーが出てアプリが動作しない。わーお。Unicode がそんなに嫌いか?
でもたぶんこれらはエラー報告を今後することによって解決すると思う。
とりあえず日本語はまだ問題ありそうなのでこれ以上今は追求せず、ツールとしてその他を色々試したいと思う。
ビルド速いのはかなり良い
無償で使えるツールとして標準で6種類のビルドが使える Defold は将来性もありそうだが、ビルドが速い、これは重要だし貴重。ラピッドに作り即試す、これできるのが強みです。
2D Animation で Spine が完全対応されているのも心強い。Spine はキャラクタだけではなくメニューとかボタンにも使えるため、これが使えないと困るというレベルのツール。他はともかく、Spine だけでも対応してくれていたら、とりあえずなんとかなる。
Defold は CF25/F3 ユーザ向けではないけれど、GMS とか Cocos2d-x ユーザなら触ってみる価値あるのではと思いました。特に GM:S で GML 使ってバリバリ書く人は、GM:S2.0 が Humble でセール価格になるまで Defold 使うのが良いんじゃないかな(おい)。
Defold 面白そうなので、筆者は現在作っているプロジェクトが一段落したら GM:S1.4 から Defold への移住も考えます。
基本 3D で描画は 2D ってツールがやっぱ欲しい。GM:S 1.4 はゲームエンジンとして古い設計を残しているし、既存ユーザへの配慮からか GML を大幅に仕様変更できないみたいなので、GML 自体が言語として進化する機会をこれまで逃している。
Lua はええぞ、Python もいい、Go でもいいけど名前をなんとかしろ。JavaScript には親を殺されたから憎んでいる。