RPG
テーマ
- 引きこもりが家から出るまでを冒険として、家の玄関を開けたらエンディング
システム
- コンソールで実行できるテキストRPG
- ドラクエの戦闘画面の絵が付いていない感じ
開発環境
ゲームスクリプト
- XMLで書く
- 文字の表示
- 選択肢の表示 (と番号の入力)
- アンカーへのジャンプ
ゲームスクリプトの具体例 (案)
- HTMLとしても表示できる感じのフォーマットにする
- 段落はdivタグ
- 選択肢はselectタグ
- 文字の表示速度はdata-rpg属性で変える (cssのように書く)
- 対応していないタグや属性はスルーする
<html>
<head>
<title>RPGのゲームスクリプトの例</title>
</head>
<body>
<div data-rpg="text-speed:10ms">
最初の段落<br />
text-speed属性で1文字ずつの表示速度を変える
</div>
<div data-rpg="cursor-x:10;cursor-y:20">
カーソルを移動して、その位置にテキストを表示する
</div>
<div data-rpg="text-color:2">
テキストの色を変更する<br />
コンソールなので、0から15の番号で指定する
</div>
<div>
選択肢の表示<br />
value属性でジャンプ先を指定する
<select>
<option value="anchor1">選択肢 1</option>
<option value="anchor2">選択肢 2</option>
<option value="anchor3">選択肢 3</option>
</select>
</div>
<div id="anchor1">
選択肢 1 を選んだ場合
</div>
<div id="anchor2">
選択肢 2 を選んだ場合
</div>
<div id="anchor3">
選択肢 3 を選んだ場合
</div>
</body>
</html>
起動時のコマンド
$ rpg
組み込みのゲームが起動する
引数にURLを入力できる
URLに既定の設定ファイルのファイル名を追加して読み込み、エラーがなければゲームを起動する
設定ファイルが配置されていない場合、ゲームスクリプトがない場合はエラーメッセージを表示する
起動時の処理
- タイトルを画面中央に表示する
- ニューゲーム、コンティニューを選ぶ選択肢を表示する
設定ファイル
- JSON形式で書く
- ファイル名はrpg.jsonで決め打ち
{
"name": "ゲーム名",
"scripts": [
"001.html",
"002.html"
]
}
scripts内の1番目の要素を起動する
セーブデータ
ホームディレクトリ/.rpg
に保存する
TODO: ゲームごとに保存先のファイルを変える処理を考える
{
"title": "ゲーム名",
"line-number": 100,
"status": {
"hp": 20,
"str": 10
}
}
検証したいこと
termboxで、できることをまとめる作業が必要そう
- 画面のクリア
- 文字の上書き
- カーソル位置の変更
- 文字色の変更
は、できる想定で考えてた。
懸念事項
- コンソールのウインドウサイズ (縦横の文字数) は環境によって変わりそう
- センタリングとか右寄せがきちんとできるかチェックしたい
- 半角移動した位置から日本語の文字を上書きした時に、画面が崩れてしまわないか
最終更新:2017年03月17日 16:42