ゲームプログラミング

ゲームプログラミングとは、読んで字のごとくゲームをプログラム（プログラミング）する行為に他ならない。しかし実際にはゲームそのものだけではなく、各種ゲームから共通に呼び出される基底ライブラリ（いわゆるゲームエンジン）や、ゲーム制作補助ツールといったものまで手広く扱うことが多く、「ゲームプログラミング」という言葉から連想されるよりも地味で目立たない役割も多い。特に大規模なゲームプログラムを開発する際には、補助ツールの開発・保守・ドキュメント化はほぼ必ず行われるため、分業の過程でゲームそのものには携わらなくなるプログラマも当然現れ得るが、それでも彼らもゲームプログラマの肩書きで呼ばれる事が多い。ソフトウェア開発の学習の一環としてゲームプログラムを扱っている教育機関も散見される。

 ゲームプログラマー 
ゲームプログラマーとはゲームに携わる人を指すが、ゲーム時代25年以降、様々な技術によって培われており、ひとえにゲームプログラマーと言っても、種類と分野がある。システムプログラマー、クライアントプログラマー、UIプログラマー、エフェクトプログラマー、AIプログラマー、サーバプログラマー、ツール開発プログラマー等数え切れないほどのゲームに携わるプログラマーがいる。エンジンや、ライブラリを専門にしたプログラマーもゲームプログラマーと呼ばれている。更にゲームのギミック専用のプログラマーや、コンテンツに応じたゲームプログラマーが存在している。リリースされるゲームの種類は数知れず、全てに別々のアルゴリズム、エンジン、ツールがあり、その全てにおいてゲームプログラマーがほぼ自作してゲームは製作されている。

 開発環境 
ゲーム内のキャラクターの挙動や、ゲームの流れを制御するためのロジックは基本的にはプログラマが全て記述しなければならない。そのために必要となるものがプログラミング言語である。言語は基本的に何を選択しても問題ないが、ある程度のトレンドはある。かつてコンピュータの処理速度が著しく遅かった時期においては、処理速度を優先させるべくアセンブリ言語が使用されるか、もしくは極めて平易なBASICが使用されるのが一般的だった。少し後になると、習得が容易かつ精密なメモリ管理が可能なC言語も選択肢に入った。携帯型端末ですら一昔前のデスクトップ型コンピュータに比肩する程の処理性能を有する様になり、ゲームの大規模化も進んだため、処理速度よりも生産性が重視されてC++やC#、Javaなども選択肢に加わっている。特に、C++は様々なOSで使用できることから、ゲーム開発に広く普及している。また、Windowsが搭載されたPCにおいてはVisual Basicが選ばれることもあるほか、インターネット関連技術の発達に伴ってPHPなどのスクリプト言語も利用されるようになった。他にも、Windows用のGUIプログラムを手軽に作成できるフリーの言語HSPなどが利用されることもある。動作速度とプログラムの容易さから、Luaもゲームプログラミングに多く用いられている。

プログラミング言語の中には、言語単体では入出力処理をサポートしないものもある。例えば、C言語は標準ライブラリやUNIXのシステムコールを無くしては画面に文字を出力することすらできない。つまり、記述したロジックを出力装置に渡したり、逆に入力機器からデータを受け取るといった仕組みが何らかの形で必要になってくることがあるという事である。それがAPIである。ゲームに特化したAPIとして有名なものにマイクロソフトのDirectXがある。ゲームに特化している訳ではないものの、3DグラフィックスをサポートするOpenGLもよく利用される。その他、OSやコンソールゲーム機固有の仕様に従ってゲームを組み立てていくことになる。近年ではUnityやUnreal Engineなどのゲームエンジンを利用した開発が主流となっている。

 脚注 

関連項目
プログラマ - プログラム - プログラミング - プログラミング言語 - プログラミング用語一覧

Category:プログラミング
Category:コンピュータゲームの技術
*
Category:ゲーム関連の用語