進捗日記 / キャラデータとゲーム規模について考えてみたりする。
自分を表現するデータを考える(利用させて頂くだけ)
さて今日からぼちぼち「読む」ところから「遊ぶ」ところへ作るパーツが変わる訳ですが、ここはシンプルにいきたいなーということでGURPSのシステムをお手本に自分のゲーム内容に合わせてカスタマイズしていくことにします。
GURPSをお手本にするにも、本当に基礎の基礎、バナーでいったら真ん中の本だけの規模で作る予定でして、なぜならばダイススレはもーっと少ないパラメータでめちゃくちゃ面白かったので。
あとお手本にするのは『TRPGプレイヤーが異世界で最強ビルドを目指す』で表現されてる、スキルツリーを伸ばすマネジメントの面白さとスキルの組み合わせによるぶっ壊れ性能の面白さ、をシミュレートできれば良いいなあ。
ただ本当のことを言ってしまうと、自分はTRPGはお恥ずかしいことに未経験でしてGURPSもやったことなかったりします。
なのでダイス3個で表現される小宇宙の感覚について、全然実感できてなくて、それはこれから作っていきながら身に付けるという泥縄具合なのをお許し下さい。
GURPSの初心者向けソロシナリオとか、ググった感じでは無かったんですけど、あるのなら是非是非やってみたい。
そんなTRPGレベル0の自分がレベル0なりに懸念していることが1つあって、GURPSは3D6(6面ダイス3個)で判定していくので、判定の数値計算が3から18の中に収まります。するとTRPGと違ってアドリブの効かないPCゲームだと、スキルの組み合わせで数値をいじるとあっという間に判定が飽和しちゃうんじゃないかということ。
これはスキルを判定に影響させるだけではなくて、発動できる回数に制限をつけるとか(1日1回までとか)、判定とは違うところに影響させる、とか回避する方法は色々あるとは思うのだけれど、思っていたよりEventを面白くするのは腕の見せ所になるかも。あとNPC達にもキャラデータを持たせるので、前言ってた思考ルーチンもちゃんと作らないと面白くなくなっちゃうかもです。
取り敢えずデータを作ってみる。
といった先の心配は置いておいて、取り敢えず自分を表現するデータをどういう形にするかを考えなくてはいけない。
パラメータの設定はGURPSをお手本にするにしても、Ren'Py上というかPythonでどうまとめておくか、ちょっと悩んでいたのですが、先日調べた、タプル、リスト、辞書、の処理でどれもそれほどスピードは変わらない、ということだったので当面のスクリプトの読みやすさから、辞書型でまとめておくことにしました。
まだ暫定ですがこんな感じ。基本データ4つだけというのはシンプルで良い。
##キャラ用のdictデータ バージョン0.01
define chara_data = [
{"name":"あなた",
"st":100, "st_max":100,
"dx":100, "dx_max":100,
"iq":100, "iq_max":100,
"ht":100, "ht_max":100,
"cpoint":100,
"money":100,
"wepons":[],
"items":[],
"skills":[],
"achievemnts":[]}
データにアクセスするとき”st”と”を付けなくちゃいけないのが癪に障るけど、多分スクリプト読み直した時に直感的にわかるのはこれだろうなあ、と。
武器、アイテム、スキル、実績は追加されていくのと数の制限とか今は考えてなくてリストにしました。ここも後で煩雑になるようなら変えていく所存。
ハイパーテキストのラベルをちょっと改良する。
データのこと考える息抜きに先日出来たウィキ風画面用のラベルをちょっといじる。何をしたかというとページ更新をシステマチックに出来るようにしました。
と言っても特別なことはしていなくて、更新後の辞書を用意して、指定した単語の内容を書き換えるだけです。
##ウィキ風画面データ
##初期データ
define hypertext_dict = {
"トップページ":"女神データベースのトップページにようこそ!\n\n左のメニューからお好きなデータにアクセスすることが出来ます。\nまた文中のハイパーリンクから、その用語のページにアクセすることも可能です。",
"用語":"用語のトップページです。",
"事件":"事件のトップページです。",
"キャラクター":"キャラクターのトップページです。",
}
##更新後データ
define hypertext_changed = {
"トップページ":"テストその2です。赤恐竜さんのやり方で{a=exec:renpy.show_screen('hypertext', 'トップページ')}トップページ{/a}画面にリンクします。",
"用語":"用語の変更後のページです。",
"事件":"事件のトップページです",
"キャラクター":"キャラクター変更後のページです。",
}
##ページ更新用ラベル
label page_update(word):
$ hypertext_dict[word] = hypertext_changed[word]
return
##使い方
e "トップページの内容を書き換えます。"
call page_update("トップページ")
実際はスクリプト上に書いてなくて、hypertext.rpy、hypertext_data.rpyにまとめていて、使い方の部分だけスクリプトに書いています。これでスクリプトはすっきりしました。
別ファイルに切り分けたので他のプロジェクトに持っていってもすぐ動きます。こういうのがやりたかったのですね。再利用しやすいやつ。
更なる参考資料を参照する。
あと今日はDTで遊んだりしました。
カードゲーム部分よりハイパーテキスト部分を色々見て回ったり。
「ノベル」ゲームとしてのテキストボリューム的にはどうなるかは未知数ですが、ノベル「ゲーム」としてのボリュームは規模としてGBソフトが今自分個人で作れる上限だろうとざっくり見積もっているので、DTとパワプロクンポケット2の攻略サイトは見つけてあるのでカンニングしてデータの量がどの位かは調べておきたいです。
あと、そろそろ理想通りに作ったらどんな規模のデータ量になるかは見積もらないと、この先の判断が出来なくなりそう。この時点で削れるもの削るべきものも見えるだろうし。
グラフィックも当面どうしておくかも考えないといけないな。