【25日目】カンストについて
2,147,483,647

はじめに
ゲームなどで登場する「カンスト」という概念について、ちょっと考えてみます。
カンストとは
カンストとは「カウンタ―ストップ(カウントストップ)」の略で、主にゲームなどでスコアやレベルが上限に達して止まってしまうことを指します。
スコアが増えすぎた結果 より上がらなくなったり、ポケモンなどのゲームでキャラがレベル で成長が止まったりするアレですね。
カンスト値
キリがよいという意味で や といった値、ある桁数で最大のものという意味での といった値の他に、コンピュータで取り扱える上限値の や など(この中途半端な数字はなんだ?という方はよかったら「整数型の最大値」とかで調べてみてください)が用いられることが多いです。
カンストの良いところ
ゲームでカンストを導入するメリットです。
カンストを目標にしてプレイできる
「カンスト値」というものはゲームを遊ぶ上での目標地点になり得るものです。
例えばキャラを育成するゲームで、そのキャラのレベル上限が ならプレイヤーは 「レベル 達成を目指してがんばって育ててみよう!」 というモチベーションを持って遊ぶことができるようになります。
また、努力すればするほどほぼ無限にスコアを伸ばせるようなゲームの場合 「根気よくプレイを続けて、スコアが増えなくなるまでスコアを稼いでみたい」 と考える猛者プレイヤーが現れてくれるかもしれません。
人間、目に見える目標が設定されていると、モチベーションが上がってがんばろうと思えるものです。
オーバーフローを防ぐことができる
コンピュータで扱える数値には限りがあり、例えば整数値 に を加えると ではなく になってしまう、なんてことが発生したりします。(どういうこと?なんでそんなこと起きるの?という方は「オーバーフロー」で是非調べてみてください。)
せっかく積み上げてきたスコアや、ザクザクと貯めたコインの数がある時突然マイナスになるなんてことは絶対あってはならないですよね…。
そこで、そういったオーバーフローの可能性のある数値に上限を設けてカンストさせることで、値がマイナスにひっくり返るような現象を未然に防ぐことができちゃうわけです。
UI崩れを防ぐことができる
上で述べたオーバーフローと同様に数値が大きくなり過ぎた場合に起き得る問題が、UI(ユーザインターフェース)、すなわち画面上に表示される情報の表示が崩れるというものです。
本来 桁までしかスコアを表示するスペースがないのに 点以上を取ることができてしまった場合、数字が表示枠をはみ出してしまったり、画面外に見切れてしまったり、というものです。
ならば表示スペースを広くとればとるほど良いのか?というともちろんそんなことはなく、無駄にだだっ広く見える表示枠は見た目がよろしくありません。
というわけで 桁までの表示を想定するならスコアを でカンストさせれば解決というわけですね。
カンストの良くないところ
ゲームでカンストを導入するデメリットです。
カンストした後のプレイのモチベーションが下がる
これは単に「カンスト到達という目標を達成すると、それ以降の目標を見失うことになってしまう」ということにはとどまりません。
カンストとは、 一度到達するとそこで数値が頭打ちになり、それ以上増えなくなる というものです。
これはすなわち、 カンストした以上はそれ以降の努力や稼ぎが全て無視されてしまう ということを意味します。
今までは敵と戦うことで例え少しずつでも成長してきたキャラがレベル になった途端、敵と戦っても経験値をもらうことが無くなり、一切の成長が止まってしまうのです。結果、もらえるはずの経験値やスコアが捨てられてしまうような感覚、努力することの意味が無くなってきてしまうような考えを抱いてしまうプレイヤーも少なからずいるでしょう。というか私がそのひとりです。
あなたはどう考えますか?
僅かだが処理負荷がかかる
こちらはほとんどの場合、無視してよいレベルの話な気はしますが、カンストを導入するということは数値が増減するたびに上限処理や下限処理を逐一施すことになるので、僅かではあれどその分の処理負荷はかかってしまいます。
さいごに
何かあったらまた加筆、修正が行われるかもしれません。
この記事が私自身のメモであるとともに、ここまで読んでくれたあなたにとっての新たな知見となれば幸いです。
ブログの更新をお知らせ
RSS リーダーに登録すると、新しい記事が公開されたときに通知を受け取れます。



