ゲームエンジン

From Wikipedia, the free encyclopedia

ゲームエンジンとは、コンピュータゲームソフトウェアにおいて、共通して用いられる主要な処理を代行し効率化するソフトウェアの総称である[1]

ゲームエンジンは映像や音のリアルタイム処理をしていることもあり、インタラクティブアートなどの分野でも使われることもある[2][3]Unityのようにビジネスエコシステムを生み出したゲームエンジンもある[4]

また、ゲームエンジンを模倣するAIも発表されている[5][6]

ゲームエンジンとは?

球が壁や他の球に衝突するビリヤードのコンピューターゲームは物理シミュレーションの典型例である。
最初期の3Dゲーム「DOOM(1)エンジン」(現在はフリー化している)を用いてアマチュア団体が製作した「FREE DOOM」の画像。
海外のフリーゲームソフト『Nexuiz』。開発者の美的感覚もあるが、エンジンが違えば雰囲気や表現方法も異なる。
スクリプトエンジンビジュアルノベル)の例

ゲームエンジンは、コンピュータゲームの動作において主要な処理を行うために用いられる共通のプログラムであるが、その定義は曖昧で、API(プログラムとオペレーティングシステムハードウェアとの仲介をする仕組み)やプログラムライブラリ(ソフトウェアの部品として提供されるプログラム群)など様々である。

一般にゲームエンジンと称されるものにも多様な形態が存在するが、ミドルウェアなどが集まりより総合化されたものをゲームエンジンと呼び、汎用性のあるプログラムライブラリ単体やその集積物とは区別する傾向も見出せる。主にOpenGL / Direct3Dなど3次元コンピュータグラフィックス生成用のプログラムを「3Dエンジン」と呼んだ延長に位置する呼称や概念だと言える。

通常は、コンストラクションキットやオーサリングツールに近いレベルまで、開発作業が汎用化されたものをゲームエンジンと呼び、単にプログラマーがプログラミング上のライブラリを共通化するのは「フレームワーク」として区別する。

この場合のエンジンは、操作と燃料供給・潤滑などを受けて動力を発生させる内燃機関ないし外燃機関としての機械装置ではなく、何らかの操作により動作を発生させるという、より原義的概念に基づく表現である。プログラムとしての機能を他のソフトウェアに供給することを目的としており、ゲームを遊ぶユーザーには意識されずに利用されている。ただし共通化されたプログラムとして汎用性に富み、利用しようとすればゲームに限定されない機能を持つソフトウェアもみられる。

分かりやすい一例

これらゲームエンジンの機能をより具体的に述べると、例えば、ある人が野球ゲームを作った場合を考える。そのゲームには野球のボールが地面に落ちて反射する様子をシミュレーション(データを入力されると仮想的にどのような変化が起こるかを計算して示すもの)するプログラムが含まれていたとする。

さらに、その野球ゲームを作り終えた人が次にサッカーゲームを作ることを計画したとする。その場合、サッカーボールが地面に落ちて反射するプログラムを一から記述することは少なからず無駄を含む可能性がある。

最初から「地球上で物体が地面に落下したとき、物体はどのように運動するか」という、ボールの種類を限定しないプログラムを作っておけば、野球ゲームにもサッカーゲームにも応用が効いた可能性があった訳である。このような、対象を特定しない抽象的なゲーム用プログラムの集合体を「ゲームエンジン」という。

メリットとデメリット

こういったゲームエンジンは、ゲームを制作する場合において、その各々でアルゴリズム(情報を処理するための計算式の総体)をすべて設計・開発していた手間を軽減させ、開発コストを大幅に下げることができることが、最大のメリットである。ただし、商業利用する際には、少なくない使用料を支払う必要がある。

第二のメリットとして、このエンジンが主要な機能を提供することで、例えばプラットフォームの各々に対応した共通した仕様を持つゲームエンジンを利用することで、ゲームソフト移植や、メンテナンス、バグチェック、アップデートなどが行いやすくなることが挙げられる。

第三のメリットとして、ゲームエンジンを使用することで、同じエンジンを利用しているユーザーからのネット情報・書籍などを活用でき、開発をスムーズに進めることができ、トラブルにも対応しやすくなることが挙げられる。

