ゲームエンジン

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索

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

目次

[編集] 概要

球が壁や他の球に衝突するビリヤードのコンピューターゲームは物理シミュレーションの典型例である。

ゲームエンジンは、コンピュータゲームの動作において主要な処理を行うために用いられる共通のプログラムであるが、その定義は曖昧で、API(プログラムとオペレーティングシステムハードウェアとの仲介をする仕組み)やプログラムライブラリ(ソフトウェアの部品として提供されるプログラム群)など様々で、一般にゲームエンジンと称されるものにも多様な形態が存在するが、後述するようにより総合化されたものをゲームエンジンと呼び、汎用性のあるプログラムライブラリ単体やその集積物とは区別する傾向も見出せる。主にOpenGLなど三次元コンピュータグラフィックス生成用のプログラムを「3Dエンジン」と呼んだ延長に位置する呼称や概念だといえよう。

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

こういったゲームエンジンは、ゲームを製作する場合においてその各々でアルゴリズム(情報を処理するための計算式の総体)をすべて設計・開発していた手間を軽減させるとともに、このエンジンが主要な機能を提供することで、例えばプラットフォーム(この場合は「ゲームを動作させるコンピュータシステム」のこと)の各々に対応した共通した仕様を持つゲームエンジンを利用することで、ゲームソフト移植を行い易くなるなどの利点も存在する。

[編集]

これらゲームエンジンの機能をより具体的に述べると、例えば、ある人が野球ゲームを作った場合を考える。そのゲームには野球のボールが地面に落ちて反射する様子をシミュレーションデータを入力されると仮想的にどのような変化が起こるかを計算して示すもの)するプログラムが含まれていたとする。さらに、その野球ゲームを作り終えた人が次にサッカーゲームを作ることを計画したとする。その場合、サッカーボールが地面に落ちて反射するプログラムを一から記述することは少なからず無駄を含む可能性がある。最初から「地球上で物体が地面に落下したとき、物体はどのように運動するか」という、ボールの種類を限定しないプログラムを作っておけば野球ゲームにもサッカーゲームにも応用が効いた可能性があった訳である。このような、対象を特定しない抽象的なゲーム用プログラムの集合体をゲームエンジンという。

また近年、3D表現を用いたゲームの発展に伴い、ゲーム内における物体の物理運動を極めてリアルに再現しようという動きが見受けられる。そのような話題の中ではゲームエンジンの中の物理シミュレーション機能を指して、しばしば物理エンジンと称することがある。また、物理的シミュレーション以外にもほとんどのゲームエンジンでは音声に関する設定もおろそかではなく、ちゃんと近寄れば音が大きくなり、遠ざかれば小さくなる、右や左、上、下、壁の向こう側など、音声が発せられる場所を正確に処理し、出力する機能が備わっているのも珍しくは無い。

[編集] 受賞

米ゲームデベロッパー誌が毎年開催する "第一線賞" において、 2008年度のゲームエンジン部門において以下を最終選考に選出した。[1]

  • Unity Technologies 社の Unity 2.1
  • Crytek 社の CryEngine 2
  • Emergent Game Technologies 社の Gamebryo 2.5
  • GarageGames 社の Torque Game Engine 1.7.1
  • Valve 社の Source Protocol 14, Build 3531

結果として、2008年度のゲームエンジン部門は GarageGames 社の "Torque Game Engine Advanced 1.7.1" が受賞、Epic Games 社の Unreal Engine が殿堂入りを果した。[2]

[編集] ゲームエンジンの扱い

家庭用ゲーム業界においては、ハードウェアメーカーからC言語C++言語を利用したゲーム開発環境が提供されることが多い。だが、ゲームメーカーでさえこれらの言語を直接操ってゲームを製作することは避けたいと考えることが珍しくない。前述したような、重複による無駄(いわゆる車輪の再発明)が発生するためである。よって、多くのゲームメーカーが自社製のゲームエンジンを所有し、ゲーム製作の省力化を図っていると考えられている。 なお通常は、コンストラクションキットやオーサリングツールに近いレベルまで、開発作業が汎用化されたものをゲームエンジンと呼び、単にプログラマがプログラミング上のライブラリを共通化するのは、フレームワークとして区別する。

