バグ

提供:APCC
ナビゲーションに移動 検索に移動
この記事は秀逸な記事です。

バグとは、ゲームソフトウェアなどのプログラム上の誤りを指す言葉である。

概要

ソフトウェア開発の際、ミスを避けることはできない。ここで、想定通りの動作をしていない場合、それらは広くバグと呼ばれる。 ゲームにおいては、しばしばゲームクリアが極端に困難だったり、ありえない場所に侵入できたりといったような事柄もバグと呼ばれる。

内容

バグは主に、技術的なバグ・仕様上のバグ・性能不足に分けられる。

技術的なバグ

技術的なバグは、主に純粋なプログラム上の誤りを指す。例えば、スコア残り時間で割った値を求めようとして、残り時間が0だった場合に0除算例外が発生するなどのようなバグである。 最も頻繁に見かけられるが、その多くは発見・修正ともに比較的容易である。

仕様上のバグ

仕様上のバグは、そもそも作ろうとしているもの(仕様)が間違っているケースである。例えば、複雑なゲームシステムを持つゲームで、お互いに矛盾する仕様を作成してしまうなどのバグである。 高度化したプログラムでは発見が難しくなるケースも多い。

性能不足

画面に表示しようとしているものが多すぎる、使われているアルゴリズムが非効率的すぎるなどの原因で発生する。例えば、10000件のオブジェクトの衝突判定を行おうとして、全てのオブジェクトの組について衝突判定を行ってしまいフレームの更新処理が間に合わなくなるケースなどが挙げられる。

バグの対策

バグは発生した場合の対策が非常に厄介であることから、しばしばしっかりとした対策が挙げられる。これにはインデント変数名のルールを事前に定めることや、除算する場合は0でわろうとしていないかを判定することなどが挙げられる。

プレイヤー側の活用法

プレイヤーがバグを利用することで、通常のプレイよりも早くゲームを進行できるようになる場合も存在する。したがって、しばしばRTAでは、そのようなバグ技を利用することによって、利用しない時と比べて何十秒も早い記録を出すことができるようになる。もちろん、バグを使うか使わないかを事前に決めておくことで、バグが成功するかどうか、そして、バグでスキップした要素をどう切り抜けていくかといった、RTAを走る上で身につけておくべき技術が全く変わってしまうため、RTAのタイムを順位付けするときは、バグありの記録とバグなしの記録を分けて順位をつけるといったことが行われている。

また、普段から通常通りプレイしているプレイヤーからは、特に、製作者が想定していた難易度調整を明らかに破壊するようなバグは、魅力的なものに見えてしまう。そのゲームのデータを持っていれば理論上誰でも再現できる一種の裏技としても捉えられるので、一度は試してみたくなるだろう。

余談だが、世の中にはバグをコンセプトに制作されたインディーズゲームも存在する。それほどバグというものは、プレイヤーにとって魅力的なものであるのだろう。

関連項目

ウィキペディアにバグ の解説があります。