アカウント名:
パスワード:
30年の時を経て当事者が直接語るというのは感慨深いが、話の中身自体は特に何か当事者にしか知り得ない興味深い事情とか裏話があるわけではなく、現象(8回なにかすると別のフラグが立つ)から容易に想像がつく、フットプリントできるだけ小さくするための実装上の制約以上のものではなかったですね。
しかし逃げるコマンドの回数をカウントしなきゃいけない理由がわからない。雑魚敵に対して>>ドラクエIVでは4回目の「にげる」で必ず逃げられるという仕様は限られたメモリ空間を3bitも消費する価値があるほど重要だったのだろうか。一回あたりの逃げ成功確立を適当に設定しておけば十分な気が。あと「4回試行でかならず成功」を実装するだけならカウンタは2bitで十分な気が。
2bitの逃げるカウンタと会心フラグの間に他のフラグがある事も容易に想像がつくはずですが?
>2bitの逃げるカウンタと会心フラグの間に他のフラグがある事も容易に想像がつくはずですが?ああそのとおりですね、4回目以降8回目までにも別フラグが立つことによる副作用がありえたわけですね、会心の一撃フラグがあまりに強烈なので8回という数字が際立っただけで。逃げ続けると他のフラグもたって何かべつのことが起きてるのだろうか。
まあ、ストーリーの元になった記事からして「逃げるカウンタが3bit」って間違えちゃってますので、しかたないですけど、
下位から順番に1~2: 逃げ回数(通常の戦闘は 11 = 3回逃げた時は確実に逃げられるはずなので、2bitで十分)3: 時の砂使用済(戦闘状態の保存処理を0の場合のみ行うことで、使った時の状態に差し戻せるようにする)4: パルプンテの結果が「ちからがみなぎってきた」だった(すべての攻撃が会心の一撃になる)5: 敵を倒した(1体でも倒したら戦闘終了時のメッセージが「○○をやっつけた」になり、1体も倒せなかった時は「○○はいなくなった」に)6: 不明7: 敵が複数種類かどうか(戦闘終了時の「○○(モンスター名)をやっつけた」が、「まもののむれ」表記になる)8: 不思議な霧状態かどうか(該当時は敵味方全員呪文の効果がなくなる)と、戦闘中の状態をbitフラグで管理しています。たくさん逃げ続ければ他の状態も変更可能ですが、戦闘中に使って意味ありそうなのはあとは8bit目ぐらいでしょうか。
また、3bit目は時の砂フラグなので「時の砂を使う+4回逃げる」でも8逃げ可能。
となると、さらにもう1度8回逃げると普通に戻るわけですね。
時の砂は「使った時の状態に戻る」んじゃなくて「使った時にひとつ前のターンに戻る」だぞい
すみません、なんか勘違いしてました。
戦闘中に2回以上時の砂が使われることはないので、時の砂を使って巻き戻した後は、もう巻き戻すことはないから状態保存は不要ってことで負荷軽減のためらしいですね。
涙ぐましすぎる…
Zガンダム「君は、時の涙を見る」
だんだん脱線してきたけど、
>3: 時の砂使用済(戦闘状態の保存処理を0の場合のみ行うことで、使った時の状態に差し戻せるようにする)
爪に火を灯すレベルのメモリ節約をしてんのに、なんでこんな"戦闘状態の保存"を必要とする時の砂なんてアイテムを実装したんだろうか、ゲームの本質ともストーリーイベントともかかわってこないのに。
ドラクエIVにもなると(カセット側に積んだ)RAMにかなり余裕ができて比較的自由に使えるようになってたんだろうかね。そうするとIVにおける2bit逃げカウンタと各種フラグのパックは、I,IIを実装した際に沁みついたプログラマの性でそうしただけで、もうこの世代ではハードウェア的には必ずしも要求されてたわけではないのかも。
カートリッジ側に128KBのRAMを積んでいても、そのうち同時にマッピングできるのは8KBで一時的な退避ならともかく、ワークエリアとしては使い辛いのではないかと。
それにこの種のカウンタはゼロページに置きたいしね。(0000h~00FFhのアドレスはレジスタ的な使い方ができる。)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
まあそうだろうなと (スコア:0)
30年の時を経て当事者が直接語るというのは感慨深いが、
話の中身自体は特に何か当事者にしか知り得ない興味深い事情とか裏話があるわけではなく、
現象(8回なにかすると別のフラグが立つ)から容易に想像がつく、フットプリントできるだけ小さくするための
実装上の制約以上のものではなかったですね。
しかし逃げるコマンドの回数をカウントしなきゃいけない理由がわからない。
雑魚敵に対して
>>ドラクエIVでは4回目の「にげる」で必ず逃げられる
という仕様は限られたメモリ空間を3bitも消費する価値があるほど重要だったのだろうか。
一回あたりの逃げ成功確立を適当に設定しておけば十分な気が。
あと「4回試行でかならず成功」を実装するだけならカウンタは2bitで十分な気が。
Re: (スコア:0)
2bitの逃げるカウンタと会心フラグの間に他のフラグがある事も容易に想像がつくはずですが?
Re: (スコア:0)
>2bitの逃げるカウンタと会心フラグの間に他のフラグがある事も容易に想像がつくはずですが?
ああそのとおりですね、4回目以降8回目までにも別フラグが立つことによる副作用がありえたわけですね、
会心の一撃フラグがあまりに強烈なので8回という数字が際立っただけで。
逃げ続けると他のフラグもたって何かべつのことが起きてるのだろうか。
Re:まあそうだろうなと (スコア:1)
まあ、ストーリーの元になった記事からして「逃げるカウンタが3bit」って間違えちゃってますので、しかたないですけど、
下位から順番に
1~2: 逃げ回数(通常の戦闘は 11 = 3回逃げた時は確実に逃げられるはずなので、2bitで十分)
3: 時の砂使用済(戦闘状態の保存処理を0の場合のみ行うことで、使った時の状態に差し戻せるようにする)
4: パルプンテの結果が「ちからがみなぎってきた」だった(すべての攻撃が会心の一撃になる)
5: 敵を倒した(1体でも倒したら戦闘終了時のメッセージが「○○をやっつけた」になり、1体も倒せなかった時は「○○はいなくなった」に)
6: 不明
7: 敵が複数種類かどうか(戦闘終了時の「○○(モンスター名)をやっつけた」が、「まもののむれ」表記になる)
8: 不思議な霧状態かどうか(該当時は敵味方全員呪文の効果がなくなる)
と、戦闘中の状態をbitフラグで管理しています。
たくさん逃げ続ければ他の状態も変更可能ですが、戦闘中に使って意味ありそうなのはあとは8bit目ぐらいでしょうか。
また、3bit目は時の砂フラグなので「時の砂を使う+4回逃げる」でも8逃げ可能。
Re: (スコア:0)
となると、さらにもう1度8回逃げると普通に戻るわけですね。
Re: (スコア:0)
時の砂は「使った時の状態に戻る」んじゃなくて「使った時にひとつ前のターンに戻る」だぞい
Re:まあそうだろうなと (スコア:1)
すみません、なんか勘違いしてました。
戦闘中に2回以上時の砂が使われることはないので、
時の砂を使って巻き戻した後は、もう巻き戻すことはないから状態保存は不要
ってことで負荷軽減のためらしいですね。
涙ぐましすぎる…
Re: (スコア:0)
涙ぐましすぎる…
Zガンダム「君は、時の涙を見る」
Re: (スコア:0)
だんだん脱線してきたけど、
>3: 時の砂使用済(戦闘状態の保存処理を0の場合のみ行うことで、使った時の状態に差し戻せるようにする)
爪に火を灯すレベルのメモリ節約をしてんのに、なんでこんな"戦闘状態の保存"を必要とする時の砂なんてアイテムを実装したんだろうか、ゲームの本質ともストーリーイベントともかかわってこないのに。
ドラクエIVにもなると(カセット側に積んだ)RAMにかなり余裕ができて比較的自由に使えるようになってたんだろうかね。
そうするとIVにおける2bit逃げカウンタと各種フラグのパックは、I,IIを実装した際に沁みついたプログラマの性でそうしただけで、
もうこの世代ではハードウェア的には必ずしも要求されてたわけではないのかも。
Re: (スコア:0)
カートリッジ側に128KBのRAMを積んでいても、そのうち同時にマッピングできるのは8KBで
一時的な退避ならともかく、ワークエリアとしては使い辛いのではないかと。
それにこの種のカウンタはゼロページに置きたいしね。
(0000h~00FFhのアドレスはレジスタ的な使い方ができる。)