fc2ブログ

ゲームエンジンを変えてきた思い出

ゲーム制作にかかわる人が自由な記事を作る Advent Calendar 2022

18日の記事です。

去年はゲームの感想を貰えない人はアンケートを取ろうという記事を書きました。
去年の記事

●はじめに
みなさんは何のゲームエンジンを使っていますか?
今まで何回ゲームエンジンを乗り換えてきましたか?

ということで、私が今まで使ってきたゲームエンジンの振り返りと、使ってるゲームエンジンを乗り換える時に調べたあれこれについて書きます

最新エンジンの比較記事とかではなくポエム寄りなので、ゲームエンジン選定の役に立つ情報かというと微妙ですが、何かの参考になれば幸いです。

●なんで世の中にはゲームエンジンがこんなにいっぱいあるのか?
世の中には多くのゲームエンジンがあります
・社内用のゲームエンジン公開したら思いのほか好評でそれがメイン事業になった
・各ジャンルに特化したエンジンの方が汎用エンジンより使いやすいし習得しやすい
・特定のプログラミング言語で開発したい
・ゲームエンジンを作るのが楽しい
・ライセンス料的に自作した方が安くつく
などなどゲームエンジンの数だけ開発されてきた歴史があります。

●なんで一部のゲームエンジンのシェア率が突出して高いのか?
現在ではUnityとUnrealengineの使用率が突出して高く2大ゲームエンジンとか呼ばれてます
※参考
【最強ゲームエンジン】シェア率ランキング1位はUnityで決定!

上の記事は企業でとったアンケートっぽいのでインディーや個人開発者だともっとUnityが優勢な気はします

この2つが覇権を握った理由は諸説ありますが、以下のような理由が考えられます
・企業が金をかけて作ってるので周辺ツール含めて色々完成度が高い
・コミュニティがでかくて、一般開発者のアセットが充実してエコシステムが構築されている、ググれば色々解決するし書籍などの情報も多い
・複雑なツールの割には習得難易度が低め
・基本無料で使えるし、プロ用のライセンス料もそれ程高くない
・マルチプラットフォーム対応完備で、動作テストも楽
・習得してる人が多いのでプロジェクトに人を集めやすいし人員に替えが効きやすい
・Unity製やUnrealEngine製で大ヒットしたゲームの例が多いのでなんか安心感がある
などなど利用者が増えるとさらに利用者が増えて現在に至ったという感じ。

 新規エンジンがこの先生きのこる道はあるのだろうかというと、Godotのようにライセンス料不要でOSSのエンジンが台頭するかもしれませんし、特定ジャンルに特化して習得難易度が低くて使いやすいコードあんまり書かない系のツールなんかはまだまだ隙間はあるかなとは思います。

●今まで使ってきた開発言語とゲームエンジンとツール
・シューティングツクール98
・HSP
・DXライブラリ
・SDLをラップした自作C++ライブラリ
・Unity
・MonoGameをラップした自作C#ライブラリ
 何か作って人に見せる所まで使ったゲームエンジンは6個

 ゲームエンジンじゃなくてフレームワークとかライブラリだろ!みたいな事は、あまり深く考えない

 こうしてみると色々使ってきたなと思います、エンジンは変わってますがVisualStudioは長いこと使い続けてますね。

●シューティングツクール98
中学の部室の古いパソコンに入っていたソフト
名前の通りシューティングゲーム制作に特化したツールです。98は年度ではなく、PC-98の98。
あんまり良く覚えていないがドット絵から全部自作して作ったので大変だった、初制作のゲームでちゃんと完成までいったのでえらいと思う。

初めてのゲーム制作がツクールシリーズって人は多そう、ツクールシリーズは主に国内でよく使われてる印象があります、次のRPGツクール(名前は変わるらしい)はUnityのプラグインとして出るそうですね、やはり時代はUnityなのか

●HSP
大学に入ってPCを買って貰ったので、何かゲーム作りたいとなった時にググったら
「CやC++などのプログラミング言語は難しくて挫折する、HSPは簡単で初心者向けだから良い、ゲームジャンルはシューティングが簡単だからおすすめ」みたいな言説を見かけて鵜呑みにして使った国産のスクリプト言語
現代だと同じような言説をUnityで見かけるので、生まれた時期が違ったらUnityを使ってナントカサバイバーを作ることになっていたかもしれない

文法は良くも悪くも非常に簡単で開発環境も統合されてて面倒な設定もなくダウンロードするだけだったし、国産なのでドキュメントもしっかりしているなど、実際に初心者向けに良く出来ていると思う

 なんやかんやでゲームは完成しコンテストでも受賞したしPCフリゲダウンロードサイト大手のVectorでもレビューで取り上げられるなどした
 当時としては珍しくスタミナ性とログインボーナスを入れていた事が評価されたりされなかったりした

 当時のPCのスペックだとHSPは処理が重くて半透明処理を多用したりすると処理落ちしたりで困る事もあったのと、就職活動の事とか考えるとC言語とかでゲーム作った方が良いかなという事でHSPでの制作は一作で終わりとなった

●DXライブラリ
 STG、マスコン、TD、経営SLGと4作も作って一番長く使ったゲームエンジン
