kumaryu日記
2006-01-31 時間が無い
_ TRPGツール
仕事中に暇なんで考えてたこと。
やっぱりなんだかんだ言っても結局辿りつく場所は決まってて。
一番欲しいのは電子化されたルールブック。
どんなツールを作ろうにも、まずこれが無いと話にならんのだよね。
話が飛躍してるけど。
まずTRPGはリアルでやるのが一番だと考える。チャットじゃダメかっていうと、テンポがリアルの方が断然良いんだよね。
で、リアルでやってる時に改善の余地がある不満点を挙げるとすれば、やっぱり一番に来るのはテンポだろう。
戦闘中の判定や計算の処理、ルールブックのデータ参照なんかは特にツールに頼れる所だろう。
無駄なおしゃべりとかもテンポを悪くする要因としてあるが、それはツールとか難しいし。マスターと各プレイヤーの努力でなんとかする問題だしね。
まあそれはそれとして、例えば戦闘中の判定や計算の処理をノートPCか何かでやるとしよう。
ダイスを振るツールは要る? いや、これは大抵いらん。
20個もダイス振って足すようなゲームそうそう無いからな。 ダイスの種類と数を入力してボタンを押すのと、実際に振って自分で計算するのどっちが速いかっていうと、たぶんそんなに変わらないだろう。
むしろツールに慣れるまでは実際に振った方が速いはず。
ダイス振って判定までしてくれるならどうだろう。
微妙な感じだ。 マスターがツールを使うことを想定しているが、判定に相手のダイス目が必要になるならその入力が必要だ。そこが問題だけど、まあ悪くはない。
しかし、単純な判定だったら自分で計算しても同じだよな。
でもシャドウランくらいになると、自動で修正付けて判定してくれるなら楽になりそうだ。 ああ、でも修正値だけ自動で計算してくれればいいだけかもしんない。4thだと判定は簡単だし。
じゃあ、ダメージ判定までやって、HPやMPまで減らしてくれれば?
これは便利かもね。書き込む必要が無いし、計算する必要無いし。
で、そんなツールが作れないかという話になると。
汎用な物は無理でもルールを指定しちゃえば作れそうではある。 でも、作ったとしてデータはどうするの?
修正を自動計算なら修正値のデータが必要だし、ダメージ計算までするなら武器や魔法のデータが必要だろう。
打ち込む? 誰が? 俺は嫌だね。
たとえ誰か暇人が打ち込んでくれたとしても、それはおいそれとは配布出来ない。ルールブックからパクってきたデータを配布するわけにはいかないだろ。
そこでルールブックが電子化されていれば*1、データをぶっこ抜いて変換するツールは作れて、そいつは配布できるわけだ。
そんなツールの話じゃなくてもいい。 特技の効果を調べたいとしよう。
キャラシーの特技欄に効果を詳しく全部書き込む奴はさすがに居ないだろうし、何ページ参照、って書く欄が付いてるから、詳しい効果を調べようと思った時にはそのページを参照するわけだが、これが結構手間だ。
ルールブックもそこそこ厚いから特定のページを一発で開くのは難しいし、コピーしておいても、コピー自体が何ページになってたり、狭いテーブルの上で広げるのも大変だ。
そんな時、普通はデータベースを使う。特技名で検索して*2すぐに効果が表示されるようになってりゃいいだけ。簡単な電子辞書みたいなものだ。
データベース自体と検索用のツールなんか作るのはすげー簡単だけど、これもやっぱりデータが問題。 えー、これ打ち込むの? って話になわけよ。
まあ最初から電子化されたデータがなくても、誰か暇人が打ち込んだデータを配布しても良いって話になれば良いんだが、そしたらルールブックなんて売れなくなっちゃうから、許可してくれる人は少ないだろう。
これは前に戦闘シミュレータ作ってた時から考えてた問題なんだけどね。
戦闘シミュレータもまともに使うなら、モンスターのデータとか、テンプレートのデータとか入れとかなきゃ何の役にも立たないわけよ。
でもそれを入力して配布するわけにもいかない。
あの時はルール毎にスクリプトを書かなきゃいけなかったり、正確なシミュレーションは出来ないって問題を考えていたけど、実はあんまり問題じゃないんだよね。
結局、戦闘のバランス調整の参考にするくらいなら正確なシミュレーションなんて要らなくて、簡単にそれっぽいバランス調整が出来ればいいだけ。
つまり、ゴブリン10体とレベル2のファイター3人が戦ってどっちがどのくらいの被害をうけるかが問題で、何ターン目にクリティカルを出したかなんて関係無いわけよ。
とすると、厳密なルールはいらない。しかし、ゴブリンとレベル2ファイターのデータは必要。ほらやっぱりデータが重要だ。
なんかいつも通り滅茶苦茶な文章になってきた。発散してきた。やばいので終了。
あー、で、まあ戦闘シミュレータに関しては直接ゲームデータを配布しない、っていう方法を考えてはある。
強さスコアみたいなのに換算して、ゴブリンは強さ3、ファイターレベル2は強さ5とかのデータを入力して配布。それに基いてなんか計算してバランス調整、っていう方法をね。
しかし、その強さスコアがどうすればいいんだか良くわからん所がなんとも難しい。
_ Riko
TexEnv周りはなんとなく動いたっぽい。
Combinerをまだ試してないけど。
テクスチャ周りを大幅に更新してすっきり。
あとやっておいた方が良いと思ったのが、マルチコンテキストの対応。
大体は大丈夫なんだけど、一部モジュールレベルのstatic変数を使ってるんで、そこは直さないと。
いや、マルチコンテキストなんてほぼ使わないと思うけど。でもGUIでGLCanvasを何個もとか使うなら対応しなきゃいけないしね。
以前DirectXで複数ウィンドウにレンダリングしようとしてDeviceを複数作ろうとしたら作れなくて、なんのためのオブジェクトだよ、とか思ったことがあるんだよな。そういうのは嫌なのよ。
_ DirectX10
そういや、COMじゃなかったら触ってもいいかもと思ったDirectX10。
COMだったけど、COMじゃなかった。
もしかしてDirectX8辺りからこんなんだったのかな?
まあ確かにCOMではあるんだけど、DeviceオブジェクトはむしろOpenGLのコンテキストくらいの存在で、PSSetShaderとか脱力するような名前のメソッド持ってたりする。
こんなもんだったら触ってもいいかなと思わせてくれる。
しかしやっぱり嫌なのはMicrosoftなAPIだよな。
何の意味があるんだかわからないダサいハンガリアン記法が溢れるとか、沢山のパラメータを構造体に突っ込んで一気に設定するとか、なんか肌に合わない。
ManagedなDirectXっていじったこと無いけどどうなんだろ。そっちの方が気楽に使えそうだけど。 どっちにしろまだ動く環境に無いから関係ないけどね。
Geometry ShaderがGPUで動くのっていつになるんだろう。 結構複雑そうだけど、すぐにGPUで動くようになっちゃったりするんだろうか。
そうするとOpenGLにも降りてくるんだろうな。それも楽しみだ。