海外のフリーゲームソフトNexuiz。開発者の美的感覚もあるが、エンジンが違えば雰囲気や表現方法も異なる。
スクリプトエンジン(ビジュアルノベル)の例

家庭用ゲーム業界においては別の側面も存在する。家庭用ゲームではゲームエンジンの持つポテンシャルが、操作のしやすさや画面描画能力、ひいてはゲームそのものの評価と直結することは日常茶飯事である。そのため、多くのメーカーにとってゲームエンジンの技術的な仔細は企業秘密に値するし、それが会社ごとの特色(=癖)としてユーザーに認知される事になる。

一方、ノベルゲームなど3Dの能力を要求されないゲームにおいては事情が異なり、少数のプログラマが製作したゲームエンジン(スクリプトエンジン)が、メーカーやサークルの垣根を越えて広く利用されるケースが珍しくない。これらのゲームはゲームエンジンを含むプログラムよりもシナリオやグラフィック(キャラクター)が重視される傾向があるため、ゲームエンジンの独自性をセールスポイントにする必要性が低いからであろう。とはいえ、ゲームエンジンの完成度が低い、即ち操作のレスポンスが悪かったり、無意味に高性能のコンピュータを必要とさせるといった場合、ゲームとしての評価を落とすことに変わりはない。

3Dの能力を要求されないゲームにおけるゲームエンジンの取り扱いは、プログラムの知識に乏しくても、容易に扱えるように設計されているものがある。この点に着目した一般向けの商品で、有名なものとしてエンターブレインの『ツクールシリーズ』(RPGサウンドノベルなどジャンルは多岐にわたる)、アテナの『デザエモン』(シューティングゲーム)などが挙げられる。これらは独自のスクリプト言語を搭載するなどして複雑な指定を可能とする一方で、簡単な指定ならGUI上の操作のみでゲームを作ることも可能となっている。

[編集] ゲーム開発とゲームエンジン

こうした、言うならば「ゲームエンジンの貸し借り」的な行動について、日本ではアダルトゲーム業界で一般的だが、前述したように極普通の全年齢層向けのゲームを発売している会社では滅多に見受けられない。

しかしアメリカをはじめとした海外ではまったく縁もゆかりも無い他社がゲームエンジンの利用ライセンスを買い、それを用いて作品を制作・発売するというケースは珍しくは無く、最近ではゲームエンジンを売るためのプロモーションとしてそのエンジンを用いたゲームソフトを製作、販売するビジネススタイルが各大手ゲームメーカーで浸透しつつある。

その場合、ゲームエンジンの利用権利を買うのは大抵、中堅のゲーム制作会社である。大手と違い開発力に限界がある中小の企業にしてみれば、元から安定して動作するゲームエンジンがあれば開発期間の短期化も可能であり、それはすなわち大幅なコスト削減にも繋がるからである(場合によっては逆に高くつく可能性もあるが)。

一方では、そのような商品として販売する価値を持つゲームエンジンの制作では、必然的に大きなプロジェクトチームが必要な場合が多く、その時点でも多数の経費がかかるのが現状である。一方で実質たった3人で製作されたOffset Engineという物があり、その完成度の高さから業界でも注目を浴びているようである。[3]

[編集] ゲームエンジンと映像表現

コンピューターゲームは極論すれば「外見」と「数値」の混合物に過ぎず、近年の必要以上に様々な映像表現が可能な高機能ゲームエンジンは、むしろオーバースペック気味とも言え、過度に高度な描写エフェクトは(影や光の演出、物体の挙動など)性能の低いコンピューターでは動作に問題が発生する場合がほとんどであるし、コンピューターの性能は誰しも同一の物では無いため、動作速度などに差が出る事がある。

その様な事情を考慮して、大半のパソコンゲームでは特にユーザー側が操作できる映像処理系のカスタマイズオプションが豊富である。不必要なオプションを解除したり、レベルを下げることで、より低い動作環境で安定したプレーを見込むことが可能だが、これを操作してどのような結果が得られるかは多少の知識が必要であるし、処理設定を落とすことで製作者側の意図した映像表示はされず、大きく見劣りするのが通常である。場合によってはゲームエンジン本体の改良で映像の処理負荷を下げる事ができる場合も多いが、それには相応の高い技術力が必要である。

