種族の自動生成をかけてみた感じ

種族生成は、ためしに100個くらい種族生成をしてパラメータ調整に移行中。

種族バランスの問題

基本はこういう流れで生成していく。
1つ目: ベース1: 1/10、ベース2: 1/10
2つ目: ベース1: 1/11、ベース2: 1/11
3つ目: ベース1: 1/12、ベース2: 1/12


1つ目で人間の派生種族が出来たりすると、2つ目で人間の派生種族が出来る可能性は、人間と人間の派生種族がベース1とベース2に出現する可能性があるので飛躍的に高くなる。単純計算だと1/10が2回で20%だとして、2/11が2回だと36%になる感じ。
最初に魚が2つ連続して出れば魚ばかりの世界になる可能性もあるし、イグアナばっかりになることもあると。


つまり、10という基本種族の数が少なすぎて、初期に出来た種族によってバランスがあっさり崩れる感じ。
バランス的には海洋生物60の陸関連40くらいがよくて、高度な知的生命体の割合は2%〜3%くらいでいい。
魚が多いのは、ある程度魚がいないと深海の住民が0になっちゃうため。


現在だとこうなってる。
魚: 2(淡水魚、海水魚
水陸両用:2(オットセイ、蛇)
陸専用:4(犬、猫、イグアナ、牛)
空:1(鳥)
知的生命体:1(人間)


こんなもんがいいかなと思うんだよな。
魚:40
水陸両用:16
陸専用:22
空:20
知的生命体:2


多分現在の「10の種族から無数の種族を生成する」じゃなく、「10の種族から50の種族を生成し、50の種族から無数の種族を生成する」にした方がいい。
最初に「淡水魚+淡水魚」「海水魚+海水魚」とかの基本間でだけ合成したものを一定数作成して、種族数のバランスをとってから合成を始める感じ。一定数の作成が終わった後は、「淡水魚」とかの基本種族自体を削除してもいいかも。


ソートが出来ない件

パラメータ調整するためにいろいろデータ眺めるんだけど、一つ一つがJSONで固まって入ってるからDB見ただけじゃさっぱりデータがみれねぇ。
一覧作るのもいちいちJavaScriptで全読みしてテーブル作らないと駄目。ってそれじゃメモリ利用量が膨大なためにDBに入れた意味ないし。


やっぱりRDBにちゃんと入れないと駄目な気がしてきた。
手を抜くもんじゃねぇな。
地図とか細かいとこまで見なくてもいいのはJSONごっそり入れてもいいけど、一覧する必要があるのはおとなしく全部RDBに入れた方がいいっちゅうことで。


あとどうでもいいけどJSONってなんかいまいちだね。
ライブラリいらないのは楽でいいからしばらく使うけど、重い。お手軽に使えてもっと軽いのあったら乗り換えようかな。


陸海空のバランス

今のところ「高」が二つとかを許容しているんだけど、陸と海が高の種族とかがぞろぞろ出てくる。反対に海だけ低の種族とかもぞろぞろ出てくる。
拒否してるのがAll高の変態と、All無のダルマだけだから、そういう仕様なんだけど、やっぱり気持ち悪い。
空も飛べるのに海だけの種族と同じだけの遊泳能力を誇るってのはおかしいだろう。


どういう解決方法にするのかいまいち決まらない。
優先順位設けて、海の能力が高なら強制的に他の能力を無にする、飛行能力が中なら他の能力は最大中まで、飛行能力が高なら他の能力は最大低まで、とかのフィルタリングを設けた上で、その上でこのフィルタを10%の確率で無視する種族がいる、とかにしようかなぁ。
あるいは、一つだけ高の種族にはエキスパート補正みたいのを入れて、分布図作成の際に多種族に勝ちやすくするとか。
決まらん。


文明値と属性値

文明や属性とかはなんかしっくり来てる。
ざっと眺めた感じ、んー、まあいいんじゃないと言えるかなと。


でも分布図作る時ちょっと厄介なのは、火水風土光闇とかの属性がマップにないんだよね。追加した方がいいかも。
この手の属性値ってのはなくてもいいんだけど、ファンタジー用の世界を作る場合にはまあ、あった方がいい場合が多い。
理詰めでファンタジーやるなら、水の精霊は常に水場にいるべきとか地形に沿った形でやってもいいんだけど、例えば一つの山があったとして、この山に温度や標高以外に闇が強いといった要素が加わるなら、ここは悪魔の巣窟であるとか出来るわけで。


身体能力と一切関係ない属性値を重視して追加した背景には、ファンタジー世界特有のこの手の要素を世界に加える事でより作りやすくするってのがあるから、それ考えるとマップにもやっぱ追加した方がいいような気はすんだよな。

その他

なんか地味にパスワード設定出来るようにしたり、じわじわと公開準備中。
今月中には一回アップしようかな。


あと、外見の方は棚上げ中。
他のタスクも多いから、一番重いこれについては明日だ明日、と言い続ける毎日が始まりそうだ。
ということで外見はまた明日だ、明日。