誰も見ていない時間

ゲーム、読書、マンガ、ライフハックなどの雑記

「65535」という数字に反応するのは、ゲーム開発者か昔を知るゲーマー

スポンサーリンク

「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は実際には計算せずに表示しているだけ、というのもあるのですが、それは今回は置いておきます。

 

f:id:kitahana_tarosuke:20180531021220p:plain

(出典 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オリジンと書いておきながら間違えるとは。穴があったら入りたいです・・・