先日、ふとしたきっかけで思い出したのですが、その昔、大学時代に研究室の友人と、酒に酔った勢いでドラゴンクエスト2(オリジナルのファミコン版です)の「ふっかつのじゅもん」について、真剣に科学したことがあります。

「ふっかつのじゅもん」について、ご存じない方もいらっしゃると思いますので軽く説明すると、RPGなどの「キャラクタを育ててゆく」ゲームでは、プレイヤが育てたキャラクタの「状態」を記録するために、ゲームの途中に表示させる暗号のような文字列をプレイヤにメモさせ、再度ゲームをする際にはそれを入力してもらうことで、キャラクタの「状態」を復元させる仕組みのことです。

当時はまだバッテリバックアップが出来るファミコンのカセットは存在せず、ファミコン本体の電源を切った後でも「状態」を保持しておくには、この方法しかなかったわけです。

ドラゴンクエスト2において「状態」を復元するために保存しなくてはいけない情報を洗い出してみると、

・復活する場所
・パーティの人数
・主人公の名前
・主人公のレベル
・主人公の最大HP/HP
・主人公の最大MP/MP
・主人公の状態(死んでいるとか、毒とか)
・主人公の持ち物(装備しているかどうかのフラグも含む)
・2人目の名前
・2人目のレベル
・2人目の最大HP/HP
・2人目の最大MP/MP
・2人目の状態(死んでいるとか、毒とか)
・2人目の持ち物(装備しているかどうかのフラグも含む)
・3人目の名前
・3人目のレベル
・3人目の最大HP/HP
・3人目の最大MP/MP
・3人目の状態(死んでいるとか、毒とか)
・3人目の持ち物(装備しているかどうかのフラグも含む)
・その他、物語の進行を保存する「フラグ」
・チェックレジット(CRCとか、不正な状態で「復活」させないための仕組み、→「呪文が違います」の原因)

と多岐にわたり、これらを馬鹿正直に保存していると、とてもじゃないけどひらがな52文字(=大体30Byteぐらい)じゃ足りなくて、どうやっているんだろう、と結構真剣に考えました。

そして、

・「ふっかつのじゅもん」から復活すると、HPもMPも最大になっており、死んでいた人も生き返る
・誰がレベルを上げても同じレベルならば同じ最大HP/最大MPになる

という事実から、ドラゴンクエスト2では、3人の最大HP/HP/最大MP/MP、状態等は一切保存しておらず、どうやら経験値だけを「ふっかつのじゅもん」に含めていそうだという結論に至りました。
(これだったら経験値からLVを導け、そこから最大HP、最大MPを導けるので、LV、最大HP/HP/最大MP/MPの3人分の情報量である16Byte分を節約できます)

何百万人ものプレイヤを深く落胆させたに違いない、悪名高き「ふっかつのじゅもん」ですが、作った人は、削っても目立たない情報をうまく削り、いかに「ふっかつのじゅもん」を短くするかに相当腐心していると思います。

顔は見えませんが、こういう仕事をする技術者には「Good Job!」の言葉を捧げたいですね。


ひとつ新しい記事へ / ひとつ古い記事へ