見出し画像

訓練場とセーブ・ロードとタイトル

前回はボルタック商店を作り、モンスターやアイテムのデータの入力を行った。今週は、訓練場と、データのセーブ/ロード、そしてタイトルを実装した。あと残りは、宝箱、アイテム使用、特殊な呪文(DUMAPICやMALOR、HAMAN/MAHAMAN等)、そして3階から10階のデータとエンディングでたぶん完成だ。なんとなく先が見えてきた。
まずはタイトルから。

ルビーウォーロック
マジックガントレット
プリーステス

タイトルスクリーンは、PC版の1から3と同じように、ランダムな怪物を表示するようにした。結構いい感じにできたが、たぶんもう気づいている方はいらっしゃると思うが、すごい問題がでてしまった。色数が足りなくてロゴがまともに表示されないのである。Pyxelは同時に16色画面に表示させることができる。16色のうち、白と黒、そしてダンジョンの描画のために5色予約しているため、11色をモンスターの表示に使うことができる。元々の絵はたぶん256色くらい使っているため、k平均法によって色数を11色まで落として表示させている。それなりに絵としては見えるが、今回の場合、当然Wizardryのロゴもモンスターと同じ扱いであるため、色数が足りずモンスターのパレットに引っ張られて表示されてしまっている。ここはとりあえず、色味が違ってしまうが、ロゴのほうを予約色で塗りなおすしかないかなと思う。個人的には、Pyxelはファミコンと同程度の24色くらいまでだせるとありがたいのだけれども。PICO-8は一応32色までつかえるようだし。そこまで出せると、画面内にモンスターを二匹だせるようになる。

訓練場は街の施設の中で一番大変かと思ったが、いままで作ったアセットが流用できたのでそれほど苦労はしなかった。

種族の選択
ボーナスポイント19で侍を作る
ポートレート設定
名前入力
作成完了

オリジナルのキャラメイクは、最初に名前を設定し、そのあと種族、性格、属性値の設定、職業と決めていく。ただ、これだと名前が「ああうあ」とか「ああういあ」とか適当なものをつけてしまってあとで命名しなおすという面倒くさいことをすることになるので、最初に種族、性格、属性値、そして職業をきめたあとにポートレートや名前を設定するように順番を変更した。
また、ボーナスポイントを振りなおすためにキャラクターを作っては削除を繰り返すのは生産的ではないので、属性値を降る場所でボーナス値を再取得できるようにした。これで高ボーナスのキャラは比較的簡単につくれてしまうが、高ボーナスを狙う人はいずれにしろ作り直すし、そうじゃなくて一発で作る人は振り直しをしなきゃいいのでたぶん問題はないと思う。
あと細かいところで言えば、キャラクターの名前で濁音や半濁音が付く場合、ファミコンなどでは「ガ」を表現するのにメモリをケチるために濁音付きのフォンドがなく「カ゛」みたいに濁音専用の字をつかって二文字で表現するが、今回は濁音の文字を選択したら、一文字前の字をきちんと濁音に変更するようにした。

最後にデータのセーブとロードだ。要は、キャラクターなどの情報をファイルへ書き出したり、読み込んだりする機能だが、これによって、迷宮で冒険の中断と再開ができるようになった。

迷宮での中断
冒険の再開

ファイルへの書き出しはjson形式で出力している。オリジナルなセーブファイルをつくらず、単純にキャラクターの辞書を出力すればいいのですごく楽ちんだ。
Apple版はそうではないらしいが、私がかつて遊んでいたPC版(FM-7版)は、キャンプ、戦闘ごとに結構頻繁にセーブを行っていた。そのため、リセットを行うとそれなりの場所から再開できた。今回もそれくらいの頻度でセーブを行おうと思ったが、このファイルへの出力は結構重い。それほど大きなファイルを出力しているわけではないにも関わらず、画面がちょっと固まる。オリジナルのWizardryみたいになにかあるたびにディスクをガチガチ読み書きするのも乙かもしれないが、ストレスがたまるので、ファイル書き出しを並列に行わせるか、あるいはセーブ頻度をApple版と同じにするか考えなければならない。まあ課題はあるものの一応セーブとロードができるようになったのはでかい。

次回は宝箱かなあ。一応ルートテーブルはもう打ち込んだので、あとは実装するだけなんだよね。そういえば玄室の処理もまだだった。これも一緒にやらないと。




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