見出し画像

街をつくり始める

深層強化学習のチャレンジが終わった。結果として目標としていた8-1をクリアすることができた。めちゃくちゃ苦労した。ちょっとパラメータを変更したものを学習させるだけで軽く1日かかってしまったからだ。このくらいのゲームでもこれだけ時間がかかるのであれば、もっと高度なゲームだとありえないくらい時間がかかるに違いない。

noteはアニメーションgifのアップロードが大変

AIはまだまだ初心者もいいところなので、この日記で語れることはなにもないが、ひとつ言えることがあるとすればpythonを勉強しておいてよかったということだ。

さて、時間がまたとれるようになったので、Wizardryを再開しようと思う。結局pythonであることにはかわらないのだけれども。
そう言えば、pyxelがv2にかわっていた。そのまま実行してみると、問題なく動くものの、リソースファイルの形式がガラリとかわっていて、作り直せとすごい警告がでるようになった。v2になってなにが大きくかわったのかはっきりしないが、ぱっと見解像度がかわったりリソースファイルのイメージの数がふえたわけでもなさそうなので、v1にもどすことにした。個人的には解像度がVGA程度まであげることができたり、256色くらいまでだせるようになるといいのだけれども。
前回までで、迷宮、迷宮イベント、戦闘、呪文処理、キャンプまで作った。残りは、街(酒場、宿、商店、寺院)、街の外(訓練場、その他)、宝箱、NPC、オープニング、そして地獄のデータ打ち込みだ。結構先がみえてきたな。いい加減街の実装を行おうと思ったので、今回はこの中で、比較的実装が簡単な、酒場、宿、寺院の実装を行おうと思う。
というわけで、作った部分をアニメーションgifにしてみた。

ようやく死んでいるキャラを生き返らせた

Wizardryの街はすごくシンプルだ。基本的に絵がないので、すごく地味だ。Wizardry4に各施設のグラフィックスがあるが、PC版はきちんとあるものの、リルガミンサーガ版の施設の絵はなんとなくイメージとあわない。絵は個人的には、PC98版の5が一番だと思う。次点はPC98の1-4になるだろうか。ただ、素材の数という意味ではリルガミンサーガが一番だ。 
話をもどすと、以前から言っている通り、私が作っているのはファミコン版を忠実に再現したものではない。迷宮の壁はファミコン版の1から。基本的なフォントはファミコン版のダイヤモンドの騎士からもってきたもので、通常のフォントは美咲フォント、怪物のグラフィックスはリルガミンサーガからもってきたすごいキメラな構成になっている。ルールもオリジナルなAD&Dの第一版もどきではなく、3.5版に近いものになっている。もうここまで改変してしまったので、オリジナルで不便なところをいろいろ変更している。ひとつは所持金をキャラクターごとではなく、グループ全体で最初から共有するようにしているところ。それによってUIを変更している。宿でのレベルアップ処理でも単純に新しい呪文を覚えたとかステータスが上がったと表示するだけでなく、実際に何を覚えたのかであったりどのようにステータスが変わったのかを表示するようにした。

老衰の様子

老衰はオリジナルでは、レベルアップ時にVITが2以下になったら強制的に喪失するようになっている。キャラクターの年齢は、老衰には直接影響しないが、年齢が高いとステータスは下がりやすいようにできているため、いずれにしろ寿命が尽きやすいようにできている。ここでは、宿泊したときにVITが2以下でかつ年齢が50以上であれば老衰するようにした。また、若くてもVITが1より下であれば衰弱死するようにもした。

カント寺院は有名なのに利用者はほとんどいない気がする

カント寺院の蘇生処理はDIやKADORTOと同じではない。
呪文のDIやKADORTOの蘇生率はキャラクターの(VIT値の4倍)%だ。最大値で72%だ。KADORTOのほうが蘇生率が高そうなイメージがあるがそんなことはないようだ。また、DIもKADORTOのいずれも蘇生に成功した場合、VITは1減ってしまう。さらに、VITが3の場合、成功した場合は強制的にロストする。ただ、VITが3のとき限定の話で、VITが2とか1であった場合ロストはしない。これは、たぶんVITが低い場合はもう呪文による蘇生はできませんよということを実装しようとしたのだろうと思うが、あきらかにバグなので、ここでは、VITが3以下で蘇生しようとすると必ず失敗するようにした。
カント寺院での蘇生は呪文の蘇生よりも成功率が高い。死からの蘇生は、キャラクターの(VIT値の3倍+50)%で、VITが17以上であれば必ず成功する。灰からの蘇生は(VIT値の3倍+40)%で、初期VITが最も低いElfやHobbitでも58%もある。またVITが3以下だとロストするという制限もない。ただ、呪文の蘇生と違い、カント寺院での蘇生は成功した場合、VITは下がらないものの、年齢が1-52週あがってしまう。個人的に蘇生がキャラクターが失われる可能性があるだけでなく、蘇生がうまくいっても後遺症が残るというのは死というもののペナルティの高さをうまく表現していて好きだが、呪文による蘇生のペナルティがないのは片手落ちな気がする。今回では呪文でも年齢上昇をいれることにした。
蘇生(と治療)時のメッセージは、ささやきーえいしょうーいのりーねんじろ!にした。ファミコン等あるバージョンのWizardryは、「えいしょう」と「いのり」が入れ替わっていたりするが、英語版のWizardryはMURMUR - CHANT - PRAY - INVOKE!であるため、「えいしょう-いのり」の順番があっていると思う。

カント寺院のメインコード

コードとして冗長であることは認識しているが、せっかくの銭ゲバ寺院なので尊大にかいてみた。


この記事が気に入ったらサポートをしてみませんか?