個人でゲーム開発をしようとしている方なら最初にぶち当たるであろうどのゲームエンジンを使うか問題
、特にUnrealEngineを使うべきかUnityを使うべきか問題があると思いますが、遂にその問題に決着をつけさせます。
といっても私自身ゲーム開発の素人ですから、偉そうに教えるとかではなく、私自身はこのように考えてゲームエンジンを選びましたというのを紹介しようと思います。
開発しているゲームはモバイルゲームではなく、PCゲームでゆくゆくはSteamにリリースしようかと思っています。
同じゲーム開発素人の方は参考になるかと思います。
あくまで内容は全て私の個人的見解であるため、事実と相違がある場合があるかもしれませんが、ご了承ください。
UnrealEngineとは
EpicGamesが開発したゲームエンジンで無料で使用できます。(収入が年間100万ドルを超えるまで無料)
高度なグラフィックを簡単に表現できるということで人気を博しています。
ブループリントと呼ばれるノーコードプログラミングでゲームを開発できる他、C++を使って開発も出来ます。
ほとんどの処理はブループリントで実装できるそうですが、複雑だったり難しい処理の場合はC++を使う必要があるそうです。
個人的な感想になりますが、ノーコードだからってブループリントが簡単とは限りません。ブループリントを学習するのにもそこそこコストがかかります。さらにコードの場合はネットからコピペしたり、ChatGPTなどのAIにコードを書かせたりできるので個人的にはコードの方が簡単かなと思います。ただし、AIが書いたコードの間違っている所を修正したり、カスタマイズができるぐらいの知識は必要になります。自分の場合はもともとエンジニアをしているのでコードに拒否感がないというのがあります。ブループリントでもAIを活用することはできると思いますが、やはり、コードの方がAIが活躍しやすいです。しかし、ブループリントにはバグが少ないという利点があります。
エディタがとても重く高性能なPCが必要ですが、設定を落とせば私の低スぺPCでも何とか動きました。
エディタの使い方が少し難しく、学習コストは高くなるでしょう。要は初心者には難しいです。
わからないことがあった場合、調べても情報がなかったり、情報があったとしても同じ様には動作しないといったことがありました。
それでも高度なグラフィックが必要になるゲームやマップやシステムの規模が大きいゲームを作るときにはUnrealEngineが採用される例が多いです。
アセットに関してはFabと呼ばれるストアで買うことができます。
無料でしかも質の高いアセットがたくさん揃っています。その他にも毎月、いくつか数万円するような有料アセットが無料で配布されていますが、それはどんどん縮小傾向にあります。数年前はひと月で15個も配られたりしていましたが、執筆中の現在は3個のみです。
無料で有料アセットが配られているのでUnrealEngineを使うつもりがなくてもいつか使うかもしれませんので、とりあえず貰っておくことをお勧めします。
代表作としてはFortnaiteやvalorant、ファイナルファンタジー、ドラゴンクエストなどがあります。
Unityとは
Unityも同じく使用料は基本無料で年間20万ドル以上の収入がある場合に課金が必要となります。
UnrealEngineよりも早く個人開発者にゲームエンジンとして使われ続け、UnrealEngineよりもコミュニティは大きいです。
わからないことがあった場合、Unityの場合は大体調べればなんとかなります。
比較的軽く、エディタもシンプルで使い方が容易に学習できるゲームエンジンのため多くの個人開発者にとっては入門しやすいゲームエンジンでしょう。要は初心者向けです。
近年、グラフィックも良くなってきたため個人開発者なら十分なグラフィックを表現できるでしょう。
それでもUnrealEngineと比べるとグラフィックは劣っていますし、UnrealEngineは簡単に高度なグラフィックを表現できるのに対し、Unityはグラフィックの設定が予想以上に複雑でした。
UnityがUnrealEngineを圧倒している分野はモバイルゲームです。その他にはVR、ARゲームもUnity製のものがほとんどです。
理由としてはモバイルゲームは高度なグラフィックや大規模なシステム、マップが必要ないため、学習コストの少ないUnityが採用されやすいのだと個人的には思います。
モバイルゲームやVR、ARゲームをつくるならUnity一択となるでしょう。
UnityではUnity asset storeでアセットを買うことができます。このアセットストアでも毎週無料アセットが配られています。こちらもUnityを使ってなくてもいつか使うかもしれませんので、貰っておくことをお勧めします。
コミュニティが大きいだけあってアセットの種類や数もFabに比べて豊富な印象です。さらに定期的にセールを実施しており、まとめ買いで98%offという驚異的なセールになったりすることもあり、お得にアセットが手に入ります。
Unityの代表作はポケモンGO、fallguys、原神、ウマ娘などです。
結論から言うと私はUnityをお勧めします。
実際に二つとも触ってみた結果私はUnityを選びました。
別にUnityの強みであるモバイルゲームではなく、そこそこリアルなグラフィックのPCゲームを開発してもなおUnityを選びました。
その理由を下記に記します。
ハイスぺックPCをもっていない。
UnrealEngineは高いマシンスペックが求められます。設定を落とせば低スぺPCでも何とか動きましたが、いちいち固まるので開発速度がかなり遅くなると思います。
Unityは比較的軽量であるため、低スペックPCでも動きます。
しかし、もし予算を多くとれるならUnrealEngineを使うにしてもUnityを使うにしても予算の許す限りのハイスペックPCをお勧めします。
UnrealEngineは難しく、Unityは簡単だった。
エディタの使用方法などがUnrealEngineは難しく感じて、Unityは比較的簡単に感じました。UnrealEngineを使うとなると学習するのにかなり時間がかかるかと思います。
本業があってあまり開発に時間をとれない方にはUnityが向いています。
先述のようにUnrealEngineはノーコードプログラミングのブループリントでプログラムできますが、普通に難しかったです。
最近の理系学生はプログラミングを習っているらしいので、あまり、プログラミングに抵抗感がある方は少なくなってきてるのではと思います。
少しでもプログラミングを経験したことある方はブループリントではなく、コードで開発したほうが学習コストが少ないのでは?と感じました。
コードならネットからコピペもできますし、ChatGPTのようなAIにコードを書かせることも出来ます。
ブループリントを使う利点としてはバグが少ないだけだと個人的には考えています。
UnrealEngineはブループリントでプログラミングができるから簡単という人もいますが、Unityの方が簡単だと思います。
全体的に見てUnrealEngineよりかはUnityの方が簡単というだけで、全てがUnityの方が簡単というわけではなく、ものによります。例えばライティングの設定とかはUnityの方が難しかったです。
ただし、何回も申し上げますが、これは個人的な感想でして、ブループリントが合う、合わないは人それぞれだと思います。
Unityの方がコミュニティが大きい
私のようなゲーム開発素人はとにかく、調べながら開発します。そうなるとネットに多くの情報がのっていないと手も足もでない状況になります。
Unityではわからないことがあればとりあえず情報がでてきます。もちろん無いこともありますが。
UnrealEngineの場合は情報がとにかく少ないです。あったとしても同じことしても上手く動きませんでした。その理由としてはバージョンの違いなどがあると思います。
とはいってもUnrealEngineの公式の情報はかなり充実していますが、素人からすると公式の情報はなんかわかりにくいです。
量も多いので目当ての情報を探すのに結構苦労します。
同じ開発者目線でさらに自分の知りたい情報にスポットライトがあたったネットのの記事があった方がいいのです。
知りたい情報はエディタの使いかたの情報だけではなく、それぞれアセットの使い方の情報も知りたいです。
そうなるとUnrealEngineとUnityでの情報量の格差はさらに広がります。
UnrealEngineの場合は英語しか情報がありませんし、ドキュメント(文書)がないなんてこともざらです。YouTubeにちょっとデモシーンを投稿している程度で詳しい使い方は紹介されていなく、さらに動画なので翻訳も難しです。独学でアセットの使い方を学ばないといけないということが多かったです。
Unityの場合も基本的に英語になりますが、中には日本語の情報も見られるのでやはり、Unityの方が使いやすいでしょう。
アセットの充実度、値段の安さ
一番の決めてとなったのはこれです。
アセットはゲームを開発する上で一番重要な要素だと思っております。
無料アセットがあるなら無料アセットを使って、ないものは自分で作ればいいと考える人もいるかもしれませんが、それが出来るのは一部の天才だけです。やはり、無料アセットでできるものは限られています。
数年前にUnityで無料アセットのみを使ってゲームを開発しましたが、かなりの駄作となりました。さらに自分で3Dモデルなどのアセットを作ろうとすると1ヶ月とかかかったりしますが、アセットを買えば数千円です。
それはUnrealEngineにおいても言えることです。とても質の高い無料アセットが揃っていますが、それだけでゲームをつくることは難しいです。逆に質の高いアセットに合わせて質の高いアセットを多く用意しないと、ゲーム性がちぐはぐになりやはり駄作になることでしょう。
どういうことかというと無料アセットで森林や洞窟などの環境のアセットを使うとします。そうするとそれに合わせたキャラクターやオブジェクト諸々が必要になってきます。無料アセットだけでそれら全てを揃えることは難しいです。毎月無料で配られる有料アセットを使っても同じです。
赤字は出したくないので開発費用は一切かけたくないという気持ちはわからないでもないですが、私のような素人は他人様がつくってくれたアセットを買わないと世に出せるような完成度のゲームはつくれません。私だけではなく、多くの方がそうだと思います。
別に世に出すつもりがない完全な趣味なら、話は別ですが。
とにかく、ゲームを開発するにはアセットを買わないといけません。かといってアセットにじゃんじゃん金を使えと言ってるわけではありません。
ゲームが売れるかどうかもわかりませんし、なるべく安く抑えたいです。予算としては数千円~数万円です。
そうなると先述したようにアセットをお得に買うことができるのはUnity asset storeです。
アセットの充実度に関しては若干Unityの方が勝るかなという感じですが、アセットの安さに関しては圧倒的にUnityです。
普通に買う分にはUnityもUnrealEngineもそこまで値段が変わりませんが、Unityの場合はセールの多さと割引率が圧倒的です。
不定期で販売されるバンドル(複数のアセットをまとめ買い)するとなんと割引率が98%という驚異的なセールがあったりします。単体の割引率でも92%のものも見たことがあります。
ただし、かならずしも自分のほしいアセットがセールとなるわけではありません。なので、安いアセットからどういうゲームを作るか考えないといけません。それでも無料アセットだけで作るよりか大分作りやすいと思います。
また、Unity asset storeで入手したアセットをUnrealEngineに使用することは可能です。その逆も可能です。もちろん3DモデルといったもののみでUnityの機能を使ったツール系のアセットは不可能です。
しかし、実際に移植をしようとしたところ中々上手くいきません。外部ツールを何個も使ってなんとかできたといった感じでかなり難しかったです。
素人がアセットを何も買わずにゲームをつくるなんてことはかなり難しいです。そうなるとアセットをお得に入手できるUnityが多くの人にとって向いていると言えるでしょう。UnrealEngineとで倍以上に値段が変わってくると思います。
もし、予算が滅茶苦茶あるという方はUnrealEngineがいいかもしれません。アセットの品質の良さはUnrealEngineの方が若干上かなと感じました。
どうしてもお金をかけたくないかつ、ハイスペックPCを持っているという方もUnrealEngineをお勧めします。無料アセットの量と品質の良さもUnrealEngineの方が上かなと感じました。
以上UnrealEngineとUnityどちらを使うべきか自分なりの考えを書いてみましたので参考になればと思います。