しかしながら現実的には、性能を追求するためにハードウェアやOS、外部ライブラリが提供する機能に著しく依存しており、とくに他OSへの移植性は乏しい。移植されているゲームであってもゲームシステムに差異があったり、リリース時期にズレが生じているのが当たり前である。ゲームエンジンの移植そのものが放棄されてしまう例もままある。

3D表現を用いたゲームの発展に伴い、ゲーム内における物体の物理運動を極めてリアルに再現しようという動きが見受けられる。そのような話題の中ではゲームエンジンの中の物理シミュレーション機能を指して、しばしば物理エンジンと称することがある。音に関する設定もおろそかではなく、音源の方向性を持たせる機能が備わっているのも珍しくは無い。また、コンテンツを自動生成するプロシージャル技術も搭載されている[7]

バージョンアップと命名

当然ながらゲームエンジンも、広義で言えば単にプログラムであり、技術革新と共に新たな機能を盛り込んで日々バージョンアップが繰り返されている。また、一挙に多数の機能を盛り込まれたメジャーバージョンアップでは、前述されたように、そのゲームエンジンの機能をフルに活用してゲームソフトが制作される。

この際、新しいゲームエンジンに命名されるのは、そのゲームエンジンを用いて作られた初めてのゲームソフトの名称になるのが一般的となっている。例えば『Half-life』ならば「Half-life Engine」、『DOOM』ならば「DOOM Engine」という具合である。また、システムを根底から変えてしまうような大掛かりなエンジンのバージョンアップがされた場合、ナンバリングが変更される事もある。このナンバリング変更は単に「DOOM2 Engine」など、タイトル名称末尾の数字が大きくなるパターンの他に、まったく無関係の名称が付けられるパターンもあり、『Half-life2』で初導入された「Source Engine」などもある。

開発ツール

  • テストプレイ
  • スクリプト構文チェック
  • イベントの配置
  • レベル生成

海外のゲームエンジン開発元は、商用利用不可といった条件の付与や機能の制限を行った上で、ユーザに無償でゲーム開発ツールを提供している場合が多い。

こうしてユーザの手によって作成されたデータやデータ群はMODと呼ばれ、ゲーム中のサウンドやテクスチャ、キャラクターデータを置き換えるものや、ゲームバランスを調整するためのもの、ゲームの機能を拡張するものなど、その形態や規模は様々である。

MOD開発者のコミュニティではMOD開発者同士の交流が盛んに行われている。MODの中にはそれ自体がゲームとして完結している物もあり、そのような完成度の高いMODの権利をゲーム開発元が買い取り、単体の製品として発売するケースや、MODの開発者を社員として登用する場合も存在する。最も有名なケースがValve Software社の『カウンターストライク』である。

ゲームエンジンの開発元にとって、ゲーム開発ツールをユーザに提供することによって、ゲームエンジンの新たな可能性を見いだせたり、一つのタイトルを長くプレイしてもらえるメリットがある一方、プレイヤーが新たなタイトルに移行するペースが遅くなったり、売り上げが減少するといったリスクが生じる。

パソコンゲームでは特にユーザー側が操作できる映像処理系のカスタマイズオプションが豊富である。


主なゲームエンジン

ノベルゲームに使われるエンジンについてはスクリプトエンジン (ゲーム)#主なスクリプトエンジンを参照。

市販および外部提供エンジン

現行

旧世代

過去

内製エンジン

現世代

ソニー系の現世代エンジン
マイクロソフト系の現世代エンジン
ユービーアイソフト系の現世代エンジン
テイクツー・インタラクティブ系の現世代エンジン
エレクトロニック・アーツ系の現世代エンジン

開発中

旧世代

過去

Warner Bros. Games系の旧ゲームエンジン
マイクロソフト系の旧ゲームエンジン
テイクツー・インタラクティブ系の旧ゲームエンジン
ユービーアイソフト系の旧ゲームエンジン
エレクトロニック・アーツ系の旧ゲームエンジン

ミドルウェア

オープンソースエンジン

現行

過去

互換エンジン

ミドルウェア

脚注

関連項目

外部リンク

Related Articles

Wikiwand AI