実際、UE4の頃からたまに触ってはいた。
3ヶ月~半年に1回くらいの割合。
でも、当時はUnityにハマっていたのと、UEエディターの見た目やフォントが好きじゃなくてすぐにやめてばかりだった。
なので、まともにUEを触り始めたのはここ1ヶ月くらいのことである。
元々C++が好きだったのもあって、ちょっと本腰入れて使おうという感じだ。
使い始めた時は、UE特有の分かりにくいエラーメッセージと仕様にイライラしていたものの、それはUEのお茶目な所だと割り切ったら案外乗り越えることが出来た。
ライブコーディングも、昔に比べてかなり安定したなと思った。
以前使った時は、コンパイルしてもBP側に反映されなかったり、頻繁にクラッシュしたりなど散々な思い出があったため、そういう意味でもUEへの信頼度は低かった。
エディターの都合で開発が滞るくらいなら、コードベースで、そういう所が安定しているUnityの方が良いじゃんと思っていたものだ。
今でもUnityは良いツールだと思う。
まぁ、最近はあまり触れてないのであくまでもイメージではあるが、そもそもC#が便利だし、実行速度的に考えても昨今のマシンパワーを考えればそこまでネックになるケースは多くないと思う。
業務でゲームを作っているか、趣味にしても余程製品として完成度の高いゲームを作るでもない限り、大抵の人はUnity+C#で良くね?ってなると思う。
それに、UEの扱いもかなり慣れてきたと言いつつも、エラーが起きた時に出力されるメッセージの90%くらいは原因の特定にほぼ役に立っていない。
問題の現象を報告してるだけで、解決策に繋がる要素がほぼないエラーメッセージだと思う。
なので、原因の特定や問題の切り分けに関してある程度経験値がある人じゃないと、UEで最後まで開発しきるのはかなりしんどい気がする。
ウェブ上に落ちている解説記事やドキュメント等の情報量を鑑みても、ガチプロジェクトとして開発するでもない限り、大抵はUnityの方が良いんじゃないかと思う。
とにかく、UEは仕様やトラブルシューティングに関する情報がマジで足らないと思う。
まぁ、多ければ良いってもんでもないと言うか、ひとまず僕個人としては情報量に関してそこまで困ってはないものの、やっぱUEって初心者にはしんどい環境だよなと思わざるを得ない。
たまにUEのC++に関して、ガチ初歩的な仕様をたまに調べるのだが、そこでヒットするフォーラムの質問とその返答を見ていると、聞く方もどうやって聞いたら良いか分かってなさそうだし、答える方も答えの幅が広すぎて答えあぐねてるような印象を受ける時がある。
というのも、UEはそもそもBPとC++という2つの手段がある上に、両方で出来ることが表面的にはあまり変わらないので、実装に関するベストプラクティスなどの選択肢が他の開発環境に比べて多い(と思う)。
C++だけで見ても、BPへAPIを公開したり、BPと連携を取ることを考えた時に、その適切な手段というのが結局プロジェクトの傾向に左右される側面が強いので、単純に「これ意図した通りに動かないんですけどどうしたらいいですか?」と聞かれた時にとても答えづらい(気がする)。
これはあくまでも僕が持つ印象でしかないが、やはりフォーラム等でそういうのを見ると僕の持つ印象はあながち間違ってないと思う。
なにはともあれ、でも僕としてはじゃあUnityとUEどちらで開発しますか?と聞かれたらUEを第一候補に考えると思う。
プロジェクトの目的や期間、規模など、考慮すべき点はたくさんあるが、そういうの抜きにして印象論としてどっちのゲームエンジンを選ぶかで言ったらUEになる。
それには、文章化出来る理由はいくつかある。
まず、冒頭でも言った通りC++が好きだから。
また、僕は設計を考えるのが好きで、C++は設計を考えるのが楽しい言語だと思ってるからというのがある。
柔軟だが堅牢で、実行速度も優れている。
別にC++erを名乗れるほど精通しているわけではないが、それでもC++は他の言語に比べて肌に合う。
もう一つの理由としては、エンジンの傾向の問題だ。
今のUnityがどうなのかは知らない、という前提で話すが、Unityに対する印象としては「更地にクリエイターが街を作る」という感じがある。
機能は豊富に用意されている上で、まずは必要最小限の状態からスタートしてクリエイターが豊富な機能の中から自分の作りたいものに合わせて適切にパーツを選択し、組み上げ、一つの作品を作り上げていくというイメージがある。
対してUEは、始めから大ボリュームな街を与えられ、そこから自分が目指す作品になるように切り崩したり、必要に応じて補充したりするというイメージだ。
いずれにせよゲーム開発そのもののノウハウはそれなりに必要になるが、どっちをスタート地点にしたいかによって使うべきエンジンは変わると思う。
個人的には、Unityからゲーム開発を学んでいって正解だったと思ってるが、多分慣れの問題なので好みやプロジェクトの傾向に合わせて選択して良いと思う。
最終的に、ゲームが形になってからはどちらもそんなに変わらないと思う。
どちらもデバッグツールは優秀だし、機能も充実していて、アセットもある。
強いて言うならUnityのアセットストア最強だと思ってるが、これもやっぱりゲームが形になってからは大した問題ではない。
個人開発なら、そこの違いは大きく出そうだが、うーむ、まぁプロジェクト次第でしょう。
という感じで、一応UnityもUEも必要十分に触った者の所感として備忘録を書いたが、書いてて思ったが、やっぱ初心者はUnityが良いと思う。
アセットストアの存在とドキュメントの豊富さ、あとC#がプログラミングの学習に向いてるという点を考え、おすすめするのはUnityという感じ。
でも、UEはUEで、今現時点で僕はUEを好んで使ってるという感じで、他の開発環境でやりたくないと思うくらいにはUEは良いツールだと思ってるところなので、甲乙つけ難いとはこのことか。
UEにあえて不満を言うとしたら、定期的にVSのプロジェクトをGenerateし直さないといけないエラーが出たり等、とにかくエンジン都合の問題をユーザーが解決することが求められる機会が多くて辟易する。
難しいことをしてるわけではなく、ゲーム開発における妥当なトライアンドエラーをしてるだけでもそこそこの頻度でそういう問題が起こってしまう。
まぁ素人からしてみても、エディターやBP、C++の相互作用を構築するのムズいんだろうなとは思うが、こういう細かいエラーがデカいストレスになるので頑張ってほしいと思う。
ということで感想文でした。
(ΦωΦ)