「DirectXなどを自分で扱うのは難しいけどそういう事を考えずに使えて簡単なのでおすすめ」みたいな評判を見かけて使用する事にした
 評判通りで一応C++のライブラリなんだけどCっぽいライブラリで、HSPとあんまり関数の使い方とかも変わらなかったのですんなり移行できた、最初からDXライブラリで良かったのではとも思った
 クラス?オブジェクト指向?何それ?の独学でHSPと同じ手続き型のコードを書いてゲーム作っていたが、だんだん作るゲームが複雑になるにつれとうとう四作目でコードが破綻して、修正できないバグが山積みになったりした
 それを機にクラスやオブジェクト指向プログラミングについて勉強しなおしたりしました

 良いライブラリだしサポートも続いていますが、C言語っぽい手続き型の関数をそのまま使うのは色々辛い所があったりUnityの台頭でシェアは減少傾向らしい、国産同人2Dゲームでは結構使われていた印象があります、ウディタ本体に使われていたりする

 C++ゲームプログラムの基礎から学習したいけどDirectXやVulcanやOpenGLを触りたくない人はSiv3Dとかと選択して使う感じになるかなと思います

●SDL2をラップした自作C++ライブラリ
 そんなこんなで色々プログラミングの勉強をした結果、DXライブラリの関数をラップしてクラスライブラリ作れば多くの問題は改善されるしそれぐらいなら大した手間でもないじゃんとなり三日ぐらいでDXライブラリのC++ラッパーライブラリを作りました
 ゲームエンジンは自作するなとかオレオレライブラリ作るなとか良く言われますが、中間レイヤーのライブラリをラップして使うぐらいなら労力もそれ程かからないし勉強になるし自作欲も満たされて丁度良いかと思います
 ただ当時のDXライブラリはスマホとかに対応していなかったので(現在は対応済み)何か別のライブラリないかなと探した所見つけたのがSDLというライブラリだった
 当時の選択肢としては他にCocos2dxがあったがPC向けの情報が少なく、Unityはまだ2D対応が全然だったりな感じでした

 SDLはマルチプラットフォームに対応していて、欲しい機能は一通りあって、ドキュメントは英語ですが利用者も結構いて開発も安定しており、これも一週間ぐらいでクラスライブラリ作ったりしました
 結局スマホ向けのゲームは一作も作る事がなかったのでDXライブラリをラップした最初のやつで十分だったので、技術選定ミスった感はあります

 一応ドキュメント整備してオープンソースソフトウェアにしてみたんですが利用者は自分以外ほぼほぼいなかったのと、作ったゲームが面白くならなかったりしてサンプルと作りかけのゲーム2本を作った段階でこのライブラリは捨てる事になりました、結果ゲームは出せなかったけど技術的には得るものが大きかったと思うが、色々失敗した感は否めない

 作ったライブラリの特徴としてはどうせほぼ自分しか使わないからということで、引数を全部日本語にしてみたという所があります
 ドキュメントコメント書かなくなってよくなったし、識別子を日本語にするのはいまでもやってます、こういう事をやれるのが自作ライブラリの強味でもある

 SDLはラップして使うのが前提って感じで、マイナーなプログラミング言語で開発したいけど良いのが無い場合やゲームエンジンを作りたい場合は候補になります

●Unity
 ゲーム制作者なら大体の人が知ってるエンジン、ゲーム制作者以外でも起動時のロゴで知ってる人も多そう
 前から気になっていたし2D対応も大分進歩したと聞き一回触ってみるかと思って簡単なモックを作って公開するところまでやりました
 他の候補としてはUnrealEngineは2D微妙と聞いてやめて、Godotは良さげだけども情報がUnityに比べて少なかったのでやめました

 良かった所は
・Unity側で実装されてる部分はググれば自分で実装しなくても良いから楽だった
・Webアプリとして公開をするのが楽だった

 不満に思った所は
・2D専用エンジンではないので使わない機能も多くて、調べないと分からない事も多い
・UnityのエディタとVisualStudioを行ったり来たりするのが面倒
・ホットリロードを有効化するのが大変
・ロゴが出る分起動が遅いが、ロゴを消すのが有料

 いまいち自分には合わなかったので本格的に使うのはやめました、なんかガリガリコード書いてゲーム作るのが好きなのかもしれないのと、2Dドット絵ゲームしか作らないならベストってわけでも無さそうだった

 シェアNO1のエンジンなので多くの人にとって最適なエンジンのはず、触ったこと無い人は一回触ってみるのもおすすめ、よくわからなくて挫折してもそれはそれで良い
 今後もシェアを伸ばすのか他エンジンにシェアを奪われるのか株価はどうなっていくのかなども気になりますね

