ゲームプログラム:大筋編その1

 

ここでは、まだゲームプログラムというものを組んだことの余り、或いは全然無いと言った方に対して、

ゲームプログラムというのは大体こんな感じで作るんだよ、といったことを書きたいと思います。

尚、実際にはプログラムの組み方なんて千差万別で、正しいやり方を教わって出来るようになる

物でも無いので、飽く迄これは私自身のやり方だと思って読んでください。又、プログラム自体を

作った事の無い方には理解出来ない部分もあるかもしれません。そういう方は、まず簡単な

プログラムを自作して或程度プログラミング言語やプログラムに対する自信を付けてからお読み下さい。

 

まず、ゲームの企画、案が持ち上がったらそれが最終的にどんなゲームになるのかを頭の中に

描きます。完成予想図が頭の中に無ければ自分がこれから何を作れば良いのかが分からなく

なるので、これは大変重要なことです。次に、そのゲームに対してどんな技術を使うのかを決めます。

Windowsでバリバリのアクションゲームを作るとなったら、やはり描画速度を考えてDirectDrawを使う

等、そのゲームの核となる様な技術を決定するのでこれもおろそかにしてはいけません。また、この

部分は普通、そのゲームのプログラマーが決めることです。まぁ、商業ベースになってきたら

宣伝効果等も考えて最新のテクノロジを使わざるを得ないことも良くあるのですが、それでも詳細は

普通プログラマが決めます。従ってプログラマは技術者として恥ずかしくないように常にその時代に

存在する技術を知っておくべきです。知らなければ選ぶことすら出来ませんが、知っていたらその場

その場に応じた最適な選択をする事が出来るでしょう。

使用する技術が決定したら、その技術を実際に使用出来る様になる為に様々なテストプログラムを

組みます。この時重要なのは、物はゲームなので、ビジュアル面が完成品に対して非常に大きな

割合を占める、と言うことです。従って、まず目に見える物を作ってください。最新の技術を使ったデモ

プログラムを作るもよし、または何かビュワーの様なものを作るもよしです。兎に角目に見えることが

重要です。これにより、これから作る部分の詳細をデバッガを止めて変数を確認したりしなくても、直接

画面上で見ることも出来るようになります。(まぁ、実際には変数を直接参照しなければならない場面も

結構あったりするのですが)。

目に見える物を出すプログラムが出来たら、そろそろその表示部分でどんなデータが必要になるのかが

わかってくることと思います。従って、次はデータ構造を考えます。ゲームは作る規模にもよりますが、

大概の場合は非常に複雑なデータ構造を持つことになります。データ構造をきちんと設計しておかなければ

どんどん訳が分からなくなってパニックしてきます。C言語で言う所の構造体といった物をきちんと定義して、

表示関数等に渡すデータの流れをすっきりさせなければなりません。また、データ構造はゲーム全体を通して

様々なものが存在し得ます。従ってデータ構造をファイルに定義した場合はコメントをきちんと付けることが

重要です。コメントを馬鹿にしてはいけません。それが最終的にあなたを助けてくれます。

さて、データ構造に従って表示する部分が出来たら、まずこの部分に対して完璧を求めます。つまり、どんな

データでも予想した通りに動くことを確認するわけです。これから、この表示部分に渡すデータを作る部分の

プログラムを作らなければならない訳ですが、表示部分に対して自信が無ければ、もし変な表示の仕方を

された時に、どの部分が悪いのかを特定しにくくなります。まぁデバッガを止めて渡しているデータを直接除く

という手も有るのですが、人間が見て常にわかるデータばかりとは限らないのです。明らかにおかしなデータ

が渡されているなら兎も角、微妙な部分で判断が付きにくい場合も往々にしてあります。従って出来るだけ

完璧なプログラムが多い方が良いのです。その方が、間違いを特定しやすくなります。

ある程度表示部分に自信が持てたら、次は操作系を考えます。アクション系の場合はキャラをキーボード、

あるいはジョイスティック等に追従させて動かす事をやってみます。この時、まだ落下やぶつかり判定などは

いれません。また、アドベンチャー系等の絵を表示するタイプは、入力に使用するキーが押されたら、どの

キーが押された、といったことを表示する様なプログラム部分を作ります。この表示部分は後で削るので

適当に作って良いのですが、入力はきちんと作っておきます。また、アドベンチャー等のシナリオに従って進む

タイプのゲームは、この段階で、シナリオのデータ構造も決定しておかなければなりません。実際には表示

部分のデータ構造が出来た直後位にシナリオのデータ構造作成に入るのが良いでしょう。尚、さっきから

表示系と断りも無く書いてますが、これはアクションの場合は自キャラ、アドベンチャー系の場合は表示する

絵です。アドベンチャー系の場合は更にテキスト表示部分、コマンド選択表示部分も表示部分と考え、一緒に

作っておきます。これらの表示部分は夫々独立性が高い方が望ましいです。これは別に表示系に限った

事ではありませんが、プログラムの各部分は出来る限り独立性を持たせましょう。この関数にこのデータを

渡せば常にこういった事をしてくれる、といった事が予想出来る事が望ましいです。絵の表示部分がコマンド

選択表示部分で実際に今表示しているカーソルの位置等を直接見に行く、といった行為は避けた方が良いで

しょう。

 

その2に続く

 

ゲームプログラミング講座へ戻る