UnityエンジニアがUnreal Engine入門してみて感じた思想の違い

可燃性が高い記事なので、長めに前提と注意を書きます。
Unreal Engineは、以下UEと略します。

前提と注意

  • 総合的にどちらが優れているか、みたいな話はしません。
  • それぞれのゲームエンジンの思想については公式が言及しているものではなく、個人の感想です。
  • この記事にはsimpleとeasyという言葉がでてきます。こちらのスライドをご覧ください。
  • グラフィックの話はしません。
  • AAAゲームの話もしません。開発チームが10人以下の小規模開発を想定しています。
    • そのため、UE本体(エンジン)のコードに手を入れるのも最終手段として考えています。実際みんなどれだけ手を入れているのだろう?
  • Unityエンジニアの視点から、Unityエンジニアに向けて書かれています。
  • 筆者のUnity歴は10年ぐらい。スマホ向けのソシャゲ、MMO、コンソール向けのパーティゲームなどを作った経験あり。
  • 今回入門したのはUE5です。UE4との違いは知りません。
  • まだ入門して1週間ぐらい、マジの初心者です。
  • 今後UE触って気持ちが変わったら、しれっと書き換えたりします。
  • 何か間違い等あれば、こっそりXで教えてください。
  • このあたりで適当なことを書いて文字数を稼ぎます。
    画面をスクロールせずに内容が目に入ってしまうと、
    注意書きを読み飛ばしてしまう人がいるだろうと思ったからです。
    そのため、このように、
    無駄な改行も活用します。

これだけ長々と書いておけば、8割はブラウザバックしたことでしょう。
可燃性の高い記事を書く準備が整いました。

はじまり

本題

さっそく結論、

Unreal Engineはsimpleではなくeasyである。

うーん、伝わりにくいかも。
誤解を恐れず言うなら、

Unreal Engineは「(FPS|TPS|3Dアクションゲーム)ツクール」である。

RPGツクールとは

突然ですがRPGツクールって触ったことありますか?(最近RPG MAKERに改名されました。)
名前が非常に良いですよね。RPGを作るのに特化したゲームエンジンです。
RPGを作るのに必要な機能は全て揃っていて、その中で完結するものなら簡単(easy)に作れます。
ですが、青鬼などが有名なように、RPG以外も作れます。ちょっと大変だけど。

UEとは

で、UEもFPS/TPS/3Dアクションゲームを作るのに特化したゲームエンジンだなと感じました。
FPSを作るのに必要な機能は全て揃っていて、その中で完結するものなら簡単(easy)に作れます。
ですが、もちろん、それ以外のジャンルも作れます。ちょっと大変だけど。

Unityとは

比較のため、Unityについても触れます。
UEと比べるとUnityはsimpleです。
今までUnityを使ってゲームを作ってきた身として言わせてもらうと、
Unity自体にはゲーム制作に必要な機能は揃っておらず、拡張する口が準備してあるだけです。
欲しい機能は、公式パッケージを探す、AssetStoreで探す、自分で実装するなりしてください。ということ。
だからこそ、どんなゲームジャンルのゲームも作れる。というイメージです。

つまり?

過去に色んなUnityプロジェクトを見てきましたが、Unityは本当にプロジェクトごとに使い方が違います。
(Unity単体も意外と出来る子だぞ、みんなもっと素直に使ってくれ。)
UEには最初からマルチプレイの仕組みマスターデータを扱う仕組みローカライズ機能3Dシーンの敵の上にUIを出す仕組みもあります。
もちろん、この機能で不十分なら自作することもあるでしょうが、とりあえず最初に試せるものが揃ってます。
この「最初の選択を迷わなくて良い」という点がeasyなのです。

まとめ

正直、自分で触ってみるまでは、UEの方がsimpleなゲームエンジンだろうと思ってました。
だって、みんなすぐEngineのコードに手を入れたとか言うし、
Fortniteキングダムハーツ3ピクミン4も同じエンジンで動いてる?
そんなバカな。simpleだから拡張性が高いんだろうな〜と思っていたからです。
(実際この規模だと相当エンジンに手を入れてそうですが。)