●MonoGameをラップした自作C#ライブラリ
 Unityの使用を検討してる間にVisualStudioがアップデートされてホットリロードが正式に使えるようになりました
 ホットリロードは実行中に再コンパイルして実行したまま変更を適用するやつで、あるのとないのとでは開発効率が全然変わってくる神機能

 試しにSDLのC++ラッパーライブラリでホットリロードを使えるか試した所、何故か上手くいかなかったのでせっかくだし何か別の良いライブラリがないか探して見つけたのがMonogameというC#のライブラリでした

 MonogameはMicrosoftが作っていたXNAというライブラリの互換ライブラリで、Monogameの日本語情報は少ないけどXNAの情報はいくらかあったし英語の情報ならそこそこ拾えたので自分が使う2D部分の機能をラップして使いやすくするぐらいはすぐできました

 もともとC#は仕事で使っていてある程度書けましたし、C++よりVisualStudioのインテリセンスの対応が良いし、ビルドが早いし、コンパイルする前にエラーが出るし、メモリ管理も楽など言語を変えるメリットの方が大きかったです
 文法とか言語機能のレベルだとC++とC#は一長一短ですけどVisualStudio含めて考えた使いやすさはC#が大分優れているなという印象で乗り換えて良かったかなと思います

 そんなこんなで今はこのライブラリでゲームを作っています
 そろそろエンジン変えるのもこれで一旦落ち着きたいが、機能が最小限にも程がある状態なのでそこを不満に思ったらまた変える事になるかも、次触るとしたらGodotか、Unityをもう一回触るかのどちらかかな?

 MonogameはXNAを使ってた人向けのライブラリって感じです、機能最小限のライブラリで2DゲームをC#で作れたらそれで良い人には向いてるかも

●コピー用紙とカードとスリーブ
 結局の所、ゲームエンジンなんてなくてもゲーム開発は出来る
次回作は一人用デッキ構築型デッキ構築DCGを作ろうと考えていて試作は紙でやる事にしました

 紙で試作するメリットは
・デジタルに比べて試作するのが楽、予算も数百円程度で済む
・試作途中でのテキストの書き換えやルール変更が楽
・細部を調整してからデジタル版の開発を始められるので手戻りが減ったり良い設計が出来る
・思ったより出来が悪くて没にする場合もダメージが少ない
・出来が良ければアナログ版をデジタル版の先にリリースするとかも

 デメリットは
・ランダム処理や自動処理やカウンティングや大量のトークンなどデジタル版なら楽な仕様やアイデアをテストするのは大変になる
・テストプレイ中のルールミスを見落としそう
・他人にテストプレイして貰う敷居が高い、テストプレイしてくれる知り合いが少ないと問題点を見落としそう
・紙で作ったのをデジタルで再現出来る技術力がないと結局エタる
・そもそも紙で試作出来て紙の方が試作が楽なゲームがかなり限られる

 自由帳でTRPGもどきな事を小学生の頃やってて、中学でSTG作って、その後色々ゲームエンジン触ってきましたが最終的に紙に戻ってきた、紙も立派なゲームエンジンなんやなって

●ゲームエンジンを変えてきて学んだ事
 最後に色々ゲームエンジン変えてきた感想

1.自作エンジンは沼だけど、ラッパーライブラリぐらいならありかと思った
 自作エンジン作ってメンテナンスやサポートもしてる人もいて凄いなぁと思いますが、ゲーム制作する時間を大きく削るかゲーム制作をそもそもしないかのどちらかの人が多いですね
 自分の場合は何かのライブラリをラップしてなんちゃって自作エンジンを作るぐらいが技術的にも労力的にも簡単で自作欲が満たせるしで丁度よかったです

2.エンジン乗り換えはなんとかなる
 なんやかんやで色々なエンジンに手を出してきたけど、学習に凄く労力や時間を使うという事はなく知識も活かせる事も多かったので、ゲーム完成させた時とか丁度いいタイミングで色々ゲームエンジン触ってみるのも良いかなと思います、実際に使ってみないとわからない事も多かったです

3.海外では使われてて日本で使われてないエンジン結構多い
 英語で情報集めが出来ると選択肢も広がるので英語出来る人は強いですね、私はあんまり英語わからんけど最近は機械翻訳も優秀なのである程度なんとかなりました、技術の進歩を感じますね

4.ゲームエンジンが進歩してもゲーム制作は大変
 ゲームエンジンが進歩して楽にゲームが作れるようになったかと言うとどうなんだろうか、エンジンが進歩した分求められる作りこみ量が増えたり、スマホゲーム市場もPCゲーム市場もレッドオーシャン化したりしたので、作業量が減ったりプログラミング知識が要らなくなっても大変さは変わらず、むしろ厳しくなったと思う

5.人によって合うエンジンは変わる
 多分9割ぐらいはUnityかUnrealEngineかツクールか各種ノベルゲームエンジンで良いとは思いますが、一口にゲームといっても色々あるし、やりたい事が変われば最適なエンジンも変わるので色々試して目的や能力、趣味に合ったものを探すのも大事かなと思いました

ここまで読んで頂きありがとうございました

おわり
スポンサーサイト



コメントの投稿

Secre

プロフィール

(´・@・)

Author:(´・@・)
ゲームの製作日誌です
 ご意見ご感想などコメントや拍手コメント気軽にどうぞ

メール:mr.dagonn★gmail.com
★を@に変えて下さい

twitter
アカウント

匿名質問箱

●公開しているゲーム
Vector作者ページ

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
リンク