「バグ」の版間の差分
細 |
|||
(2人の利用者による、間の4版が非表示) | |||
3行目: | 3行目: | ||
==概要== | ==概要== | ||
ソフトウェア開発の際、ミスを避けることはできない。ここで、想定通りの動作をしていない場合、それらは広くバグと呼ばれる。 | ソフトウェア開発の際、ミスを避けることはできない。ここで、想定通りの動作をしていない場合、それらは広くバグと呼ばれる。 | ||
ゲームにおいては、しばしば[[ | ゲームにおいては、しばしば[[ゲームクリア]]が極端に困難だったり、ありえない場所に侵入できたりといったような事柄もバグと呼ばれる。 | ||
==内容== | ==内容== | ||
バグは主に、技術的なバグ・仕様上のバグ・性能不足に分けられる。 | バグは主に、技術的なバグ・仕様上のバグ・性能不足に分けられる。 | ||
===技術的なバグ=== | ===技術的なバグ=== | ||
技術的なバグは、主に純粋なプログラム上の誤りを指す。例えば、[[スコア]]を[[残り時間]]で割った値を求めようとして、残り時間が0だった場合に[[0除算例外]]が発生するなどのようなバグである。 | 技術的なバグは、主に純粋なプログラム上の誤りを指す。例えば、[[スコアリング|スコア]]を[[残り時間]]で割った値を求めようとして、残り時間が0だった場合に[[0除算例外]]が発生するなどのようなバグである。 | ||
最も頻繁に見かけられるが、その多くは発見・修正ともに比較的容易である。 | 最も頻繁に見かけられるが、その多くは発見・修正ともに比較的容易である。 | ||
===仕様上のバグ=== | ===仕様上のバグ=== | ||
仕様上のバグは、そもそも作ろうとしているもの(仕様)が間違っているケースである。例えば、複雑な[[ゲームシステム]]を持つゲームで、お互いに矛盾する仕様を作成してしまうなどのバグである。 | 仕様上のバグは、そもそも作ろうとしているもの(仕様)が間違っているケースである。例えば、複雑な[[ゲームシステム]]を持つゲームで、お互いに矛盾する仕様を作成してしまうなどのバグである。 | ||
高度化したプログラムでは発見が難しくなるケースも多い。 | 高度化したプログラムでは発見が難しくなるケースも多い。 | ||
==性能不足== | ===性能不足=== | ||
画面に表示しようとしているものが多すぎる、使われている[[アルゴリズム]]が非効率的すぎるなどの原因で発生する。例えば、10000件のオブジェクトの衝突判定を行おうとして、全てのオブジェクトの組について[[衝突判定]]を行ってしまい[[フレーム]]の更新処理が間に合わなくなるケースなどが挙げられる。 | 画面に表示しようとしているものが多すぎる、使われている[[アルゴリズム]]が非効率的すぎるなどの原因で発生する。例えば、10000件のオブジェクトの衝突判定を行おうとして、全てのオブジェクトの組について[[衝突判定]]を行ってしまい[[フレーム]]の更新処理が間に合わなくなるケースなどが挙げられる。 | ||
==バグの対策== | ==バグの対策== | ||
バグは発生した場合の対策が非常に厄介であることから、しばしばしっかりとした対策が挙げられる。これには[[インデント]]や[[変数名]]のルールを事前に定めることや、[[除算]]する場合は0でわろうとしていないかを判定することなどが挙げられる。 | バグは発生した場合の対策が非常に厄介であることから、しばしばしっかりとした対策が挙げられる。これには[[インデント]]や[[変数名]]のルールを事前に定めることや、[[除算]]する場合は0でわろうとしていないかを判定することなどが挙げられる。 | ||
==プレイヤー側の活用法== | |||
プレイヤーがバグを利用することで、通常のプレイよりも早くゲームを進行できるようになる場合も存在する。したがって、しばしば[[RTA]]では、そのようなバグ技を利用することによって、利用しない時と比べて何十秒も早い記録を出すことができるようになる。もちろん、バグを使うか使わないかを事前に決めておくことで、バグが成功するかどうか、そして、バグでスキップした要素をどう切り抜けていくかといった、RTAを走る上で身につけておくべき技術が全く変わってしまうため、RTAのタイムを順位付けするときは、バグありの記録とバグなしの記録を分けて順位をつけるといったことが行われている。 | |||
また、普段から通常通りプレイしているプレイヤーからは、特に、製作者が想定していた[[難易度]]調整を明らかに破壊するようなバグは、魅力的なものに見えてしまう。そのゲームのデータを持っていれば理論上誰でも再現できる一種の[[裏技]]としても捉えられるので、一度は試してみたくなるだろう。 | |||
余談だが、世の中にはバグをコンセプトに制作された[[インディーズゲーム]]も存在する。それほどバグというものは、プレイヤーにとって魅力的なものであるのだろう。 | |||
==関連項目== | ==関連項目== | ||
*[[デバッグ]] | *[[デバッグ]] |
2021年12月15日 (水) 23:43時点における最新版
バグとは、ゲームやソフトウェアなどのプログラム上の誤りを指す言葉である。
概要
ソフトウェア開発の際、ミスを避けることはできない。ここで、想定通りの動作をしていない場合、それらは広くバグと呼ばれる。 ゲームにおいては、しばしばゲームクリアが極端に困難だったり、ありえない場所に侵入できたりといったような事柄もバグと呼ばれる。
内容
バグは主に、技術的なバグ・仕様上のバグ・性能不足に分けられる。
技術的なバグ
技術的なバグは、主に純粋なプログラム上の誤りを指す。例えば、スコアを残り時間で割った値を求めようとして、残り時間が0だった場合に0除算例外が発生するなどのようなバグである。 最も頻繁に見かけられるが、その多くは発見・修正ともに比較的容易である。
仕様上のバグ
仕様上のバグは、そもそも作ろうとしているもの(仕様)が間違っているケースである。例えば、複雑なゲームシステムを持つゲームで、お互いに矛盾する仕様を作成してしまうなどのバグである。 高度化したプログラムでは発見が難しくなるケースも多い。
性能不足
画面に表示しようとしているものが多すぎる、使われているアルゴリズムが非効率的すぎるなどの原因で発生する。例えば、10000件のオブジェクトの衝突判定を行おうとして、全てのオブジェクトの組について衝突判定を行ってしまいフレームの更新処理が間に合わなくなるケースなどが挙げられる。
バグの対策
バグは発生した場合の対策が非常に厄介であることから、しばしばしっかりとした対策が挙げられる。これにはインデントや変数名のルールを事前に定めることや、除算する場合は0でわろうとしていないかを判定することなどが挙げられる。
プレイヤー側の活用法
プレイヤーがバグを利用することで、通常のプレイよりも早くゲームを進行できるようになる場合も存在する。したがって、しばしばRTAでは、そのようなバグ技を利用することによって、利用しない時と比べて何十秒も早い記録を出すことができるようになる。もちろん、バグを使うか使わないかを事前に決めておくことで、バグが成功するかどうか、そして、バグでスキップした要素をどう切り抜けていくかといった、RTAを走る上で身につけておくべき技術が全く変わってしまうため、RTAのタイムを順位付けするときは、バグありの記録とバグなしの記録を分けて順位をつけるといったことが行われている。
また、普段から通常通りプレイしているプレイヤーからは、特に、製作者が想定していた難易度調整を明らかに破壊するようなバグは、魅力的なものに見えてしまう。そのゲームのデータを持っていれば理論上誰でも再現できる一種の裏技としても捉えられるので、一度は試してみたくなるだろう。
余談だが、世の中にはバグをコンセプトに制作されたインディーズゲームも存在する。それほどバグというものは、プレイヤーにとって魅力的なものであるのだろう。
関連項目
ウィキペディアにバグ の解説があります。 |