ゲームブックとは
通常の小説なら、1ページから最終ページまで連続した内容であり順に読み進めていきますが、ゲームブックには選択肢というものがあり、その内容は連続した内容にはなりません。各章には別の章への飛び先が記されており、それに従い読み進めます。飛び先は複数に分かれているのが通常で、読者は話の内容により飛び先を選択することが可能でゲーム感覚で読み進ることができます。性格診断テストなので行われるYES・NOで読み進める図をイメージしてください。
弟切草などのビジュアルノベルの先駆と言うべき存在といってもいいでしょう。
「火吹き山の魔法使い」が有名どころでしょうか。もちろん私もやりました。記憶にあるのは迷宮の永久ループ状態です。幾度ブチ切れそうになり、本を破り捨てそうになったことか。
ドルアーガの塔シリーズというのもありました。アーケードゲームからのノベライズ化されたものです。あれは面白かった。と書いてももはや何が面白かったなんて覚えておりません。確かヒロインのカイがバンドを結成することになってカイはギターの担当となります。練習の日、カイはギターを片手に登場しますが、彼女が手にするものはギターには似ているような気がするもののそれは櫂だったのです。メンバー(特に主人公)は口汚くののしりました。彼女はいじけてしまいドルアーガの塔に隠れてしまいます。主人公は仕方なくカイを迎えに行くというストーリでした(この文章には嘘が隠されています)。
このページは?
私の目は節穴なのかゲームブックは本屋では見かけることはなくなりました。が、ビジュアルノベルという発展を遂げています。WEBサイト上でもゲームブックを再現したサイトも見かけます。
また、ゲームブックを公開したいと思っている人がいるかも知れません。
それに一役買って出ることができればね。ということで、どうよ?
スクリプトの配布
Perl5で作成しています。
次の3つのCGIスクリプトを配布しています。
- gmake.cgi ゲームブックを保守する(作る)ためのスクリプト
- gplay.cgi ゲームブックをプレイするスクリプト
- gcommon.cgi 共通の関数をまとめたスクリプト
jcode.plが必要です。
稼働しているサンプル
- 保守画面のサンプル。パスワードはpass。書き込みはできません。通常は非公開にするべきです。
- ゲーム実行サンプル1(要javascript)
- ゲーム実行サンプル2(イベントフラグ導入。要cookie、要javascript)
利用方法
設置編
解凍後、gcommon.pl、gmake.cgi、gplay.cgi、jcode.plをCGIが実行できるディレクトリに設置して下さい。属性は755。また同じディレクトリにgbookというディレクトリを設置して下さい。属性は777。
ルートディレクトリにCSSディレクトリを作成。g.cssを設置。
gmake.cgi、gplay.cgiの変数部を変更することにより変更可能です。
Hi-hoの場合
- cgi-binのディレクトリ
- /gbook/(777):gmake.cgiで作成したデータはこのディレクトリに保存されます。
- /gcommon.pl(755)
- /gmake.cgi(755)
- /gplay.cgi(755)
- /jcode.pl(755)
- htmlのディレクトリ
- /gbook/g.css
各機能編
メンテナンス(gmake.cgi)
- 好きなだけ物語を作成することが出来ます。
- 一つの物語は最大9999の章を作成することが出来ます。
- 一つの章は最大9の分岐先を作成することが出来ます。
- 章の一覧から章の内容をポップアップで表示させたい時は、IEだとShift+左クリックで開きます。
- ログイン画面
- ユーザの認証を行います。パスワードはgmake.cgiにある変数を修正して下さい。
- シナリオ一覧/登録
- 物語のタイトルなど基本情報を設定、一覧参照します。
- エピソード一覧
- 章の一覧、分岐を表示します。
- エピソード入力
- 章の入力、分岐先の入力を行います。
- 必要なフラグの設定、イベントフラグ(最大62)の追加・削除を行います。
-
- テキストエリアにHTMLを書き込んで行くわけですが次のことが自動で行えます。
- 一行はプレーンテキスト(p)としてマークアップされます。
- 空白行がある場合は次の行でマージン指定を行います。
- 「.(ピリオド)」から開始の行を見出しとしてマークアップします。ピリオドの数はレベル+1となります。
- ブロック要素が書き込まれているときはそのまま書き出します。
- <h〜、<bl〜、<div〜、<p〜、<l〜、<dt〜、<dd〜、<dl〜、<pre〜、<t〜、<ul〜、<ol〜
- </h〜、</bl〜、</div〜、</p〜、</l〜、</dt〜、</dd〜、</dl〜、</pre〜、</t〜、</ul〜、</ol
- ol,ul間はリスト行とみなしてリスト(li)としてマークアップします。
- 行頭が「del:」「DEL:」の行は非表示になります。
- 行頭が「del-:」「DEL-:」から始まる行から「-del:」「-DEL:」で終わる行の範囲は表示されません。階層に対応しています。
- 行頭が「monner-:」「MONNER-:」から始まる行から「-monner:」「-MONNER:」はモナー(MS Pゴシック 中(12ポイント))用のスタイルを指定します。
- あとは、テケトーに見てくれ。
ゲーム(gplay.cgi)
説明が必要なら誰も遊べないし読めないと思う。
感覚的に操作出来るようにしたつもりです。
というわけで、実物をテケトーに見てくれ。
その他
スクリプトからはき出されるHTMLのバージョンはHTML4.01 Transitionalです。設定によりjavascript/cookieの対応したブラウザでの利用が必要になります。
利用条件、注意事項など
- スクリプトの利用によって発生した損害に作者は責任を負いません。
- 公開したスクリプトは気分次第で変更を加えます。その際、バグが仕込まれていたり、ファイルレイアウトに変更が加えられ上手く動作しなくなったり、時にはファイル自体が壊れる場合があります(そうならないようになるべく気を付けますが)。
- リンクのページがあるなら、このサイトにリンクを貼って頂けると喜びます。ToA.トップページはサイトが存続する限り同じURLですが、そのほかのページは移動しがちです。
- 商用目的で使わない場合
- ご自由にお使い下さい。連絡も不要です。
- 作成されるHTMLに著作者の表示も不要ですし、改変も自由です。
- 改変したスクリプトを公開する場合はご一報ください。次の場合は不許可です。
- 作成されるHTMLのマークアップに多くの誤りがある場合。
- 作成されるHTMLに著作者の表示を強要する場合。
- 商用目的である場合。
- 商用目的で使う場合
- 広告を挟んだり、リンク先を広告にしたり、そもそも商用目的でサイトが運営されている場合は連絡下さい。許可をしない、または、有償といたします。つーか、雇ってくれ。
今後の展開について
近未来の対応
- 分岐先は個数指定で表示(デフォルトは2)
- リファラー+cookieでリンク元判断を行い直接のアドレス入力時は表示させないフラグ。
- あればバグの修正。
- ソースの見直し。
- バージョン管理。
- エラーの表示を優しく(適当すぎ)。
- このページ、もっとわかりやすく(説明するのは難しいっす)。
生涯をかけた対応
- 「火吹き山の魔法使い」のようなサイコロバトル。
- 「戻る」ボタンで戻った場合のイベントフラグのクリア(……ほっといてもいいか。積極的にこの現象を使って分岐をつくってしまう作戦もあるかも)。