ゲームエンジン
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ゲームエンジンとは、コンピュータゲームのソフトウェアにおいて、共通して用いられる主要な処理を代行するソフトウェアの総称である。
目次 |
[編集] 概要
ゲームエンジンは、コンピュータゲームの動作において主要な処理を行うために用いられる共通のプログラムであるが、その定義は曖昧で、API(プログラムとオペレーティングシステムやハードウェアとの仲介をする仕組み)やプログラムライブラリ(ソフトウェアの部品として提供されるプログラム群)など様々で、一般にゲームエンジンと称されるものにも多様な形態が存在するが、後述するようにより総合化されたものをゲームエンジンと呼び、汎用性のあるプログラムライブラリ単体やその集積物とは区別する傾向も見出せる。主にOpenGLなど三次元コンピュータグラフィックス生成用のプログラムを「3Dエンジン」と呼んだ延長に位置する呼称や概念だといえよう。
この場合のエンジンは、操作と燃料供給・潤滑などを受けて動力を発生させる内燃機関ないし外燃機関としての機械装置ではなく、何らかの操作により動作を発生させるという、より原義的概念に基づく表現である。プログラムとしての機能を他のソフトウェアに供給することを目的としており、ゲームを遊ぶユーザーには意識されずに利用されている。ただし共通化されたプログラムとして汎用性に富み、利用しようとすればコンピュータゲームに限定されない機能を持つソフトウェアもみられる。
こういったゲームエンジンは、ゲームを製作する場合においてその各々でアルゴリズム(情報を処理するための計算式の総体)をすべて設計・開発していた手間を軽減させるとともに、このエンジンが主要な機能を提供することで、例えばプラットフォーム(この場合は「ゲームを動作させるコンピュータシステム」のこと)の各々に対応した共通した仕様を持つゲームエンジンを利用することで、ゲームソフトの移植を行い易くなるなどの利点も存在する。
[編集] 例
これらゲームエンジンの機能をより具体的に述べると、例えば、ある人が野球ゲームを作った場合を考える。そのゲームには野球のボールが地面に落ちて反射する様子をシミュレーション(データを入力されると仮想的にどのような変化が起こるかを計算して示すもの)するプログラムが含まれていたとする。さらに、その野球ゲームを作り終えた人が次にサッカーゲームを作ることを計画したとする。その場合、サッカーボールが地面に落ちて反射するプログラムを一から記述することは少なからず無駄を含む可能性がある。最初から「地球上で物体が地面に落下したとき、物体はどのように運動するか」という、ボールの種類を限定しないプログラムを作っておけば野球ゲームにもサッカーゲームにも応用が効いた可能性があった訳である。このような、対象を特定しない抽象的なゲーム用プログラムの集合体をゲームエンジンという。
また近年、3D表現を用いたゲームの発展に伴い、ゲーム内における物体の物理運動を極めてリアルに再現しようという動きが見受けられる。そのような話題の中ではゲームエンジンの中の物理シミュレーション機能を指して、しばしば物理エンジンと称することがある。また、物理的シミュレーション以外にもほとんどのゲームエンジンでは音声に関する設定もおろそかではなく、ちゃんと近寄れば音が大きくなり、遠ざかれば小さくなる、右や左、上、下、壁の向こう側など、音声が発せられる場所を正確に処理し、出力する機能が備わっているのも珍しくは無い。
[編集] ゲームエンジンの扱い
家庭用ゲーム業界においては、ハードウェアメーカーからC言語やC++言語を利用したゲーム開発環境が提供されることが多い。だが、ゲームメーカーでさえこれらの言語を直接操ってゲームを製作することは避けたいと考えることが珍しくない。前述したような、重複による無駄(いわゆる車輪の再発明)が発生するためである。よって、多くのゲームメーカーが自社製のゲームエンジンを所有し、ゲーム製作の省力化を図っていると考えられている。 なお通常は、コンストラクションキットやオーサリングツールに近いレベルまで、開発作業が汎用化されたものをゲームエンジンと呼び、単にプログラマがプログラミング上のライブラリを共通化するのは、フレームワークとして区別する。
家庭用ゲーム業界においては別の側面も存在する。家庭用ゲームではゲームエンジンの持つポテンシャルが、操作のしやすさや画面描画能力、ひいてはゲームそのものの評価と直結することは日常茶飯事である。そのため、多くのメーカーにとってゲームエンジンの技術的な仔細は企業秘密に値するし、それが会社ごとの特色(=癖)としてユーザーに認知される事になる。
一方、ノベルゲームなど3Dの能力を要求されないゲームにおいては事情が異なり、少数のプログラマが製作したゲームエンジン(スクリプトエンジン)が、メーカーやサークルの垣根を越えて広く利用されるケースが珍しくない。これらのゲームはゲームエンジンを含むプログラムよりもシナリオやグラフィック(キャラクター)が重視される傾向があるため、ゲームエンジンの独自性をセールスポイントにする必要性が低いからであろう。とはいえ、ゲームエンジンの完成度が低い、即ち操作のレスポンスが悪かったり、無意味に高性能のコンピュータを必要とさせるといった場合、ゲームとしての評価を落とすことに変わりはない。
3Dの能力を要求されないゲームにおけるゲームエンジンの取り扱いは、プログラムの知識に乏しくても、容易に扱えるように設計されているものがある。この点に着目した一般向けの商品で、有名なものとしてエンターブレインの『ツクールシリーズ』(RPGやサウンドノベルなどジャンルは多岐にわたる)、アテナの『デザエモン』(シューティングゲーム)などが挙げられる。これらは独自のスクリプト言語を搭載するなどして複雑な指定を可能とする一方で、簡単な指定ならGUI上の操作のみでゲームを作ることも可能となっている。
[編集] ゲーム開発とゲームエンジン
こうした、言うならば「ゲームエンジンの貸し借り」的な行動について、日本ではアダルトゲーム業界で一般的だが、前述したように極普通の全年齢層向けのゲームを発売している会社では滅多に見受けられない。
しかしアメリカをはじめとした海外ではまったく縁もゆかりも無い他社がゲームエンジンの利用ライセンスを買い、それを用いて作品を制作・発売するというケースは珍しくは無く、最近ではゲームエンジンを売るためのプロモーションとしてそのエンジンを用いたゲームソフトを製作、販売するビジネススタイルが各大手ゲームメーカーで浸透しつつある。
その場合、ゲームエンジンの利用権利を買うのは大抵、中堅のゲーム制作会社である。大手と違い制作費が限られている中小の企業にしてみれば、元から安定して動作するゲームエンジンがあれば開発期間の短期化も可能であり、それはすなわち大幅なコスト削減にも繋がるからである(場合によっては逆に高くつく可能性もあるが)。
一方では、そのような商品として販売する価値を持つゲームエンジンの制作では、必然的に大きなプロジェクトチームが必要な場合が多く、その時点でも多数の経費がかかるのが現状である。一方で実質たった3人で製作されたOffset Engineという物があり、その完成度の高さから業界でも注目を浴びているようである。[1]
[編集] ゲームエンジンと映像表現
コンピューターゲームは極論すれば「外見」と「数値」の混合物に過ぎず、近年の必要以上に様々な映像表現が可能な高機能ゲームエンジンは、むしろオーバースペック気味とも言え、過度に高度な描写エフェクトは(影や光の演出、物体の挙動など)性能の低いコンピューターでは動作に問題が発生する場合がほとんどであるし、コンピューターの性能は誰しも同一の物では無いため、動作速度などに差が出る事がある。
その様な事情を考慮して、大半のパソコンゲームでは特にユーザー側が操作できる映像処理系のカスタマイズオプションが豊富である。不必要なオプションを解除したり、レベルを下げることで、より低い動作環境で安定したプレーを見込むことが可能だが、これを操作してどのような結果が得られるかは多少の知識が必要であるし、処理設定を落とすことで製作者側の意図した映像表示はされず、大きく見劣りするのが通常である。場合によってはゲームエンジン本体の改良で映像の処理負荷を下げる事ができる場合も多いが、それには相応の高い技術力が必要である。
一方の家庭用ゲーム機では一律した基本性能の元でゲームを動作させるケースがほとんどで、本体マシンを構成するパーツの可変はほとんど不可能であるため、製作側は常に自分たちの意図した状態の映像を見せる事が可能である。そのため、ユーザーが操作できる映像系のオプションはまったく搭載されていないか、存在したとしてもワイドテレビのサポートや画面位置を調節させる程度の物しか無いのが一般的である。しかし大半の家庭用ゲーム機は(お金に糸目をかけずに作られた―)パソコンと比べて性能的に劣り、極めて制約された条件下でのゲーム製作を強いられる。この場合、よりゲーム画面を美しく、より豪華に見せ、より快適に動作させるのに必要なのは「高性能なゲームエンジン」ではなく「無駄の無いゲームエンジン」である。[要出典]
たとえばパソコン用ゲームならばエフェクトで表現するような物(物体の光沢や影など)をテクスチャに描きこんで誤魔化したり、ゲーム中の表示される物体の数を調節するなどして対応する。このため、映像に関して家庭用ゲーム機に求められるのは「どんな事でもできるゲームエンジン」よりも、ある意味で「誤魔化しの上手さ」であると言えよう。[要出典]
つまり、ゲームエンジンが劣っていても、最終的に作り手の技術力とセンスでそれをある程度克服できる可能性は十分にある。[要出典]また、高性能のゲームエンジンをベースに作られたからと言っても、製作者の技術力と完成度によって必ずしも美しい映像になるわけではないし、映像が美しいからゲームが面白くなるわけでもない。[要出典]例えばどんなにゲーム本編としての完成度が高くても、絵を綺麗に見せようとして処理に負荷をかけ、まともに遊ぶことさえ困難な物だとしたら、それは本末転倒である。[要出典]何事もバランスが重要というわけである。[要出典]
[編集] エンジンの名称の法則
当然ながらゲームエンジンも、広義で言えば単にプログラムであり、技術革新と共に新たな機能を盛り込んで日々バージョンアップが繰り返されている。また、一気に多数の機能を盛り込まれたメジャーバージョンアップでは、前述されたように、そのゲームエンジンの機能をフルに活用してゲームソフトが製作される。この際、新しいゲームエンジンに命名されるのは、そのゲームエンジンを用いて作られた初めてのゲームソフトの名称になるのが一般的となっている。
例えば「Half-life」ならば「Half-life Engine」、「DOOM」ならば「DOOM Engine」という具合である。また、システムを根底から変えてしまうような大掛かりなエンジンのバージョンアップがされた場合、ナンバリングが変更される事もある。このナンバリング変更は単に「DOOM2 Engine」など、タイトル名称末尾の数字が大きくなるパターンの他に、まったく無関係の名称が付けられるパターンもあり、「Half-life2」で初導入された「Source Engine」などもある。
[編集] 主なゲームエンジン
- 3Dゲーム向け
- id TECH5 (id Software)
- Lithtech Engine (Monolith Productions)
- MT Framework (カプコン)
- Quake Engine (id Software)
- Sourceエンジン (Valve Software) ハーフライフ2などで使用。
- Unreal Engine (Epic Games) Unrealシリーズ以外にも幅広いプラットフォームで使われている。
- Rockstar Advanced Game Engine (Rockstar North&Rockstar Sandiego) Grand Theft Auto IV で使用。
- 2Dゲーム向け
- その他
- OctaveEngine(プロメテック・ソフトウェア)「鉄拳6」に採用され、流体シミュレーション技術を世界で初めてゲームに実用化させた国産物理エンジン
[編集] 脚注
- ^ 独立系デベロッパによる驚愕のFPS「Project Offset」開発者インタビュー (2006/05/17)
[編集] 関連項目
- コンピューターゲーム
- ファーストパーソン・シューティングゲーム
- プログラム
- 物理演算
- ゲームエンジンの一覧
[編集] 外部リンク
- Fun-Motion Physics Games - 物理エンジン関連のニュースブログ