ゲーム開発しくじり先生 in イースⅠ・Ⅱ

ゲーム開発しくじり先生ってまとめを読んで大笑いしつつもあるあるすぎて苦笑いしたりイロイロだったんだけど、それで思い出したこと。
書き忘れていたことなので、忘れないうちにメモっておく。
『イースⅠ・Ⅱ』の『Ⅰ』のボスで、ダームの塔に『コンスクラード』(スタッフの間での通称は「岩」だった)という大変に影が薄いボスがいる。
実際、パソコン版をプレイした人間にボスの話をさせると 「最初のボス」 、「ムカデ」、 「コウモリ」、「カマキリ」、「顔」、は出てくるが「岩」はたいてい出てこない。それどころか「岩」を忘れて「ダルク・ファクト」を入れてボスは6体だとか言っちゃう人もいるぐらいだ。
ビックリ難易度のカマキリと顔の間に挟まれて、直後が鏡の間で迷うし、攻略がスゴく簡単で、たいてい初めての攻略、運が悪くても2回目ぐらいで攻略できてしまうので印象が薄いのも仕方ないかな…と思えるボスなのだけど、実はPCエンジン版の『イースⅠ・Ⅱ』では、こいつで思い切りしくじっていたのである。
何がしくじり先生だったのか?

デバッグとバランス調整をしているとき、妙にコンスクラードが弱いのが気になっていた。
いつでも楽勝なのだ。
でもソースを眺めたときHPも攻撃力も防御力も正しいので、楽勝なのは攻略をわかっているからだろうと思っていた。
なぜ数字を間違ってないと確信できたのか。
そもそもボスのHPは見えるから間違っているわけがない。またダメージ計算式も単純なもので、間違えようもない。

実際の計算式はダーム以外は以下のようになっている(ダームは1989年9月 – 微調整と最後のバランスで書いたが、特別な攻防テーブルで特殊処理されている)。
●与えるダメージ=アドルの攻撃力-敵の防御力
●受けるダメージ=敵の攻撃力-アドルの防御力
(防御力は基本的には装備の総和。あとはリングなどによる補正が入る)

恐ろしく簡単な数式で、しかもボスの攻撃力・防御力はマルチプランで作られた標準パラメータバランス見て作っているし、「顔」と「カマキリ」の間のバランスで、数字もソレなんだからおかしいはずがない。255を超えたらラップラウンドしてマズかったけど、敵は装備がないのでその心配もない。

だから「楽勝すぎじゃないかなあ?」と思いながらも、バグっているわけでもないし、だーれも弱すぎると文句は言わないし、他にバランスを取るべきボスやザコはいくらでもいるし、もちろんバグ取りやら直しやら、毎日メモリがパンクするたびに縮めるとか、もうやることはいくらでもあったので「まあいいや」と放置していた。
ちょっとひどい話なのだけど、そもそも攻略が簡単で間違えようがないし、影が薄いボスだから、少々弱くてもそう大きな問題ないかなと思っていた。

実際、PCエンジン版のバランスはパソコン版のファンからイロイロな文句を言われたが「岩が弱すぎる」と言われたことは全く無い。

そしてコンスクラードは楽勝のまま、日本版のマスターは提出された。
マスターを入れたあくる日に、我らが俊英杉本悟がハングバグを見つけてくれてぶっ倒れたのも、しくじり先生だと思うが、それはこの記事でも読んで欲しい。

HaHiくんが言った「カウンタが重なっている」のカウンタとはなんなんだと、いつだったか聞かれたので答えておくと、滑り台の上に載っているときは滑るカウンタが必要なのだけど、この滑るカウンタに使っていたワークエリアがリターンの魔法の選択肢のワークと重なっていたのだ。だから滑り台の上に乗ると滑っている状態なので、滑るカウンタでリターンの魔法の飛び先が上書きされてしまい、どこに飛ぶかわからないわけだ。
どうしてそんなものが重なるんだよと言われたら、世の中にはメモリのないマシンもあるのだよ、0ページが足りないこともあるのだよ、と答えておきたい。

そして年が明けて1990年。
北海道のハドソンに舞い戻って海外版の作業を始めたのだけど、決めていたことが3つあった。

  • タイトルとか書き換えない。全部そのまま使う。英語も表記されてるだろ、で突っ張る。
  • シナリオはわかりにくいところを全部書き直す。オリジナルが神聖視されてないので徹底的に直す。
  • バランスをアメリカン好みのピリッとハードなヤツにする。

そして、しくじりを発見する決定的なポイントになったのがバランスを直す作業のおかげだった。

アメリカ人好みにするためにボス難易度を全般に上げて、経験値を調整して日本版ほど楽ではないゲームに調整するのに決めたので、全部のバランスを調整しなければならない。ついでに、あの弱いコンスクラードもチェックしよう。そう思ってソースを読んでいて、とんでもないミスを発見したのだ。

実際のボスにはHP、攻撃力、防御力に加えて、もう一つ標準的に設定するものがあった。

それはダメージを受けてから、次にダメージを受けるまでの時間

ボスはダメージを与えられると同時にボスがダメージ受けないぞカウンタが設定され、指定されたVSyncの間、ボスは無敵になるようになっていた。このカウンタに例えば30を設定しておけば0.5秒ほどの間は無敵で、逆に3なら0.05秒後にダメージを受けるようになる。
そしてもちろんとってもメモリがないので、こういった数字をテーブルとしてわかりやすく持っているわけはなく、もちろん一体ごとにスペシャルなボスのプログラムでいちいち設定していたわけだが、これになんと大間違いの値が設定されていたのである。

マジかと言いたくなるかもしれないがマジだ。
“lda address”だと命令は3バイト+データを置く場所の1バイトの総計4バイトだが“lda #数値”ならば2バイトである。
2バイト小さくなるのは圧倒的に重要だった…というぐらいメモリがなかったのである。

さすがに数値はよく覚えていないのだけど、標準値が30(つまり0.5秒に一度)だったと思うのだけど、これが3だったという記憶がオボロにある。
ダメージ受ける速度は10倍なんだから30Vほども当たりが出れば、そりゃあそうだよ、すぐ死ぬよ。
何十度も調整で同じソースを眺めていても思い込んでいると、間違いが見つからなくなる典型的な例だと思うのだけど、なぜ日本版を調整しているとき見つからず、海外版の時には、電光で見つかったのかと、20年以上経った今でも不思議に思ってしまう。

そんなわけで、間違いは修正されたので、TurboGragx16版のコンスクラードはちゃんとボスっぽく強いのである。
機会があったらぜひ遊んでみてほしい。26年も前の1990年の骨董品のゲームだけどw

…とはいっても、しょせんはコンスクラード。
やっぱ余裕なんすけどね。

一つ余談を書いておくと、バジュリオンの合体にフェイントを入れたのはHaHi君だ。
合体モードに入ったら一方的に殴られるはつまらないと、合体モードに入った時、アドルが移動すると距離に応じて、確率で合体するのを止めてバラけるようになっている。HaHi君がそれを一生懸命作っていたとき、イジワルなこと思いつくなあと感心していたので、よおく覚えているのである。
そしてそれの確認で、そんとき横で大魔界村の移植をやっていたY君にやらせて、Y君が死にまくるのを見てOKと思ったのは僕であったw

LinkedIn にシェア
Pocket