見出し画像

戦闘部分を作る

前回のWizardryの日記はすごく受けがよかった。びっくりした。今までのEverquestよりいかにメジャーなタイトルかがよくわかった。とはいえ、Wiz自体の開発の進捗はあまりない。Wizardryは最初ダンジョン歩けるようにして、戦闘をちょちょっとつくれば街なんかすぐできてちょちょいのちょいで終わるだろうくらいに思っていた。しかし

ダークゾーン、壁と扉、床と天井のマークと描画する

迷宮の描画処理はメインのコードは上記くらいで済んだにも関わらず、戦闘部分に関しては、

もうぐちゃぐちゃ

行き当たりばったりで書いていったらどんどん複雑になってこんがらがってきた上に、これでもまだ完成していない。特に煩雑なのが呪文だ。結局ある段階まで戦闘部分を書いたが諦めて、最初から書き直すようにした。WizardryはもともとD&DみたいなテーブルトークRPGをお手本にしているため、私もそれにならって、今度は実際の戦闘の表示やコマンド入力部分と、ルール部分を分離して書くようにしてみた。表示や入力部分はさすが古典的なゲームだけあって結構簡単にできたが、面倒くさいのがルール部分である。簡単に言えば、プレイヤーズハンドブックとダンジョンマスターズガイドとモンスターマニュアルに相当する部分を記述しなければならずそれがすごく大変だ。
ただまあ、Wizardryは解析がすごく進んでいて、攻略本以上の情報がいろいろなところにたくさんおいてある。なんだったらappleII版だったらリバースエンジニアリングから書き直したソースコードまであったりする。さらに今でもそれがメンテされていたりするから0から作り直す必要がないのは楽だ。

肩にたかる金貨
大人げない
識別されているのに絵がおかしい

パイプクリーニングくらいしかしていないが、とりあえず戦闘は完成した。戦闘中のHAMANとかMALORのような特殊な処理をするものは実装していないが、一通り動くようになった。まだ表示部分を最適化していないので、メッセージが飛び出していたり、ウインドウの上部に固まって表示されたりしているのはご愛嬌だ。グループメンバーに死んでいるのがいるのは、死んでいるキャラは戦闘中は後列に追いやられるのを検証するためだ。あと怪物が1Fや2Fのものが多いのは、そこまでデータ入力したところで疲れてしまったからだ。怪物が呪文やブレスを使う処理が正しく実装されたかチェックするため、どうしても2Fの怪物をだしてしまう。なにげにアイテムも基本的な部位を数種類作っただけだ。子供のころはこの手のアイテムや怪物の設定を考えるのは好きだったが、歳をとるとその辺が億劫になってしまう。
次は戦闘と迷宮部分を繋げて、玄室に入ったら戦闘になって、戦闘が終わったら迷宮にもどる部分をつくろうと思う。これで前もって作ったイベント処理部分と組み合わせて1Fでマーフィーズゴーストに遭遇できるようになる。宝箱とかも実装しなければならないが、その後はとりあえず街を実装して、キャラクターを作ったり編成をゲーム内で変更できるようにしようと思う。あとそろそろgitにのせるかなあ。


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