column

アドベンチャーゲームの作り方

アドベンチャーゲームの作り方

はじめに

このページではプログラミングにおいてのアドベンチャーゲームの作り方を説明しています。

アドベンチャーゲームとは?

 アドベンチャーゲームとは画面をクリックしたり選択肢によりノベル(小説)と呼ばれる物語の内容が次々と進んでいく種類のアプリケーションソフトです。
 一般にゲームの部類に入っていますが、それとはまた少し違うようです。
 アドベンチャーゲームはテキストによる物語の進行の他に、それにあわせた音楽や画像といったものも使われ、ただ文字だけを読む小説とは違った楽しみがあります。

アドベンチャーエンジン

 プログラミングにおいてアドベンチャーゲームを作成するためには、まずエンジンを作らなければなりません。

 エンジンというのはアドベンチャーゲームを用意に作るための道具だと思ってください。このエンジンを使わなくてもアドベンチャーゲームは作ることはできるのですが、たくさんの種類のアドベンチャーゲームを作ろうとすると大変な時間と労力が掛かってしまいます。

 例えばひとつのアドベンチャーゲームをつくるのに一週間もかかってしまった場合、エンジンを使えば1日で作ることも可能になるのです。

 これは、そもそもエンジンというのはノベル表示部やキャラクターなどのオブジェクトの配置や、画像素材を選定をエンジン側が自動的に指定したりするもので、エンジンを利用すれば、ノベルと画像さえあればアドベンチャーゲームにすることができるようになるものなのです。
 つまり、人の画像を中央に表示したければエンジンに「Hito("XXXX.jpg",CENTER);」というようなスクリプトを入力すれば、それをエンジンが読み取り、画面の中央に人が表示されます。通常ならこの作業に、「(ウィンドウの横幅-人の横幅)/2」というような、画像を中心に配置させるための式をわざわざ書く必要があります。
 このようにアドベンチャーゲームとしてのルールや仕組みを予め定義しておくことで、作業の効率化を図ることができるのです。




プログラムの流れ

それではアドベンチャーゲームを作成するためのエンジンの仕組みを説明します。
下の箱の中を見てください。
a.スクリプトのロード

b.繰り返し開始

	d.スクリプト解析開始
	e.スクリプトから関数を読み込む
	f.読み込んだ関数を画面の構成に設定する
	g.スクリプト解析終了
	
	h.画面構成の読み込み
	i.画面の描画


c.繰り返し終わり
 簡単なチャートですが、上から順に実行されるプログラムとお考えください。
 このチャートではaでスクリプトを読み込みます。これはアドベンチャーエンジンで説明したようなオリジナルの関数を定義したスクリプトファイルです。
 そして、eによりスクリプトから順に定義されている関数を読み込み、その関数を解析しfで画面の構成に設定します。画面の構成というのはiで画面を描画させるための仕組みで、スクリプトによる関数がスイッチとなり画面で表示する内容を切り替わるためのものです。
 何故このような仕組みにするのかと言うと、アドベンチャーゲームというのは常に画面を再描画し続けているからです。
 つまり、もしも画面の構成に登録せずに そのまま直下に文字を表示させたりしてしまったらどうなるでしょうか?その関数が読み込まれているときは正常に表示されますが、スクリプトというのはいっきに読み込んで一括表示ということが出来ません。
 プログラムもそうですが、一行一行読み込んで実行されているものです。
 つまり、文字を表示させるための関数を使って文字を表示させ、今度は人の画像を表示させようと思っても、人は表示されても再描画によって前回実行した文字表示関数の表示が初期化されてしまうのです。これを避けるために、画面の構成という仕組みが必要になっていきます。