『ポケモンスリープ』「ねむけパワーが21億4748万3647超でマイナスになる」不具合になぜか“見覚えある”との声あがる。一部の人にやたら馴染み深い数値でマイナスに

 

株式会社ポケモンからリリースされている『ポケモンスリープ』。本作公式サイトで公開されている既知の不具合について、なぜか馴染み深く感じてしまう人が多くいるようだ。


『ポケモンスリープ』は、ポケモンを題材にした睡眠時間管理アプリだ。舞台となるのはカビゴンが眠る島。ユーザーはこの島にて、ネロリ博士とともにポケモンの睡眠を研究していくことになる。ユーザーがスマートフォンを枕元に置いて寝ることで、本アプリは睡眠を計測・記録・分析してくれる。そして、ユーザーの睡眠に基づいたポケモンのコレクション要素などの遊びが用意。睡眠を介してポケモンを育てたり、カビゴンを1週間の中で大きくしたりと、育成要素を楽しめる。

そして本作ではカビゴンのエナジーと睡眠スコアを乗算した値が「ねむけパワー」として計算される。このねむけパワーが大きくなればなるほど、翌朝に多くのポケモンが集まってくる。カビゴンをよく育て、そしてプレイヤー自身もよく寝ることによって、さまざまなポケモンの寝顔を見つけられるのだ。

本作については、定期的にアップデートがおこなわれている。イベントの実施や新ポケモンの登場などのコンテンツの追加だけでなく、不具合の修正もおこなわれている。今回3月27日に公式サイトにて、現在確認している不具合が公開された。そのなかのある不具合が、プログラマーなど一部ユーザーになぜか“馴染み深く”感じられてしまうとSNS上で話題を呼んでいるようだ。


その不具合とは、ねむけパワーが一定の値を超えると、数値の表示に不具合が発生するもの。具体的な数値としては21億4748万3647を超えると、ねむけパワーの数値表示がマイナスの値で表示されてしまうという不具合だ。この21億4748万3647という数値は一見すると区切りが良くないように見え、見覚えもなにもないように思われる。しかし一部の人々にとってこの数値は非常に馴染み深い数値といえるのだ。

というのも、これは「int型」や「long型」と呼ばれる枠組みで表せる最大値なのだ。これらはコンピューターのプログラムにて、整数を取り扱う際に用いる「データ型」のひとつ。たとえばint型は32ビットCPUの環境であれば、0と1の二進数において31桁までの正負の数字を扱うことができる。これは十進数で2の31乗-1、つまり21億4748万3647からマイナス21億4748万3648まで表現できる。

【UPDATE 2024/3/30 16:00】
int型の説明に関する記述を調整

ここで、21億4748万3647(2147483647)は二進数で表記すれば「0111 1111 1111 1111 1111 1111 1111 1111」となる。32桁のうち先頭のビットだけが0、それ以外は1となっているかたちだ。この状態に1を加えると繰りあがりが発生。先頭のビットだけが1となり、それ以外が0となるのだ。先頭のビットは正負どちらかを示すの記号の役割を果たしているため、以降の数字はマイナスとして表示されてしまう。つまりオーバーフロー(桁あふれ)と呼ばれる現象を生じてしまうのだ。今回話題となった不具合は、int型で格納されているねむけパワーが、オーバーフローをおこしてマイナスになってしまったのではないか、とユーザーによって推察されている。

今回『ポケモンスリープ』公式より既知の不具合として公開された、ねむけパワーがマイナスになってしまう問題。プログラミングなどに関わる人たちには21億4748万3647 という数字はある意味で“馴染み深い”数といえるため、そうした一部のユーザーに注目され、話題となったかたちだ。また、さまざまなゲーム作品における数値のいわゆる「カンスト」の値としても知られている。


なおねむけパワー21億を超えるには、睡眠スコアの最大値100を記録した場合でも、カビゴンエナジーが2100万を超えている必要がある。3月25日にはグッドスリープデーとして、ねむけパワー4倍となるキャンペーンがおこなわれていたが、それでも500万以上のエナジーが必要となる。カビゴンエナジーは1週間でリセットされてしまうため、相当気合の入った睡眠習慣でエナジーを週末まで溜め続けることが必要となるだろう。

ちなみにこの不具合は表示上のみマイナスになっているといい、睡眠リサーチとしては正しい値で動作/記録しているようだ。もしねむけパワーが21億を超え、オーバーフローしそうなプレイヤーがいたとしても、枕を高くして眠ることができるだろう。

『ポケモンスリープ』は、iOS/Android向けに基本プレイ無料にて配信中だ。