PaperSloth’s diary

Unity(C#)、UE4(Blueprint/C++)についての記事を書いたり日常のことをつぶやきます。

LumberyardをUnity, UE4と比較(プログラミング編)

この記事はLumberyard Advent Calendar 2017の17日目の記事です。
Lumberyard Advent Calendar 2017 - Qiita

環境

Unity 5.6.x
Unreal Engine 4.18.1
Lumberyard 1.11.1.0


Unity

プログラミング初心者でもコンポーネントの付け替えで動きが作れるため初めてゲームを作るのに適していると感じる。
特に設計を考えるにあたっては勉強になる部分が多く初めてのオブジェクト思考にもってこいだと思う。

C#に特化することの最大のメリットはクライアント、サーバー、エディタ拡張まで同一言語で作成する環境が作れること。
サーバーまでC#でやるかどうかはプロジェクトや会社によって異なるだろうが、
同じ言語に統一することでクライアントサイドのプログラマーでも比較的サーバーサイドが理解できる。

アセットを買うことでノードベースのビジュアルスクリプトも使用できる。
ただし、これだけでゲームを完成させようとするよりは
Prefab単位でのキャラクターのチェックなど
アーティストがちょっと動きを試してみたりする程度に抑えるのが良さそう。


Unreal Engine4

みんな大好きC++が書ける。
と、言いたいところだがUnreal C++なのでガチガチのC++erには敬遠されている。
実際に使ってみると分かるように制約やルールが多い。それを守れば問題なく扱える。
寧ろ自前実装していた部分の大半を用意してくれているため、ゲームロジックの実装に注力できる。

もう一つ忘れてはいけないのがBlueprint
エンジンの大凡の機能にアクセスできるため、基本的にはBlueprintだけでゲームが作れる。
チームの構成やゲーム規模によるものの両方を上手く扱うのがベストな場合が多い。
もちろん好みや得手不得手もあるため、Unreal C++を強制する必要はない。

BlueprintでもUnreal C++でもエディターの拡張が可能なのが嬉しいところ。
また、一番の魅力はエンジンコードの閲覧、編集が可能なこと。
エンジン改造もプラグイン開発もC++, Unreal C++で比較的簡単に行える。


Lumberyard

Lua, ScriptCanvas, C++が選べる。

Lua:簡単なScriptの記述が中心。
コンポーネントとしてくっつけるのでUnityのC#に近いイメージ。
まだ試せていないがC++との連携も行えるようなので自由度は高そうだ。
入門記事はさらっと書いてみたので、興味があれば見ていただきたい。
papersloth.hatenablog.com


ScriptCanvas:CryEngineのFlowGraphが廃止され、1.11から導入された。
UE4のBlueprintほど多機能ではないが、これからの開発がどうなるか次第。
Lumberyard Advent Calendarで入門記事を書いてくださった方がいるので
興味がある方はこちらを見てもらいたい。
tachis.hatenablog.com


C++Unreal C++に比べると制約が少なく比較的自由に書ける。
f:id:PaperSloth:20171217184317p:plain
AZFrameworkでエンジン部分との連携を行いEBusでイベントの登録を行う。
Lumberyard側で用意したCastや文字列等覚えることは幾つかあるが
これはどのエンジンを使ってもエンジンのFrameworkを活用することになるので覚えてしまえば問題なさそうだ。
C++についても簡単な入門記事を書いたので、興味があれば見ていただきたい。
papersloth.hatenablog.com

LumberyardはUE4同様にエンジンコードへのアクセスが可能でライセンス的にも改変自体は問題がない。
LumberyardはLua, ScriptCanvas, C++の他にエンジンの一部にPython2.7も使用されている。
ScriptCanvasはLuaやC ++と同じフレームワークを利用しているため今後アクセス可能な機能がどんどん増えると思われる。


まとめ

Lumberyardでちょっと動きを試してみたいという人はScriptCanvasが良さそう。
Luaに触れた経験があって得意だという人はもちろんLuaがオススメだ。

C++上記2つに比べるとエンジンとの連携部分の記述等の準備が少し面倒に感じた。
しかし、エンジンを上手く活用するためには決して避けて通れないだろう。

ScriptCanvasはBlueprintと比較するとまだまだ機能が足りず
LuaはUnity C#ほどの自由度はない。
しかし、UnityやUE4と比較して純粋なC++が書きやすいという環境を好む人も多いだろう。

Lumberyardは1.12が公開され、2018年の開発に本腰を入れるようなので
公開されて新しいScriptCanvasの成長には特に期待している。