Kingはなぜ完全無償のゲームエンジン「Defold」を提供しているのか? Defold説明会レポート
Defoldは,「キャンディークラッシュ」シリーズで世界的な有名なゲームデベロッパ,Kingが開発・運営している完全無償の2Dゲームエンジンである。
2016年1月のGlobal Game Jamのオープニング映像で突然その存在が明らかになり,開発者の中では「あれはいったい何?」と話題になった。2016年3月のGDCで正式発表され(関連記事),それから1年と少し,ついに日本でその詳細が語られることとなった。
今回のセミナーのガイドを担当したのはKing Japanの執行役員プロダクトディレクターの大塚 純氏だ。
大塚氏は今年に入ってKing Japanに合流したディレクターで,本来はDefoldの担当ではないのだが,今回のセミナーを企画した人物である。講演はストックホルムのスタジオから来日したKing DefoldチームHead of Developer Relationsを務めるベンジャミン・グレイサー氏が担当した。
ベンジャミン氏の肩書である「Developer Relations」は”DevRel”ともいい,近年日本でも広まってきている「開発者向けサービスとエンジニアをつなぐ」役職のことだ。少し前ではエヴァンジェリストなどと言われていたポジションである。
ベンジャミン氏はDefoldを広める活動のトップなのだが,今回の説明会は彼の私的な来日に合わせて急遽組まれたものである。参加したデベロッパは少数ではあったが,企業系のインディアプリ界隈で名をはせる開発者も顔を見せており,会場はDefoldという「未知との遭遇」の熱気にあふれていた。
本稿では,Defoldの思想,採用事例,技術的注目点などをあますところなくお伝えしたい。
Defoldエンジンの特徴
エンジンコア自体は3Dをベースにしたものとのことだが,エディタやツールセットは2Dに絞った組み合わせになっている。3Dメインのゲームを作るのは難しいが,3Dアニメーションや物理挙動を扱えるポテンシャルも持っている。開発できるゲームの対応プラットフォームはiOS,Android,Windows,Mac,Linux,そしてHTML5だ。
HTML5を使ったFacebookプラットフォーム向けビルドでは,アプリ内課金機能の連動や,Facebookで昨年公開されたばかりのクライアントソフトウェア「Facebook Gameroom」にも対応している。Facebook APIを通じてFacebookアカウントを通じたSNS機能やAchievement(実績)機能を利用することが可能だ。
また,Defoldのアプリ内課金システムには,App Store, Google Play, Facebookで共通で利用できる仕組みがある。Kingが自身のDefold利用タイトルをスマートフォンからFacebook版へ移植した際は,Facebook Developerサイトでアイテムを登録するだけで,コードのほうは変えずに課金機能が動作したそうだ。
「軽量」であることも大きな特徴だ。ビルド時のライブラリが占めるサイズはおよそ5MBである。また,Defoldはスクリプト言語にLuaを採用しており,Luaもまたメモリフットプリントが軽い言語だ(50KB)。ただしHTML5への出力の際は,LuaからEmscriptenコンパイラを利用してJavaScriptに変換しているため事情は少し異なる。HTML5ビルドをモバイルのブラウザで動作させることも可能ではあるが,あまりパフォーマンスが出ないため,スマートフォン向けにはネイティブアプリでリリースすることをお勧めしているそうだ。
Defoldを使い始めるためにはこれといった環境構築は必要なく,最新版のエディタを公式サイトからダウンロードしてくるだけで利用を開始できる。さらに,スペックシートによればXcodeを介さずにiOSビルドが可能なのだそうだ(macOSで開発する場合と思われる)。
そして,DefoldはもちろんKing社内でも多く利用されている。Defoldには「社内バージョン」「社外バージョン」という違いはなく,社内でもパブリック版とまったく同一のバージョンを使っているという。社内外の意見を取り入れながら,必ず2週間に1回はアップデートをするようにしているそうだ。
性能について他社エンジンとの直接的な性能比較こそなかったが,ベンジャミン氏は一般的なゲームエンジンを「スイスアーミー(十徳ナイフ)」に例え,あらゆるタイプのゲームを作れることを評価しつつ,もしクリエイターがモバイルやWeb向けに軽量な2Dゲームを作りたいなら,Defoldが最適であると述べていた。
スマートフォンOSに対する要求バージョンの低さにも注目したい。Androidは2.3(Gingerbread)で,iOS5.1以上をサポートするのだという(※共に5年以上前のOS)。低スペック端末でも動作し,アプリ自体も容量が軽く作れる。これは,King自体が東南アジア,アフリカ,南米などの何世代も前の端末を使っているゲームプレイヤーも視野に入れているからだ。
KingはなぜDefold事業を行っているのか?
そして今では,完全に無償で提供されている。ロイヤリティの後払いもなく,特定のwebゲームプラットフォームに乗る必要もなければ,ロゴやクレジットの表記もいらない。
そう言われて気になってくるのは,「なぜKingはDefoldを無料でリリースしているのか?」という理由だ。
これについてはシンプルに,「Defold」を通じてゲーム業界に対して貢献したいという思いなのだそうだ。
Kingは「キャンディークラッシュ」シリーズが世界的にヒットし,今でも巨大なプレイヤー層を抱えている。しかし,「キャンディ」だけの会社ではいたくない,という思いがあったという。ゲーム業界に何かを還元し,多くのエンジニアとつながっていきたいという思惑と,Defoldを始めた創業者の2人の「なるべくたくさんの人に使ってもらって,開発者の苦痛を取り除きたい」という思いが結実し,現在の形になっている。
同様の思想でゲームエンジンをリリースしている開発会社としては,「Cocos2d-x」を提供しているChukong Technologiesがある。彼らもまた,自分たちの開発チームのために作ったツールを無償で提供しているが,この場合はオープンソースプロジェクトであるため若干毛色が異なる。
そう,Defoldは無償エンジンではあるが,オープンソースプロジェクトではないのだ。
Defoldの開発チームの信条として,“Let the game teams focus on the games.”を掲げている。良いツールを提供することでゲームの開発チームを周辺技術ではなく,ゲームそのものに集中してもらおう,という考えのもとにDefoldは作られている。
思い思いのゲームを生み出すDefoldプレイヤーたち
新しい技術を検討するときに真っ先に知りたいのは,その利用者数と採用タイトル数だろう。Defoldは昨年の一般公開からおよそ1年で,3万人の開発者がアカウントを取得し,すでに100以上の採用タイトルがリリースされている。その多くが短い期間で作られたインディデベロッパによるものだ。Defoldはもともとそうした小規模タイトルでの利用を目指していたため,かなりうれしい状況なのだという。ベンジャミン氏はいくつかのタイトルをピックアップして紹介を行った。
まずはKing自身のタイトルだ。これが意外に少なく,現在リリースされているのは「ブロッサム・ブラスト」というタイトルのみになる。「花」をモチーフにしたパズルゲームだ。
iOS, Androidのほか,FacebookとFacebook Gameroomで配信されている。「ブロッサム・ブラスト」のほかにもKing社内ではDefoldが数えきれないほどのプロジェクトで利用されているが,ほとんどがリリース前なのだそうだ。ただし,King社内ではDefoldを利用することはまったく強制ではなく,各開発チームごとに開発環境の選択権があるそうだ。
開発例として紹介された「Bring Me Cakes」は「赤ずきん」をモチーフにした,迷路のような森を指でなぞって進むパズルゲームで,iOSとAndroid, HTML5でリリース予定だ。
現在は公式サイト上でHTML5版のデモ版を遊ぶことができる。こちらのゲームは3人のチームで作られているそうだ。
「Smash Bash: Date with the Desert」は,トップビューのマルチプレイシューティングゲームだ(公式サイト)。近日Steamでリリースされ,続いて iOSとAndroidにも展開する予定である。
本作は最大4人でプレイでき,ゲームパットを使うこともできるという。ベンジャミン氏によると,このタイトルがおそらく初めてSteamでリリースされるDefold採用タイトルになるだろうとのことだ。現在はβ版をインディゲーム配信サイト「itch.io」で遊ぶことができる。
Kingは,会社のポリシーとして「銃や残虐性のあるゲームを出さない」ということを唱えているが,Defoldエンジンの利用者にはそのルールは適用されないため,ベンジャミン氏もこのタイトルを紹介するときに「このタイプのゲームはウチじゃ絶対作らない系統なんだけど」と冗談めかして言っていた。言い換えれば,King自身が作るようなハッピーでピースフルなパズルゲーム以外でもDefoldのパワーは十分発揮できるということだ。
そのほかにも,ロケットを作って宇宙を飛ぶクラフト系の「Robo Settlers」や,ペットを育てる「Pet Petters」,共産ピクセルアートブラウザMMOな「Bunker」などが採用タイトルとして紹介された。
●Robo Settlers
Robo Settlers公式サイト
●Bunker
Bunker公式サイト
「Bunker」はまだプリプロダクション段階だ。キーアートがピンときた同志は,公式Tumblrページが最高なのでぜひ見てほしい。
ほかにも大小さまざまなタイトルで使われており,ゲーム以外で使われる事例もある。Defoldのチームはとくにプロジェクトを追っておらず,誰がどんなゲームを作っているか,デベロッパからコンタクトをもらえるまではっきりとは分からないのだそうだ。ベンジャミン氏曰く,「ゲームリリース後にDefold製ですと言われるパターンが多い」とのことである。
Defoldならではの特徴的な機能
Defoldのエディタ画面構成は,左側にコンテンツツリーがあり,中央にコードやステージを表示するメイン画面があり,オブジェクトごとのプロパティリストがあり……と,一般的なゲームエンジンと大きく変わらない。
ただ,いくつかユニークな機能がある。最も大きいのはプロジェクトファイルの扱いだ。Defoldでは新規プロジェクトを始める際,エディタではなくDefold.comの公式サイトにログインして,オンラインサービスの中でプロジェクトを新規作成する手続きになっている。そして,git(バージョンコントロールシステム)がエディタに組み込まれているので,チームでゲームを作る場合はオンラインのプロジェクトファイルを通じて,各々の作業をしたあとで自分の作った分をマージするといった制作スタイルが,標準でできるようになっている。
ただし,この仕様は,機密管理が厳しい会社やネットワークに接続されていない閉じた環境では利用できない。プロジェクトファイルを全部サーバーに送るというところに抵抗を感じる人もいる。そのため,この夏のバージョンアップでは,ローカルのみでプロジェクトを作って開発ができるようにするそうだ。
よく勘違いされるのが,KingがDefoldを提供する代わりにプロジェクトデータをサーバーに置かせ,その中身を見ているのでは?という説だそうなのだが,Kingはプロジェクトの中身を一切見ることはできず,今後もそれをするつもりはないそうだ。
現在の仕様はDefoldが買収される前に,開発者がエンジンへの課金方法の一つとしてオンラインでのチェック検討していた歴史的経緯であるとのことだ。
もちろん,ビルトインのバージョン管理システムは強制ではない。コードエディタもAtomなど,プログラマが好きな外部のツールを使うことができる。なるべく開発者に何かを強いるような作りにしない,というのがDefoldのコンセプトなのだそうだ。
ベンジャミン氏は実際にプレゼンテーションの中でDefoldのエディタを起動し,『Geometry Wars』のような見下ろし型シューティングゲームで各機能の解説を行った。
まずはビルド速度のデモンストレーションだ。Macのネイティブアプリとしてビルドを行うと,ものの数秒でビルドは完了した。HTML5ビルドの場合でも,ブラウザで動作させるまでに10秒以内で終わってしまうような驚異的な速さであった。
ビルドを行ったのは小さなサンプルゲームであり,もちろんリソースが増えてくればそれだけビルド時間は伸びると思われるが,プログレスバーをダラダラ見せることなくビルドが通ってしまう様子は驚きだ。根本的に「ビルドが速い」ということは,それだけイテレーションを増やしていけることにつながる。
筆者がDefoldの機能で最も惹かれたものが「Hot Reload」機能だ。Defoldのビルド速度はとても速いが,そうはいってもiOS向けのビルドをして端末に送信して……という手続きはひと手間だ。そんなシーンで,「Hot Reload」機能は端末上で動作中のゲームと接続し,スクリプトやリソースをリアルタイムに差し替えて確認をするワークフローを提供する。
調整したい部分を実際に変更するとどうなるか,すぐに実機上で確認できる。一部のゲーム設定ファイルやプロジェクトを構成するデータはHot Reloadでは差し替えができないとのことだが,テクスチャデータやサウンドファイル,エフェクトなども更新ができるとのことだ。今回のデモでは,グローシェーダの設定を変える変更をHot Reloadで行っていた。ゲームの微調整が相当楽になる,注目の機能といえるだろう。
多くの要望を受けて追加されたNative Extensions
Defoldはスクリプト言語luaを使った開発で多くのことが可能になっているが,どうしてもLuaだけではできないこともある。そういうときのために,Native Extensionsという機能が追加された。これはDefoldエンジンを拡張するDefold SDKを通じて,C, C++, Objective C, ならびにJavaで書かれたコードを利用できる仕組みだ。
例えばカメラなどのハードウェアを利用したり,外部のSDKやライブラリを使ったりするときはNative Extensionsが必要になる。デモンストレーションでは,C++で書かれた顔認識ライブラリを使って,Macのカメラに顔が映ったらその上に絵を合成するデモが披露された。
ただし,Native Extensions機能を使ったときは,Defoldで自動的に行っているクロスプラットフォーム対応が崩れてしまうので注意が必要だ。
さらに,Native Extensionsはプラグインで利用できるものではなく,エンジンを一度ビルドする必要がある。そしてDefoldは無料ではあるが,オープンソースではない。このあたりの解決方法として取られている手段が「クラウド側でエンジンビルドをする」というアプローチだ。
まずDefoldのサーバーへNative Extensionsのコードを送信する。そうするとサーバー側でカスタムコードを含んでエンジンビルドがかけられれ,カスタムエンジンとして開発者に帰ってくる。
Native Extensionsで書かれたコードはプロジェクトに含まれ,そのプロジェクトは基本的にDefold.com上で管理される開発チーム内で共有されるものだ。
プラグイン式の拡張機能を使っていると,複数の人間で作業をしている場合バージョンの差が出てしまう事故が起こることがある。しかしDefoldは,クラウドでエンジンビルドをすること,前述のオンラインプロジェクトファイルの仕組みを通じて,拡張機能を使ったとしても全員が同じバージョンを使って作業をすることができるとのことだ。
ゲームエンジンを公開してから起ったたこと
GDC 2016でDefoldを公開して以降,ゲーム開発者の中には非常に気に入ってくれた人もいたが,もちろん合わなかった開発者もいたという。しかし,Defoldのスタンスは「合わないと思えば使わなくて構わない」という考え方としているそうだ。販売している製品ではないため,やみくもに利用者を増やすことが第一目標ではないということだ。ただ,なるべくたくさんの人に使ってもらいたいとはもちろん考えており,フィードバックが多くあれば改善していくという。
例えば,コミュニティから最も要望があったのが前述のNative Extensions機能で,ゲームのリリースに不可欠なAdMobやSteam SDKなど,外部のSDKを使うにはどうしたらいいか,という相談がとくに多くあったのだそうだ。ベンジャミン氏は,今後も大きな要望があれば開発ロードマップに入れていきたいと話していた。
Defoldは専用のフォーラムを持ち,そこでは開発者が活発に意見を交換している。ただ,ユーザーコミュニティはあくまで自然な成長を促すようにしているそうだ。ありがたいことに,ビデオチュートリアルを作っている開発者や,”Book of Defold”という勝手書籍も登場するほど交流は活性化してきている(ベンジャミン氏によると,どちらかといえば公式ドキュメントをお勧めしたいそうだが)。
また,サードパーティツールにもDefoldの対応が少しずつではあるが広まってきている。Tiledというタイルマップ作成ツール(公式サイト)は,Defoldで使える形式へのエクスポートが可能になった。Native Extensionsの登場によって,こうした対応は今後も増えていく見通しだ。
今後の改善と機能追加
続いては,これから導入される改良点について紹介された。
まずは夏に公開を予定している「コミュニティポータル」だ。開発したゲームのシェアや,さまざまなアセット,Native Extensionsのコードなどを紹介できる開発者交流サイトになる。一見「アセットストア」的だが,ここには有料のものは置かないのだそうだ。
また,今後はDefoldに「追加ダウンロード機能」がサポートされる。ソーシャルゲームでは日常的に見る,アプリを起動した後に追加でリソースを読み込む仕組みだ。
リソースの配布元は何でも指定できるが,とくにAmazon S3を使ったファイル配布については専用の機能を用意し,BucketとPrefixを指定すれば必要なデータが簡単に取得できるようになっている。
もちろん,AWSの利用にはそれなりの料金が必要にはなるものの,簡単にこうした機能を追加できるのはDefoldならではの特徴になりそうだ。
King自身のゲームは自前のサーバーで運営しており,AWSは使用していない。Defoldプレイヤーからの要望が大きかったため,こうした機能を用意したのだそうだ。
説明会の参加者からの質問では,AppLovinやChartboostなどの広告システムの対応についても聞かれたが,Native Extensionsの仕組みを使えば各社が出しているSDKのつなぎ込みができるため,ぜひ試してほしい,という答えになった。逆に言えば,ある程度はサービス提供者やそれを利用する開発者側で手を入れる必要があるようだ。
しかし,広告に関してはAdMobについてはNative Extensionsを使った拡張をすでに提供している。特定の機能の提供は,先ほどのAWS対応同様,コミュニティの意見がどのくらい大きいかというポイントに依存しているようだ。
Kingにしかできない,強力なインディゲームクリエイター支援策
インディゲームクリエイターが困っているのは技術面だけではない。大量にゲームがリリースされる現代においては,自分のゲームをプレイヤーにどうやって見つけてもらうか,という解決すべき大きな課題がある。
これに対するKingならではのスペシャルオファーとして,現在Defoldプレイヤー向けに”Grants”と呼ばれるコンテストを準備中なのだそうだ。
このコンテストの選考に通過すると,2018年の間に1000万インプレッション分の広告をKing製ゲームの中で宣伝できる権利をもらうことができる。選ばれるのは,4チームのみだ。しかしKingの『キャンディークラッシュ』シリーズは6億ダウンロードという数字をたたき出しており,この膨大なゲームプレイヤーに向けて自分のゲームをアピールできるチャンスということになる。
参加条件も,これまたユニークで,Defoldで作られたモバイルゲームであることはもちろんのこと,いくつかの一般的なクオリティに関する内容のほかに「Day 2 Retentionが20%を超えていること」という条件がある。これは1日でゲームから離脱しなかったプレイヤーの割合20%という意味で,完全な一発ネタアプリはダメですよ,という”ふるい”として置いているように取れる。
すでに多くの実績を持つDefold。HTML5ゲームの潮流と化学合成は起きるか
昨今のソーシャルゲームでは,iOSとAndroidのリリースに加え,HTML5によってブラウザ版を展開する組み合わせが少しずつ増えてきている。ブラウザゲームは軽量であることが必達である。このタイミングでのDefoldの登場は,うまく時代の潮流にのれる船になるかもしれない。
現在Defold「Editor 2」がプレリリース中だ。これは最初のバージョンからフルスクラッチで作り直したものであり,夏には正式版になるとのことだ。いまからDefoldを触ろうとしている人は,この「Editor 2」から使い始めるといいだろう。2Dに特化した小規模タイトルを作ろうと考えているクリエイターは,まずはDefoldに触ってみてもらいたい。
追記:
なお,GamesIndustry.biz Japan Editionはこの説明会後,大塚氏とベンジャミン氏に特別インタビューを行った。Defoldにかける思いと日本での展開についてヒアリングしてきたので,掲載まで今しばらくお待ちいただきたい。