Last Update May.20.2000
・開発環境を整える
Aug.24.1999
・GNOMEをインストールする
Oct.18.1999
・GdkPixbufをインストールする
Apr.09.2000
・ラジオサーバーを強化しよう
Jul.29.2001
・フォント表示とダブルバッファリング
Sep.24.1999
・スプライトオブジェの実装
Oct.31.1999 加筆修正
・スクリーンセーバーを作る
Jan.04.2000
・スプライト管理の実装
Jan.27.2000
・gtkrc 経由のフォント指定
Jan.30.2000
・ファイルアーカイブとレジストキー
Feb.29.2000
・GdkPixbuf を使おう
Mar.06.2000
・GdkPixbuf から PNG ファイルをセーブする
Mar.15.2000
・ピクセルルンルンくるるんるん
Mar.18.2000
・サウンドを鳴らす - 基礎知識編
Apr.09.2000
・GdkPixbuf-0.6.0 から 0.7.0 への移行
Apr.23.2000
・サウンドを鳴らす - 応用実装編
May.20.2000
・GdkPixbuf で画像プログラミングの実験
Sep.17.2001
当面「りも」においての進行の中心となる「デジタルノベルシステム」に ついての提案と解説です。
デジタルノベルを構成する重要な部分として「シナリオスクリプト」が存在します。
プログラムはそのシナリオスクリプトを読み込んで逐次実行(インタープリト)する
ことにより、ストーリーを紡ぎ物語をプレイヤーに提供します。
それらシナリオはテキスト(文章)を中心にフラグ管理とグラフィック等演出要素の
リクエスト(タイミング取り)といった付加を持ち、画面表示をコントロールします。
そのシナリオデータフォーマットを第一回提案として公開します。
--- バイナリデータ形式
ノベルプログラムが実際に読み込み実行する形式としてバイナリデータ形式を
用意しました。バイナリデータ型にすると構文解析を省け、実行プログラムが
簡素になるといった利点の他、データの機密性(簡単に覗けない)が増すといった
利点を持ちます。
その分異機種ターゲット間でのポータビィリティ(移植性)が難しくなってくると
いった弊害を持ち得ますが、バイナリシナリオデータ互換形式を保つのも
出来ないことではないと思います。
現時点のバイナリデータ形式では $FD,$FE といったスコープ範囲を示すデータと 同じ値が他部(主にフラグやグラフィックコマンドの引数)に混じっていた場合誤作動 を起こす可能性があります。これを回避するには解析部でコマンド引数を解析し 明確に差別する必要があると思われます。
--- テキストデータ形式
バイナリデータ以前、クリエーターがシナリオを記述するためのフォーマットです。
このテキスト形式でシナリオを書き、バイナリ形式にコンパイルして、実行プログラム
がバイナリ形式を実行するというのが基本形態です。テキスト形式もそんなに難しい
構文でないので、実行プログラム側に構文解析を持たせてテキスト形式を直に実行
するというのも面倒な話ではありません。実際に今まで作ったプログラム
(
夢色ペンフレンドなど)
はテキスト形式を直に読み実行する形でした。
今後、発展する場合においてバイナリ互換は無理でも、このテキスト形式(ソース) 互換であれば同系列のシステムであると認識していきます。
--- シナリオデータの実際
実際にどんな形でシナリオデータが書かれているのか、簡単なサンプルを提示します。
この例のシステムではグラフィックやフラグ番号は数値で、
goto はシナリオファイルへとジャンプ、を想定しています。
--- プロトタイププログラム
perl で作ったシナリオ実行プログラムです。
コマンドライン形式の簡単なプログラムですが実際にテキスト形式シナリオを
実行出来ます。プロトタイピングにどうぞ。
*.scn ファイルがあるディレクトリで % perl scncheck.perl として実行すれば 動作するはずです。(動かしかたがわかりませんといった系統の質問は却下します(^^;) また、同封されている token.pl はご愛用のタグ分別ルーチンで、scncheck.perl にて使っているので同じディレクトリに入れておいてください。file coding を 変更すればもちろん Windows でも動作します(純粋な perl program ですからね)。
構文制限としては <br><p><page><wait> 以外の画面制御は 行えません。 グラフィックやサウンドはインプリメントされていません。 goto は次に実行するファイル名を指定する方法です。 フラグ名は連想配列を使っているので数字でも文字列でも動作します。
これだけで、簡単なテキストアドベンチャー実行プログラムとして成り立って いますので、これ用のテキストシナリオとかを作成して楽しんでいただけます。 (もしなんか作ったら見せてくださいね)
--- バイナリコンパイラ参考
perl で作ったテキスト形式→バイナリ形式のコンパイラを参考出品します。
*.scn ファイルがあるディレクトリで % perl scn2bin.perl として実行すれば
総ての scnファイルをバイナリ形式に変換してくれるはずです。
現時点で文章の圧縮がインプリメントされていません、無圧縮の状態で吐き出され
ます。
参考程度の物なので細部に関する質問は受けかねます。