一方の家庭用ゲーム機では一律した基本性能の元でゲームを動作させるケースがほとんどで、本体マシンを構成するパーツの可変はほとんど不可能であるため、製作側は常に自分たちの意図した状態の映像を見せる事が可能である。そのため、ユーザーが操作できる映像系のオプションはまったく搭載されていないか、存在したとしてもワイドテレビのサポートや画面位置を調節させる程度の物しか無いのが一般的である。しかし大半の家庭用ゲーム機は(お金に糸目をかけずに作られた―)パソコンと比べて性能的に劣り、極めて制約された条件下でのゲーム製作を強いられる。

[編集] ゲームエンジンを構成する要素

ゲームエンジンはグラフィック描写以外にも、ゲーム開発者の要求に応じて数多くの機能が組み込まれている。以下はその一例である。

  • グラフィック描画

2D・3Dオブジェクトおよび、その質感(反射や透過など)の描画、ライト(照明)の配置などが容易になる。これらをDirectXなどで一から実装する際には配列関数や、その計算を行わなければならないがゲームエンジンによってはドラッグ&ドロップで簡単に配置することができる。

  • スクリプト処理

多くのゲームエンジンには、ゲームエンジンの設定、イベントやAIを処理するための独自言語スクリプトエンジンが実装されている。各々の処理をゲームエンジンに組み込むのではなく、外部スクリプトによって実装することで、ゲームエンジン本体を小さくすることができ、また、カスタマイズが容易になる。

  • モーション処理

少ないパターンのモーションデータを用意し、それらを合成することで状況に応じたモーションを生成する。さらに、逆運動学や他の物体との接触を考慮してモーションを加工することで、さらにリアルなモーションを生成する機能を有する場合がある。また、リアルな表情の生成に力を入れているゲームエンジンも存在する。

  • サウンド処理

3Dサウンドやボイスチャット機能等。

  • 物理演算

サードパーティーによって開発された物理エンジンが組み込まれている場合が多いが、中には独自の物理エンジンが組み込まれている場合もある。

  • 通信

アンチラグ、オンラインアップデート、ゲームサーバツール等。

  • インタフェース

入力の処理、多様な入力機器への対応。

[編集] 開発ツール

ゲームエンジンの開発元はゲーム開発ツールキット(SDK)を併せて提供する場合がほとんどである。

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

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

こうしてユーザの手によって作成されたデータやデータ群はMODと呼ばれ、ゲーム中のサウンドやテクスチャ、キャラクターデータを置き換えるものや、ゲームバランスを調整するためのもの、ゲームの機能を拡張するもの等、その形態や規模は様々である。 MOD開発者のコミュニティではMOD開発者同士の交流が盛んに行われている。 MODの中にはそれ自体がゲームとして完結している物もあり、そのような完成度の高いMODの権利をゲーム開発元が買い取り、単体の製品として発売するケースや、MODの開発者を社員として登用する場合も存在する。最も有名なケースがValve Software社のカウンターストライクである。

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

[編集] エンジンの名称の法則

最初期の3Dゲーム「DOOM(1)エンジン」(現在はフリー化している)を用いてアマチュア団体が製作した「FREE DOOM」の画像。

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

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

[編集] 主なゲームエンジン

この節は執筆の途中です この節は執筆中です。加筆、訂正して下さる協力者を求めています
3Dゲーム向け


2Dゲーム向け
HTML5向け
  • Impact HTML5ベースのゲームエンジン。2D専用 有償

[編集] 脚注

  1. ^ Game Developer's 2008 Front Line Award Finalists Announced
  2. ^ Game Developer Reveals Front Line Award Winners, Unreal Engine To Hall Of Fame
  3. ^ 独立系デベロッパによる驚愕のFPS「Project Offset」開発者インタビュー (2006/05/17)

[編集] 関連項目

[編集] 外部リンク

個人用ツール
名前空間

変種
操作
案内
ヘルプ
ツールボックス
他の言語