Esenthel Engineというゲームエンジンが予想外に面白かったのでメモ

# 見知らぬ、エンジン

OculusのOther Engine Integrationフォーラムに[見覚えの無い名前のゲームエンジンが投稿されていた](https://developer.oculusvr.com/forums/viewtopic.php?f=39&t=5133)。

実は[Oculus Advent Calendar 2日目の記事](http://qiita.com/yasei_no_otoko/items/7f1687c4e62e8e71befd)を編集している時に見つけていたのだが、あまりにも聞いたことが無い上にWindows/Mac/iOS/Android対応と謳い文句が微妙だったのでサイトをちらりとだけ見て触っていなかった。

この手のゲームエンジンの場合、「開発環境はWindowsのみ」というモノばかりで、これはMacを使っている3DCGデザイナー・イラストレイターが依然少なくない事を考えるとUnityのシェアの原動力にもなっていると思う。

で、時間が出来たのでちょっと調べて見たところ、開発環境もMacに対応しているしかなり素性の良さそうなエンジンだということが分かった。
[公式のデモ](https://www.youtube.com/watch?v=Q_CkLIzjj9Q)は2年前（Unity3.0が出る前）にも関わらずかなり綺麗な絵が出ているし、
PCだけじゃなく[iOS](https://itunes.apple.com/us/app/esenthel-rts/id539195552)でも[Android](https://play.google.com/store/apps/details?id=com.esenthel.rts)でも動くRTSがデモとして用意されている。

以下に数時間だけ触ってみて凄いと思った点を書いていく。

# 「一番気に入ってるのは…」「何です？」「値段だ」
何と4プラットフォームのレベルエディタ付きゲームエンジンなのに199ドルである。1999ドルでは無く199ドル。
起動時とホームページにEsenthelのロゴを載せなければならないという制約があるが、
この規模のゲームエンジンとしては安すぎると言える。

# C++が書ける
この価格帯のクロスプラットフォームゲームエンジンでゲームコードにC++を使えるエンジンはかなり稀だ。
ディレクトリを自動認識したXcodeかVisual C++のコンパイラを使ってすぐにゲームをビルドすることが出来るし、外部ライブラリの#includeも当然のように行える。

# [Visual Assist X風のエディタ（Macでも使える）](http://www.esenthel.com/wiki/index.php?title=Code_Editor)
Esenthel Engineは[公式サイト](http://esenthel.com/‎
)を見るとUnityやUDKと同じようにレベルエディタ本位なゲームエンジンに見えるが、起動してプロジェクトを立ち上げるとアセット一覧とエディタ画面が開き、むしろゲームコードをゴリゴリ書く思想で作られていることが窺える。
そのプログラミング環境はC++と、C#をリスペクトした構文の独自のEsenthel Scriptの2つからなっている。

このコードエディタが一線を画しており、Esenthel Engineで実装されたコードエディタ上でVisual Assist X風のコード補完を最初から使うことができる。
UnityでもUnrealでも、コード環境を整えるために有料ソフトを買わなければならない現状を考えるとこれだけでも素晴らしい。
ただ、独自実装のエディタ環境のため、後述するマルチバイト文字非対応など欠点があるのも事実だ。

# [豊富過ぎるチュートリアル](http://qiita.com/yasei_no_otoko/items/7b65a3865538a3f636a5)
これだけでEsenthelを選ぶ価値があると言えるほど充実した100個以上のチュートリアルコードが付属している。
ウィンドウを出すだけのスケルトンコードから始まり、基本的なグラフィックス、入力、データ処理、ネットワークのサンプルコードがあり、しかも経路探索やゲームの3D空間から2D GUIへアイテムをドラッグアンドドロップして装備を変更するといったゲームプログラミング初心者が喉から手が出るほど知りたそうな事例まで付属チュートリアルに含まれている。

もちろん、FPSやMMO RPG、RTSやレースゲームと言ったサンプルゲームのプロジェクトファイルもチュートリアルとは別途用意されている。
いきなり初心者お断りの訳の分からん技術がてんこ盛りな<del>オナニー</del>サンプルゲームが立ち上がるUnityや、一面の青空が広がる床の上に箱が置いてあるだけのUDKに比べると死ぬほど親切である。死ぬほどという表現では足りないくらい、自分がプログラミングを始めた時に欲しかったようなチュートリアルがEsenthelには付属している。

UnityもUDKも最初のゲームを作るための入門書籍が何冊も書かれているが、Esenthelは仮に流行ってもそういう本が出せなさそうである。

# MMOが作れるレベルのネットワーク機能
ネットワーク機能が充実しており、MMO、ネットワークマルチプレイ、Webアップデートが標準機能で行える。
また、Esenthelのエディタ自体もEsenthel Engineと同じライブラリで実装されているためエディタ自体のネットワーク機能も強力で、なんとネットワーク越しに編集内容を同期できる。
[エンジンの比較表](http://www.esenthel.com/?id=compare)にコラボレーティブなレベルエディットが出来ると書いてあったが、本当に問題無く動くならUnityのシーン統合に苦労している身からすると誰がここまでやれと言った（歓喜）レベルの機能である。

なお、この同期機能はフル版のライセンスを購入しないと使えないので執筆時点ではまだ試用出来てはいない。

# 既に自作アセットを売る場がある
[公式ストア](http://www.esenthel.com/?id=store)でEsenthelのフル版や大規模なサンプルプロジェクトを買えるようになっているが、29ドルの売る権利を買うことで自分の作ったアセットを売ることが出来るようになっている。
ラインナップを見てみたが、これ…<del>もしかして作者本人だけでは…</del>
Unity Asset Storeのような気持ちで遊ぶには辛いが、出す側としてはライバルも居らず無双出来そう…？

* **追記(2013/12/09/18:52)：[先月オープンしたばかりでした](http://www.youtube.com/watch?v=YhyJh1P4MO8)**

# レンダリングエンジンがかなりガチ
199ドルという廉価なのでグラフィックはショボイんじゃないかと思われそうだし実際思ってたが、その質はかなりガチガチなDX11・OpenGL対応エンジンで、
[SMAA](http://www.iryoku.com/smaa/)というナウいアンチエイリアシング方式にまで対応している。
もちろんiOS/Android環境でそのスペックをフルに扱えるわけでは無いが、PCゲーム開発者には十分過ぎるクオリティのレンダラーが備わっている。

# Oculus Rift対応
Oculus Riftに既に対応しており、前述のチュートリアルにも含まれていてすぐに試す事が出来る。
ただ認識部分にまだ難があるらしく、手元の環境だと接続状態でもOculusを認識したりしなかったりした。

しかし、表示してみるとそのレンダリングクオリティの効果で非常に素晴らしいVR体験ができた。
Unityの場合、簡単なのはカメラを置く段階までで別途マルチサンプルアンチエイリアシングやフルスクリーンアンチエイリアシングを適用しなければ綺麗な線を表示できないが、
Esenthelの場合はSMAAやスーパーサンプリングアンチエイリアシングの効果で低解像度感が無い絵をいきなり表示する事が出来る。

# 触って分かった欠点
ここまでEsenthelの良い点を挙げてきたが、当然悪い所もある。以下にちょっと触っただけでも分かる欠点を挙げていく。

* エディタがマルチバイト文字に対応していない  
欧米製のエディタにありがちな問題だが、日本語の表示が出来ない。  
Windows版ではマルチバイト文字を入力すると？が表示され、日本語版Visual Studioを使っているとビルドログも化けてしまうし、Mac版ではMonoDevelopと同じくIMEが動作しない。  
日本向けのゲームを作るにはかなり致命的な欠点である。  
作者がポーランド人なので仕方ない部分もあるが…  

**追記(2013/12/11/13:40)：優先的に対応してくれることになりました＞[Roadmap](http://www.esenthel.com/community/showthread.php?tid=1507)**

* 情報が少ない  
何しろゲームエンジンの名前には詳しいつもりだった自分が一切知らなかったレベルなのでマイナーという言葉では足りないレベルである。  
Oculus Forumsの作者の投稿を見ると何と前世紀から14年間も開発を続けているらしい…（Unityは2005年）

あれ、数時間しか触っていないせいか思いつく欠点が全然無かったぞ…？

# 総評
ゲームエンジンに迷っている人は今すぐ触りましょう（小並感）
筆者は今年Unity Proを買ってしまったのでしばらくは本格的に触ることは無さそうだが、今後の発展が楽しみ過ぎるゲームエンジンだ。