【番外編】ノベルゲームその他

すでにstep06では洞窟探検ゲームを、step07ではブロック崩しゲームを紹介した。だが、ゲームには、まだ紹介していないさまざまな種類があり、ここでは、みなさんのアプリコンテスト出品作の参考までに、それらを簡単に紹介する。

ノベルゲーム

ノベルゲームは、ゲームノベルとも言い、一般的なゲームのように、ユーザの操作なしに勝手に動くことはないという点で、実用系アプリにやや近い性格を持っている。実際、ノベルゲームの枠組みを利用して、教育用コンテンツなどを作成することもある。
ノベルゲームはプログラムとしては簡単な部類に属し、以下の要素から構成される。

ノベルエンジン
コンテンツを表示し、ゲームを進行させるためのアプリ。
ゲームシナリオ
コンテンツの構造を決めるための定型テキストファイル。シーン毎に
  • シーン番号
  • 表示画面の画像ファイル
  • 表示されるテキスト
  • ボタン表示される選択肢と、それぞれの飛び先(のシーン番号)
  • BGMや効果音の音声ファイル
などを記述している。以下にシナリオファイルの一部分を示す。

--- No.0 --- sora.jpg ,『だから俺は帰宅ができない』 --- No.1 --- kyousitu1.jpg やれやれ、やっと終わった,四時半か……今すぐ帰らないと chime.mp3 --- No.2 --- kokuhaku1.jpg 俺の名前は天木カイト。,生きることに何の意味も見出せない、よくいる普通の男子高校生だ。 music1.wav --- No.3 --- kokuhaku2.jpg ???「ちょっと待ちなさいよ!こ、告白の返事まだもらってないんだけど!」,こいつの名は……なんだったっけ?なんだかよく分からんが俺につきまとってくる。,俺が一体何をしたって言うんだ……やれやれ。 --- No.4 --- kokuhaku2.jpg ???「あれからもう一年経ったのよ?!もう我慢できないわよっ!,今日こそ返事を聞くまで逃がさないんだから」 逃げる,5,返事をする,8
画像ファイル群
シナリオの各シーンで表示される画像ファイル。
音声ファイル群
シナリオの各シーンで再生される音声ファイル。
ノベルゲームは、実用アプリと同様にtkinterライブラリを利用して作ることもできるが、ここではpygameライブラリを利用した作例(だから僕は帰宅ができない)を紹介しておく。以下のリンクからダウンロードして、プレイしてほしい。pygameにはButtonなどのwidgetがないため、自前のbutton.pyモジュールを作って利用している。図10-1に実行画面を挙げる。

図10-1: だから僕は帰宅ができない

その他のゲームサンプル

pythonによるゲームプログラムは、インターネットのさまざまなサイトに存在するので、自由に利用して出品作に活かしてほしい。ここには簡単な例を集めたものを置いている。