野生のはてなブログ

twitterに書くには長すぎQiitaやサークルサイトに書くには雑多過ぎる話題を書いていきます

Esenthel EngineとUnityの違いを簡単にまとめてみた

2010年8月にUnity3Dにハマって2013年8月にゲームを出し、

2013年12月にEsenthel Engineというゲームエンジンにハマりました。

はてなブログの練習も兼ねてEsenthel EngineとUnity3Dの違いをこの記事にまとめることにしました。


エンジンの発祥

デンマーク生まれMac発のUnity3D

 Unity3Dはスカンジナビア半島の最南端の国デンマークで生まれました。
元々はゲーム会社でしたが、「Macにゲームが無い」→「Macでゲーム作ろう」→「Macにゲームエンジンなんて無いよ」→「じゃあゲームエンジン作ろう」という経緯で2001年に開発が開始されました。
現在は米国に本社があり、御存知の通り日本法人も設立されています。

ポーランド生まれWindows発のEsenthel Engine

 Esenthel Engineはドイツの隣にある国ポーランドでWindows向けのゲームエンジンとして生まれました。
1999年から開発が始まっており、未だにポーランド在住の作者個人で開発を進めています。

開発言語

Mono Frameworkで動作するUnity

 マイクロソフトが開発した.NET Frameworkオープンソースクローンとして作られたMono Frameworkは、Windowsだけでは無くLinux、Mac、iOSAndroidでも仮想マシンが動作します。
UnityはMonoを独自拡張したバージョンを使用しており、現在ではMacからWindows、LinuxiOSAndroid、Windows Phone/Store、Blackberryなど多くのプラットフォームでの動作に対応しています。
ネイティブアプリだけではなく、PCブラウザプラグインで動作するWeb Playerも存在します。

 Unityの公式で使える言語はC#/Unityscript(拡張ECMAScript)/Boo(Mono版Python)の3つとなっており、付属のMonoDevelopでコード編集とデバッグを行えます。

C++でネイティブコードにコンパイルされるEsenthel Engine

 Esenthel EngineはC++を開発に採用しており、Visual C++コンパイラXcode付属のgcc/clangコンパイラでアプリケーションをネイティブコードにコンパイル可能です。
エンジン上で動作するエディタ専用のEsenthel Scriptもあり、簡易な記述とVisualAssistXをリスペクトした強力な補完機能でゲームコードを記述することが出来ます。

Esenthel Scriptはコンパイル/プロジェクトファイルエクスポート時にC++のコードに変換され、Visual StudioXcodeのエディタ・デバッガを使うことが出来ます。

また、どのプラットフォームでも動作することが出来るC++を用いているので、現在ではWindows/Mac/Linux/iOS/Androidに対応しています。

エディタの外観

エディタからコードを排除したUnity

 Unityのエディタは3Dモデリングソフトのような外観のWYSIWYGエディタになっており、スクリプトコードは外部のエディタで編集する形となっています。
デザイナーの利用を考慮したUIだと思いますが、初めて起動した時にどこからスクリプトを編集するのか戸惑うプログラマーの方も多いようです。
エディタの機能はスクリプトで拡張することができ、シーンビューやゲームビューに編集用のギズモを出したりインスペクタを独自で書き換えることも可能です。

f:id:yaseino:20140105194108p:plain

f:id:yaseino:20140105222312p:plain

自前のコードエディタを搭載したEsenthel

 Esenthel Engineは先述の通り独自のスクリプト言語を使って開発することが出来ます。
UDKやTorqueなど他の専用言語を持ったゲームエンジンでは対応するエディタを用意することが必要ですが、Esenthelの場合はエンジンの中でシームレスにコードエディタとWYSIWYGエディタが動作します。

f:id:yaseino:20140105221351p:plain

f:id:yaseino:20140105222007p:plain

f:id:yaseino:20140105221727p:plain

2D機能

Unity3DからUnity2DになったUnity

 UnityはUnity3d.comというアドレスの通り3Dゲームエンジンでしたが、2Dゲームを作りたいという需要が余りにも大きくアセットストアでは2D Toolkitがバカ売れし、2013年のUnity4.3ではついにUnity2Dという名前で標準2Dフレームワークが付きました。


