古くからゲーム開発をしている企業や団体の場合、中小規模のチームであっても自社製エンジンを開発して保持している場合が多いかと思います。前までは、性能面・ライセンス面において、製品開発に足るようなゲームエンジンが広く公開されていなかったからです。Softwareにおいても例外ではなく、DirectX5時代に開発したエンジンを20年近くアップデートしながら使っています。D3DRMを使わずかつD3DXが出来る以前の物であるため、幸運にもD3DRMやD3DX廃止などの影響もなく現行OSでも動作し続けておりますが、設計の古さは否めません。近年の3D技術の進歩は目覚ましいものがあり、この進歩に追いつくように、自力のみでエンジンを更新し続けるのは困難になりつつあります。このため、多くのタイトルが、汎用ゲームエンジンを使って開発される方向に向かっており、自社エンジンを開発できる大手メーカーであっても、汎用エンジンないし、そのカスタマイズ版を使用する流れに向かっています。このような事情から筆者は「自社エンジンのリプレース」という視点で導入を行なっておりますが、本記事ではそうではない読者にも分かるように説明を行ないます。3Dにおける基礎知識やツールの使い方等は説明しません。不明な用語はネット検索して下さい。機能が多いvs機能が少ない一般的にいえば、ライブラリは機能が多いほど良い。3D開発において、多機能は互換性の低さとのトレードオフである。この互換性の意味するところは、「OSやDirectXが更新された際の互換性」「性能の低いGPUでも実用になるか」などのことを意味する。機能の少ないエンジンほど不具合調査の労力も少なくなるし、改造も容易であるため、多機能エンジンを出し抜くような技法を独自に導入する、といった方法で、一見して多機能エンジンを超えるようなことを実現できる可能性はある。作ろうとしているコンテンツの内容を考えて、適した物を選ぶ必要がある。完全フリーvsライセンス料IrrlichtとOgre3Dは完全フリー(非GPL)である一方、UE4やUnityには売上規模に応じたライセンス料が必要。Unityはソースコード非公開である一方、UE4はフリーエンジンと同様のソースコードアクセスが可能。どちらが良いのかは、ケースバイケースとしか言い様がない。IrrlichtやOgre3Dの場合、改造自由であるし、派生版のSourceForgeプロジェクトを勝手に作って「分家」してみたり、極端な話、派生版を独自製品として有償販売することすら可能である。IrrlichtやOgre3Dのために書いたコードを、純然たる自分の「資産」とできる。(多くの人は広く公の資産とすると思うが)その代わり、コミュニティを含めてサポートはあまり期待できない。有償サポートは存在しない。新しい自社製エンジンのつもりで育てていく必要がある。Gamesのサポートが受けられる。ライセンス料も低く設定されている。Gamesの意向に合わない物を作成した場合に差し止められる可能性は残されている。当初想定されなかったような非ゲームなどの用途、いわゆるアダルトな物、政治的メッセージを含む物等がそれにあたり、突如アダルト禁止宣言される可能性など、権利範囲の不安定さは否めない。(そういう例はXNA、Vocaloidなど枚挙にいとまがない)まさに一長一短である。選択の指針は下記のようなものと考えられる。最新GPUの機能をフル活用して作りたい。金を払ってでもサポートが欲しい。UE4を操縦できる程度のエンジニアが社内にいる。UE4フリーエンジンの機能(DirectX9レベル)で十分である。メーカーサポートよりも自社スタッフのほうがあてになる。エンジン内に手を入れられないのは嫌、等。Ogre3D等とにかく簡単に作りたい。C++で3Dを扱えるようなエンジニアが社内にいない等。Unityを筆頭に、多くのエンジンが公開されている。今回、内製ゲームエンジンを置き換える目的で、使い易そうなものを検討した。(UE4)おそらく一番多機能なエンジンでソースコードにもアクセスできる。大規模な商業開発なら多分お勧め。エンジンが巨大であるが故、自分で内部を弄るとなると大変な手間がかかる、派生版の開発がライセンス面なども含め厳しい等、小回りが利かない部分があるため、今回はパスしました。Unity簡単に作れるという点においては一番良い。入門書も豊富で、おそらく中学生でも使える。ソースコードにアクセス出来ず、これを使って作ったアプリが10年後に動かない可能性すらあるので没。子供がゲーム制作の入門用に使うなら、まずこれを推奨するとは思うが。Ogre3Dオープンソースで再配布自由。UE4には及ばないが機能も豊富。SDKを入手してしばらく研究していたのだが、下記の問題点が...API設計がまずい。DLLを跨いでstringオブジェクト等を値渡しする場面が多く、一歩間違えるとすぐにクラッシュする。link推奨にすべきかと思うが、実際のOgre3Dの標準ビルドは多数のDLLから構成されている。Direct3D対応に課題あり。Direct3D9版は、既に開発終了したD3DXライブラリに依存しているのが問題。RuntimeをインストールすればD3DXをWindows10で動かすことは出来るが、将来においてその保証はない。Direct3D11版については、ピクセルシェーダー必須化の関係で、多数のサンプルがそのままでは動作しない状態になっている。その他にも、DirectX11版の動作は未だ怪しい部分が多く、今後の改良に期待したい。Irrlichtオープンソースで再配布自由、コンパクトなエンジンで、フルビルドしても大して時間がかからない。対応するフォーマットが全般に古い。単なるメッシュであれば大抵の物が読めるが、アニメーション込みで読める形式だと、選択肢が激減する。OpenGLおよびDirectX9に対応。DirectX11には未対応。Runtime無しで動作する。プログラマブルシェーダを使用すると、D3DXのランタイムをロードしてしまうので、対策(改造)する必要あり。デモを見ても、他エンジンに対して見劣りする物が多い。画面構成・キャラデザやテクスチャに工夫が必要。ノートPCなどでも快適に動くように作りたい場合などであれば、あまり問題にならないかも。2017年現在、日本人で研究している人がほとんどいないのではないかと思われる。逆に言えば、こうして解説記事を作成することに意義があるかもしれない。2018管理者宛メール。