この記事読んで、UEも気になる〜と思った方はちょっと触ってみても良いのではないでしょうか。無料だし。
そして、実際に触ってみて、この記事に共感できたのか、そうじゃないのか、ぜひXとかで教えてください。
一番下に、自分が入門に使った情報源をまとめてるので参考にどうぞ。

あとがき

UE入門から1週間でこの記事書いてます。
UE有識者の方々も、ぜひご意見聞かせてください。

雑記

以下、他に思ったことをつらつらと書いてます。
オチはありません。

エンジンコードについて

これだけは早めに書いておかないと。

初めに紹介したスライドにも「easyばかり求めているとhardになる」という言葉がある通り、
「easyな選択をして、今後の開発ずっとやっていけるか?」というのが気になります。

その点、UEのメリットとして「ゲームエンジンのソースコードにアクセスできる」というのは非常に大きいです。
「いざとなればエンジンのコード変えればどうにでもなる」という安心感。
これがあるから大企業も採用しやすいんだろうな〜と思います。
(大企業では「いざとなれば」ではなく、最初から手をいれる前提だとは思いますが。)

ちなみに、既にエンジンビルドを体験したのですが、
手順通りに行うだけで難しいことは無かったです。
C++経験者なら、エンジンビルドにビビらないでオッケー。

え、Unityもソースコードにアクセスできるって?
なんども検討したんですが、(文章はここで途切れている)

疑問

少人数開発なら、素早く開発できるeasyな方(UE)が良いし、
大規模開発なら、なんでもカスタマイズできるsimpleな方(Unity)が良いのでは?
なぜ、個人開発ではUnityが流行っていて、企業ではUEが流行ってるんだ?

もちろん、ランタイムのパフォーマンスの違いや、日本語の情報量の違い、
個人制作でFPS/TPSを作る人は意外と少ない(要出典)など色んな要因が考えられますが、
直感に反していて謎だなと思ってます。

Unityの公式パッケージ

「いやいや、Unityも公式ローカライズパッケージとか、公式パッケージ充実してきましたよ!」
ごもっともです。

例えば、同じくBoltもといVisualScriptingも公式になりましたよね。
ですが、VisualScriptingからLocalizeが呼べない、これがsimple(パッケージに分かれて管理されている)が故のデメリットなんですよね・・・。
(だからといって、Unity IAPにUnity Analytics依存はいれないでください!!!

UE、重くない?(ランタイム編)

ちゃんとパフォーマンス見たわけではないのですが、
FortniteLife is Strangeもスマホで動いてるし、
最近のスマホなら割と動くのでは?と思ってます。
当たり前ながら、LumenとかNaniteとか使えないけど。

「俺はスマホのバッテリーを気にした、めちゃくちゃ軽いゲームを作りたいんだ!」というなら、
UEは綺麗な描画のために無駄に演算とか走っちゃってそうって気持ち、わかります。

実際のところ、モバイル向けの性能/描画ってどんな感じなんですか?有識者求む。
Infinity Bladeみたいなモバイル特化のプロジェクト、もう新作は作らないのかなー

UE、重くない?(エディター編)

時間の流れによって、
自分のPCが早くなったのか、Unityが遅くなったのか、
Unityと比較したら重いけど、別にまあそんなもんか。ぐらいで動くようになっていた。
Unityよりは重い。Unityよりは重いぞ!

ちなみに、自分はM1MaxのMacBookProで作業していて、
モバイル向けゲームで描画Lowにすると余裕で60FPS、
AAAタイトル向けっぽいサンプルは流石に10FPSぐらい、みたいな感じでした。

もうちょっと軽くならないか、色々オプションをいじってる最中。

UEに準備されている機能、実用に耐えるの?

これは実際に使っている有識者の声を聞きたいところなんですが、
Epicって何が偉いって自分でゲーム作ってるんですよね。
そこで使ってるという信頼感、強いですよね。

他気になってること。

  • すぐ差分をバイナリで出してくる。
  • 何でも入ってるから、何もしてなくてもビルドサイズがデカめ。

おまけ

入門に使った情報