Unity - Unity PRESS RELEASE – Unity、2D向けゲーム開発機能とクラウドサービスを新たに提供

テクスチャアトラス機能を持つEsenthel

 EsenthelではUnity2Dのようにリッチなエディタは搭載していませんが、標準でImageAtlas機能を持ちエディタで連続した別々の解像度の画像を一つのテクスチャアトラスとして登録することが出来るため、2D画像を扱ったゲームも標準機能で作成することができます。
Esenthel Engineで作られたスマートフォン向けRTSのデモも存在します。

f:id:yaseino:20140105225500p:plain

エンジンの拡張

.NET準拠のUnity

 UnityはMono VM上で動作するため、ネイティブコードで動作するライブラリを利用するためには専用のラッパーコードを用意しなければなりません。
近年ではUnity自体がメジャーになったため、Oculus Riftのように公式でUnity SDKを用意する企業も増えましたが、それ以外のライブラリを利用するためにはC/C++C#の知識が必要になります。

C++のEsenthel

 Esenthel Engineは先述の通りC++コンパイラで動作するため、出力先プラットフォームで動作するライブラリが存在していればゲームのコードと衝突しない限り利用することが可能です。Oculus RiftやRazer Hydra等もベースとなっているC++ SDKが存在するため、ライブラリを利用することが可能です。

ライセンス形態

プラットフォーム別課金のUnity

 Unityには無料版のFreeと、商用に耐え得る品質のPro版が存在します。
無料版のFreeでは機能が限られている代わりにWindows/Mac/Linux/iOS/Android/Web Player出力に対応していますが、Professional版ではWindows/Mac/Linux/Windows Store/Web Player以外のプラットフォームでは個別に料金が必要となります。
Professional版の価格は現在1500ドルとなっており、PC/iOS/Androidマルチプラットフォーム開発の場合は1500ドル×3=4500ドルとなります。

また、エディタ上でのバージョン管理機能や出力プラットフォーム切替時のキャッシュ機能を提供するTeam Licenseも別売り500ドルで用意されています。
月額75ドルのサブスクリプション版や、99ドルの非商用アカデミックライセンス、各定価の半額で購入可能な商用アカデミックライセンスも存在します。

Professional版やTeam Licenseの体験版は30日限定で用意されており、期限が切れると以後永久にFree版として動作します。
Oculus Rift DKやGlobal Game Jamなど、期間限定でProfessionalを使えるシリアルコードも配布することもあります。

ユーザー単位課金のEsenthel

 Esenthel Engineでは未購入でもエディタインターフェース拡張を除いた全ての機能を1プロジェクト当たりアセット64個制限かつ無期限で試用することができます。
エディタのライセンス価格は199ドルで、一度購入すればPC/Mac/Linux/iOS/Androidすべての対応プラットフォームで開発することが出来ます。

感想

 4年前にtwitterで呟いた(当時はUnityの日本法人も日本語サイトも無かった)頃の想像を遥かに超えてUnityが流行っている昨今ですが、Free版はエンジン拡張が出来ない等の制約が多く、Professional版は価格が高いため採用はゲーム会社や強豪のインディーデベロッパーに留まり、趣味層での利用はまだまだHSPやDXライブラリと言った国産の無料ゲームライブラリに追い付けていないように思えます。(知り合いのUnityユーザーが現役ゲーム業界人と自分のような元ゲーム業界人ばかりで学生が皆無)

 Esenthelはまだ触って1ヶ月なので軍配は下せませんが、少なくとも安価でマルチプラットフォームなゲーム開発を始められるという点でコストパフォーマンスはUnityに圧勝しています。

C++ - Esenthel Engine怒涛の付属チュートリアルサンプルプログラム一覧 - Qiita [キータ]

のようにEsenthelは付属のチュートリアルコードも充実しており、直近のロードマップにドキュメントとチュートリアルビデオの拡充も含まれているので今後更に学習しやすいゲームエンジンになっていくんじゃないかと思われます。

ゲームエンジンは用量用法を考えて正しく使いましょう。