「65535」という数字を聞いて、ニヤっとする人はゲーム開発者か古くからのゲーマーのどちらかでしょう。あ、職業がプログラマーの人は、もちろんすぐにおわかりになると思います。
256のべき乗(256 x 256)すると65536になります。0からスタートするので、表示できる最大の数字が「65535」になるのです。この数字は2バイトで表現できる最大値なので、古いゲームの最大ヒットポイントや、所持できるゴールドの上限がこの数字だったりしたのです。
スポンサーリンク
ビットとバイトの簡単な解説
ビットとバイトについて簡単に解説してみます。ゲーム会社のデザイナーなので、ある程度は把握しているのですが、もちろんプログラマーさんほど詳しくないので、間違っていたらご指摘いただけると助かります。
という逃げ口上はこれくらいにしてっと(^^;
1ビットで表現できる数字は0か1のみです。1バイトは8ビットなので256ですね。プログラムの世界は0オリジンといって、0スタートが標準なので、8ビットで表現できる数字は正確には0から255までになります。
- 1ビット 0か1
- 1バイト(8ビット) 0から255
昔のゲームは65535が最大の数値だった
さて、65535という数字は前述したように256 x 256で表現できる数字です。1バイトの上限である255だと、ヒットポイントや所持金で扱う数字としては少し小さすぎるので、昔からこれらには2バイトが割り当てられてきました。
実は1バイトで管理していて、後ろの000は実際には計算せずに表示しているだけ、というのもあるのですが、それは今回は置いておきます。
(出典 Gigazine)
イース初代の画面を拾ってきました。イースを題材に考えると、
- HP 1バイト 0から255まで
- EXP 2バイト 0から65535まで
- GOLD 2バイト 0から65535まで
という感じだと思います。
私がイース初代をプレイしたのは、中学生くらいのころでした。さすがに記憶がおぼろげなのですが、何かのパラメータをカンストして、65535よりは増えなかったので、この数字は何だろう?、と不思議に思ったことを覚えています。
今のゲームにも上限になる数字はある
数字の上限は古いゲーム限定のものではありません。今のゲームにも上限はあります。ただ以前よりもゲーム機の性能は格段に上がっているので、天文学的な数字になっていますが。
おそらく4バイトで扱う数字が上限なので、
- 256 x 256 x 256 x 256 = 4,294,967,296
という数字が最大でしょう。42億超のパラメータを使用することはまずないでしょうね。
ただ、この数字を超えたときに、回避する処理とかはおそらく入っていないので、数字を超えたときに、ゲームがバグる可能性があります。
・・ま、杞憂かもしれませんが。
まとめ ー ゲーム開発の小ネタでした
以上、ゲーム開発の小ネタでした。
実際の現場では、デザイナーは数字の上限とかはあまり気にしてなくて、表示場所であるとか、数字のデザインとか、画像データをどう持つのかの方を気にしていたりします。
どちらかというと、PC8801などの古いゲームが好きだった人に、馴染み深い数字なのかもしれませんね。
※追記
数字を間違えてました(^^;。「65535」に修正しました。
たくさんの方にご指摘いただき、ありがとうございました。
1バイトが0~255なので、2バイトだと0~65535ですね。
自分で0オリジンと書いておきながら間違えるとは。穴があったら入りたいです・・・