ゲームエンジン

ゲームエンジンとは、コンピュータゲームのソフトウェアにおいて、共通して用いられる主要な処理を代行し効率化するソフトウェアの総称である。ゲームエンジンは映像や音のリアルタイム処理をしていることもあり、インタラクティブアートなどの分野でも使われることもある。Unityのようにエコシステムを生み出したゲームエンジンもある。また、ゲームエンジンを模倣するAIも発表されている。
概要.
ゲームエンジンは、コンピュータゲームの動作において主要な処理を行うために用いられる共通のプログラムであるが、その定義は曖昧で、API（プログラムとオペレーティングシステムやハードウェアとの仲介をする仕組み）やプログラムライブラリ（ソフトウェアの部品として提供されるプログラム群）など様々である。一般にゲームエンジンと称されるものにも多様な形態が存在するが、ミドルウェアなどが集まりより総合化されたものをゲームエンジンと呼び、汎用性のあるプログラムライブラリ単体やその集積物とは区別する傾向も見出せる。主にOpenGL/Direct3Dなど3次元コンピュータグラフィックス生成用のプログラムを「3Dエンジン」と呼んだ延長に位置する呼称や概念だといえる。通常は、コンストラクションキットやオーサリングツールに近いレベルまで、開発作業が汎用化されたものをゲームエンジンと呼び、単にプログラマがプログラミング上のライブラリを共通化するのは「フレームワーク」として区別する。この場合のエンジンは、操作と燃料供給・潤滑などを受けて動力を発生させる内燃機関ないし外燃機関としての機械装置ではなく、何らかの操作により動作を発生させるという、より原義的概念に基づく表現である。プログラムとしての機能を他のソフトウェアに供給することを目的としており、ゲームを遊ぶユーザーには意識されずに利用されている。ただし共通化されたプログラムとして汎用性に富み、利用しようとすればゲームに限定されない機能を持つソフトウェアもみられる。
これらゲームエンジンの機能をより具体的に述べると、例えば、ある人が野球ゲームを作った場合を考える。そのゲームには野球のボールが地面に落ちて反射する様子をシミュレーション（データを入力されると仮想的にどのような変化が起こるかを計算して示すもの）するプログラムが含まれていたとする。さらに、その野球ゲームを作り終えた人が次にサッカーゲームを作ることを計画したとする。その場合、サッカーボールが地面に落ちて反射するプログラムを一から記述することは少なからず無駄を含む可能性がある。最初から「地球上で物体が地面に落下したとき、物体はどのように運動するか」という、ボールの種類を限定しないプログラムを作っておけば野球ゲームにもサッカーゲームにも応用が効いた可能性があった訳である。このような、対象を特定しない抽象的なゲーム用プログラムの集合体をゲームエンジンという。
こういったゲームエンジンは、ゲームを製作する場合においてその各々でアルゴリズム（情報を処理するための計算式の総体）をすべて設計・開発していた手間を軽減させるとともに、このエンジンが主要な機能を提供することで、例えばプラットフォーム（この場合は「ゲームを動作させるコンピュータシステム」のこと）の各々に対応した共通した仕様を持つゲームエンジンを利用することで、ゲームソフトの移植を行い易くなるなどの利点も存在する。しかしながら現実的には、性能を追求するためにハードウェアやOS、外部ライブラリが提供する機能に著しく依存しており、とくに他OSへの移植性は乏しい。移植されているゲームであってもゲームシステムに差異があったり、リリース時期にズレが生じているのが当たり前である。ゲームエンジンの移植そのものが放棄されてしまう例もままある。
3D表現を用いたゲームの発展に伴い、ゲーム内における物体の物理運動を極めてリアルに再現しようという動きが見受けられる。そのような話題の中ではゲームエンジンの中の物理シミュレーション機能を指して、しばしば物理エンジンと称することがある。音に関する設定もおろそかではなく、音源の方向性を持たせる機能が備わっているのも珍しくは無い。また、コンテンツを自動生成するプロシージャル技術も搭載されている。
当然ながらゲームエンジンも、広義で言えば単にプログラムであり、技術革新と共に新たな機能を盛り込んで日々バージョンアップが繰り返されている。また、一挙に多数の機能を盛り込まれたメジャーバージョンアップでは、前述されたように、そのゲームエンジンの機能をフルに活用してゲームソフトが製作される。この際、新しいゲームエンジンに命名されるのは、そのゲームエンジンを用いて作られた初めてのゲームソフトの名称になるのが一般的となっている。例えば『Half-life』ならば「Half-life Engine」、『DOOM』ならば「DOOM Engine」という具合である。また、システムを根底から変えてしまうような大掛かりなエンジンのバージョンアップがされた場合、ナンバリングが変更される事もある。このナンバリング変更は単に「DOOM2 Engine」など、タイトル名称末尾の数字が大きくなるパターンの他に、まったく無関係の名称が付けられるパターンもあり、『Half-life2』で初導入された「Source Engine」などもある。
開発ツール.
海外のゲームエンジン開発元は、商用利用不可といった条件の付与や機能の制限を行った上で、ユーザに無償でゲーム開発ツールを提供している場合が多い。
こうしてユーザの手によって作成されたデータやデータ群はMODと呼ばれ、ゲーム中のサウンドやテクスチャ、キャラクターデータを置き換えるものや、ゲームバランスを調整するためのもの、ゲームの機能を拡張するものなど、その形態や規模は様々である。
MOD開発者のコミュニティではMOD開発者同士の交流が盛んに行われている。MODの中にはそれ自体がゲームとして完結している物もあり、そのような完成度の高いMODの権利をゲーム開発元が買い取り、単体の製品として発売するケースや、MODの開発者を社員として登用する場合も存在する。最も有名なケースがValve Software社の『カウンターストライク』である。
ゲームエンジンの開発元にとって、ゲーム開発ツールをユーザに提供することによって、ゲームエンジンの新たな可能性を見いだせたり、一つのタイトルを長くプレイしてもらえるメリットがある一方、プレイヤーが新たなタイトルに移行するペースが遅くなったり、売り上げが減少するといったリスクが生じる。
パソコンゲームでは特にユーザー側が操作できる映像処理系のカスタマイズオプションが豊富である。
主なゲームエンジン.
ノベルゲームに使われるエンジンについてはスクリプトエンジン (ゲーム)#主なスクリプトエンジンを参照。