バグ

登録日:2010/05/12 Wed 11:26:41
更新日:2025/05/22 Thu 16:33:27
所要時間:約 7 分で読めます




パソコンゲーム機等の電子機器におけるプログラムミスの総称。
転じて、誤植や設定ミスなどもバグに含める場合がある。
機動戦士ガンダムF91』に登場する機動兵器をお求めの方はこちらへ、石川賢作品に登場する美少女または兵器をお求めの方はこちらへ。かいりきベア氏のボカロ楽曲に関しては こちら へ。


概要

語源は英語の「(bug)」(ナンキンムシ)に由来し、その昔機械の熱や光に引き寄せられた虫の死骸が原因で何らかの誤作動を起こした事からこう呼ばれる。
もともとはそのように虫が侵入するような人為的ではない不可抗力的な弊害を指す言葉であったが、
後に人為的ミスをバグに責任転嫁する風潮が高まり、現在の意味になったとされる。

またバグを取り除く作業の事を「虫取り」という意味で「デバッグ」とも呼ぶ。

英語では「bug」と「glitch」を使い分けたりもするが、実際は曖昧のようだ。
検索の際は日本でいう「バグ」は後者の方を使うとよくヒットする。

バグの症状としては、画面の表示がおかしくなる、音声が再生されないなどの軽微な物から
フリーズ、強制終了、データの消失など致命的な物まで様々。

また、バグには二種類ある。いわば、『見えるバグ』と『見えないバグ』である。
前者は言うまでもなく、エラーメッセージですぐわかるバグ。後者は文法などには引っかからないが、プログラムのロジックの間違いにより、エラーが出ることなく動くが、間違った結果が発生するもの。
ゲームなどのバグは、大方のはこれだろう。
そして開発者は、この『見えないバグ』と苦しい戦いを繰り広げるのである。

一般的に販売された何らかのソフトでバグが見つかった場合、開発元はそれを修正するプログラム(パッチ)を配布するのが普通だが、
ネット接続が不可能な時代のゲームソフトの場合はそれが困難なのでそのまま放置される事も多かった。
しかしセーブデータの破損やゲーム進行不可等のあまりに重大なバグの場合は修正版と交換してくれる場合もある。

納期の問題から、バグを放置したまま出してパッチで直すというソフトもある。
が、パッチが中々でない、パッチがないとまともに動作しないといったソフトは物議を醸す。
だが中にはどれだけ重大で商品価値を著しく損なうバグがあろうとも、「仕様です(キリッ)」の一点張りでまるで対応してくれない企業もいたりする。

とはいえ、プログラムからすべてのバグを探し出し、そして修正する事は人員・予算的にも困難である。
中にはどう足掻いてもプログラムの構造的にバグが出る・消えない事だってある。
その為、余程悪影響が出るバグでもない限りは、放置される事も珍しくない。

あまりにバグが酷いゲームは「バグゲー」とも呼ばれ、そのままクソゲーと化す場合も多い。
またバグは基本的に攻略本やゲーム雑誌ではあまり公開されないので、プレイヤー同士の情報交換がバグ回避の最良の手段となる。


バグを減らするためのオススメは?

  • システムログを見る
  • 先に数行程度のコードを書いて動作の確認をする
  • try catch文のような例外処理を入れる
  • デバッグフラグをつけて、trueの時に各種必要な変数の表示をさせる
  • フローチャートなり仕様書なりを図表を交えてちゃんと書く
  • オライリー Huckシリーズを熟読する
  • if文乱用を避け、else文、else if文、switch文でコードをスッキリさせる
  • 定数は大文字で定義、クラスはsetAniotaWikiのように2個目以降の単語の頭文字を大文字にするなど記述のルールを決める
  • goto文の乱用でスパゲティにしない
  • 関数を小型化・単機能化する
  • 関数名、変数名は面倒でもわかりやすいようにつける
  • 再帰的な記述はなるべく避け、処理ごとの階層を合わせる
  • 使っている/使おうとしているAPIがどういう原理で動いているのか知っておく
  • 使っている/使おうとしているAPIの対応/非対応バージョンを確認しておく
  • コメントは面倒でも「どういう意図でその記述をしたのか」しっかり分かりやすくつける
  • テストケースに漏れがないよう、条件と期待値のマトリクスをしっかり作成する
  • 工程を最後まで進める前に、進捗ごとに複数人でのレビューを行う
  • プロジェクトチームへの報連相を欠かさない
  • 現在と過去のソースの差分がわかりやすいよう、Gitなどでバージョンを管理しておく
  • 非同期処理は特に念入りに動作の順番を確認しておく
  • 動作が重複するとまずい機能はブロッキング処理を入れる


プログラマーの心構えとして

プログラムは書けば書くほど、複雑になればなるほどバグが増えやすくなるので、
普段から簡単で分かりやすいプログラムを書くよう心構けると、自然にバグの数は減っていくだろう。
その為にも、プログラムが何処で、何をしているかをしっかり把握出来る様にするのがベスト。
自分が書いたコードの意図を他人に説明できることは最低条件である。
そうすることで懸念点の指摘を貰いやすくなり、修正もよりスムーズになる。

もちろん、デバッグにきちんと時間と労力をかけるのを忘れないように。
特に商品として世に出すのなら、デバッグにかける時間を十分に確保するようにしたい。
何故なら、デバッグにかけた労力はそのまま製品の完成度に直結する。
動けばいいやなんて根性でデバッグを軽視したら後で痛い目見ること間違いなし。
その為にも、製作期間はゆとりを持って確保したいところである。

また、将来プログラムをさらに改造していくのは自分だけとは限らない。むしろ他人から引き継いだプログラムを弄る作業もかなり多い。
こういう時に誰も読み方がわからないようなコードだと「ブラックボックス化」し、そのプログラムは再利用できなくなってしまう。訳のわからないプログラムを弄ったところで余計に何が何だかわからなくなるだけだ。
仕様書や可読性の高い記述が重要視されるのは、そういった面もあることを忘れてはならない。
開発速度も勿論大事だが、それで保守性を疎かにすると後々取り返しの付かないことに……なんてことも。


プレイヤーによるバグの利用

中にはそのバグを逆手に取り有効利用する技もあり、通称「バグ技」と呼ばれ、裏技の一種として扱われる事もある。
バグ技を使えばアイテムやお金を手軽に増殖したり普段行けない場所に行けたりしてしまうが、
作品によっては使いすぎるとデータを破損したり元の場所に戻れなくなったりする諸刃の剣。
バグ技の使用は自己責任で。
一部のRTAではバグを利用した壁抜けやフラグ無視などが必須テクニックとなっている場合がある。

たとえ何の弊害が無くとも、もともとバグ技はグレーゾーンな行為のためその使用を快く思わない人も多いので、
あまり使用した事を公開するのも良くない。

また、オンラインゲームであればバグを利用したDUPE行為などは、プレイヤーの格差(=ゲームの存続)に影響しかねない為、規約違反である場合がほとんど。
過去の例としてMHF-Gでは、シジルというアイテムの無限生産バグが見つかった際、
それを利用して無限生産を行った者・行おうとした者含めて全員アカウント永久停止(垢BAN)という処分が行われた。

ただ、ゲームソフトは他のソフトウェアと異なり「感性に訴えるもの」であるため、「このバグがあると面白くなる」と判断された場合は積極的に放置され、続編や派生作品で仕様に組み込まれたりする。
「活用すると連続技の爽快感が出る」という理由で修正されなかったストリートファイターⅡのキャンセル技がこの典型例である。
そのため、ゲームの進行に支障をきたす内容でなければ、絵面が愉快なバグやテクニックとして導入されているバグが修正されると逆に残念がられることも。


便利な言葉?

ゲームにおいて、理解できない状況や気に入らない仕様を何でもかんでも「バグだ!」と認定するプレイヤーがいて物議を醸す。
「対戦で負けたのは、バグで相手がワープしたからだ!」といった具合で、気に食わない状況を「バグ」と表現するプレイヤーは後を絶たない。
何でもかんでもバグのせいにするよりもまず自分の行いをじっくり省みよう。バグ認定はそれからでも遅くない。

また、近年ではSNSでのバズ狙いやアフィリエイト目的で、何でもかんでもバグと騒ぎ立てる行為が問題視される事もある。
こちらは完全に故意で騒ぎ立てる分、悪質さがより際立っている。

どちらにしても、本人の技術や勘違いに起因する問題である為、まともなプレイヤーからは煙たがられやすい。

だが、報告者の勘違いだと思われていた現象が実際バグだったというケースもある、
すぐに「それはバグじゃない、お前の勘違いだ」と決め付けるのもそれはそれでお門違い。
再現性の低いバグもある為、冷静に検証する必要がある。

なお、チートをバグ技という事も多々あるが、実査は全くの別物。
チートは非正規の外部ツールを利用するものであり、プログラム単体で成立するバグ技とは原理が根本から異なる。
確かにどちらも製作者の想定外という点だけ見れば同じではあるが、チート≠バグ技である事は念頭に置いておきたい。
改造(ゲーム)の方も参照。
ちなみにチートで意図的にバグを起こし通常ではありえないプレイをする界隈も存在する。
こちらは自分に有利にゲームを進めることではなく、不自然かつ奇想天外な動作そのものを鑑賞して楽しむことを目的としている。

バグ関連で有名な作品

攻略などのテクニックとして使われるものは裏技/バグ技(ゲーム)を参照の事。

ポケットモンスター 赤・緑

セレクトボタン絡みのバグのあまりの多さから、
セレクトボタンを押すとなにかしらバグるゲーム」とまで言われた過去がある。
ただし、バグらせるには意図的な操作が必要かつ遊べるバグも多く、個性として受け入れられている面も。
3DSのバーチャルコンソール版でも修正されていない。

ストリートファイターⅡ

上述した技後の硬直を別の技で上書きして硬直を無視できる「キャンセル」というバグが「後に仕様化したバグ」として有名。
単純にあったほうが面白いからという理由であり、実際キャンセルは昨今の殆ど格ゲーの標準システムとして搭載されることとなった。

モータルコンバット

モータルコンバット(MK)シリーズの登場人物、アーマックはバグから生まれたキャラとして有名。
初代MKにおいて、カラー情報のバグによりレプタイルの装束の色が本来のではなくソニアの2Pカラーであるになってしまう現象が発生した。
しかしプログラマーのエド・ブーン氏はバグを認めず、「あれは隠しキャラのErmac(Error Macro)だ」と説明。
その後、UMK3よりアーマックは正式に実装され、ケンシ超能力の極意を授けるなどMKの世界観構築にも一役買っている。

Skyrim及びfallout4

どちらもベセスダ・ソフトワークスが開発しGOTYを受賞した神ゲーとも称される作品。
なのだが、同時に致命的なバグが山積みで中にはメインクエストが進行不能になるものさえ存在する。
故に界隈では500時間遊べるクソゲーと呼ばれることも。
「アルドゥインが来るぞ!!」 ←※来ません

FINAL FANTASY Ⅵ

回避率バグ」「テントバグ」「飛空艇バグ」など有名なバグがある。「バニシュデス」も有名だがこちらは仕様ともバグともとれる。
普通にプレイする分には回避率バグ以外はそこまで影響はないが、低歩数プレイ*1等の制限プレイにおいてはありとあらゆるバグを駆使してプレイされることが多い。
「FF6学会」呼ばれるFF6廃ゲーマーたちの手により発売から30年以上経った現在でも新たなバグ(とそれを利用した攻略)の発見が続けられている。

高機動幻想ガンパレード・マーチ

複雑なシステムを持つ作品故かバグが多く、進行不能バグなど致命的なものもちらほら。
ゲームアーカイブスで配信された際もバグはそのままであり、説明書に致命的なバグの回避方法が掲載される事態となった。
また隠しコマンドを入力すると通常プレイできないキャラでプレイする通称「22人プレイ」が可能だが、
開発終盤でこっそり仕込んだもの*2らしくデバッグが不十分で普通にやるだけでフリーズを起こすなどの深刻なバグが多い。

Stellaris

Paradoxによる宇宙SFストラテジーである本作だが、システムが複雑で様々な要素が多数絡み合うためメジャーアップデートの度に何かしらバグる。
新DLC登場→新DLCのせいで過去の要素がバグるは最早日常であり、メジャーアプデ後のマイナーアプデで大量のバグ修正がなされるのは見慣れた光景。そのアプデでバグが増えるのもいつもの事。
「イベントが起きない」「装備が正しく機能しない」などはしょっちゅうで、「宇宙要塞型超大型艦が高速小型艦をブッチぎる速度で爆走する」のような笑えるものもよく起きる。
あまりにもバグが多すぎるため、開発陣がバグ関連の開発日記を出すことも多い。

機動戦士ガンダム Extreme vs.シリーズ

機体数の多さもあってか大小さまざまなバグが見つかるのは日常。
特に有名なのがダブルオーガンダム関連、通称「バグルオー」。詳しくは項目参照。
バグ発覚後の修正は比較的早く、深刻なバグが残り続けることはあまりない。

モンスターファーム2

MFシリーズ屈指の人気作だが同時にバグの量もシリーズ屈指。
目に見えてバグってるもの、見えないところでバグっているもの、わざとバグらせるものなど多様なバグを揃えている。
移植版では片っ端から修正され、その際に公式が大々的に修正点を告知するなど、開発側もバグが有名であることを理解しているフシがある。
なお移植版も新たなバグが発生しており何かとバグと縁の切れない作品。

ぼくのなつやすみ

「8月32日」というバグが有名。
通常は8月31日でゲーム終了するのだが、特定の操作を行うことで8月32日以降に突入出来るというもの。
日付が既にヤバいが、そのまま進めるとBGMが消えたりキャラクターグラフィックが壊れていったりと異様な光景が展開され、トラウマネタとしても名高い。

AC北斗の拳

格ゲーにあるまじき多数のバグと強烈すぎるバランスが昇華されすぎた結果「全員壊れたレベルでバランスが整っている」というとんでもないことになった格ゲー世紀末スポーツアクションゲーム。
流石にアーケード筐体を破壊しかねない「バグ昇竜」といった危険なものは使用禁止にされるが、それ以外バグなら大方戦略に組み込まれて使用される。
なお「ヒット数を稼げば稼ぐほど相手が高く跳ね上がる」、通称「バスケ」は当初何らかの設定ミスによるバグと思われていたが、検証の結果正常に動いた結果こうなった「仕様」と言われている*3

ゲイングランド

通称「4-8バグ」と呼ばれるバグが非常に有名。
ストーリーそのものが「バグったゲーム(のようなもの)内から脱出する、脱出できなかったプレイヤーは死ぬ」という内容なのだが、ステージ4-8が本来の意味でバグっており正規クリアが出来ない
そのため「ラスボス撃破に必要な戦力を優先して脱出させ、それ以外のキャラは全員見捨てる(=見捨てられた人はリアルで死ぬ)」という選択肢を取らざるを得ないのだが、これが逆にドラマチックな演出になるとして評価される要因になった。
このバグは移植版で修正されたが、逆に評価が下がるという事態になり、PS2以降の移植では4-8バグの有無を任意で設定できるようになった。

いただきじゃんがりあん

麻雀ゲーなのだが、意味不明すぎる設定ミスにより壮絶なルールと化した「宇宙麻雀」。
「風牌や三元牌で順子可能」「一気通貫が役でない」など麻雀を多少知っていればお前は何を言っているんだというような要素が目白押し。
なおぶっ飛びすぎて逆に人気が出たため続編では「宇宙麻雀ルール」として仕様化、「順子がループする*4」等更にカオス化した。
順子ループと風牌順子が混ざると意味不明になるとはよく言われている。

ジャンライン、アジト×タツノコレジェンズ

どちらもパッチを当てることで悪化したゲーム。
前者は元々亜空カンなどバグの多い麻雀ゲーだったが、修正パッチを当てることでフリーズ頻度増加、ゲームスピードの低下、表示&操作バグなど問題点が増えた。
後者は再起動する度にユニットが全消滅する、通称「賽の河原バグ」という最悪のバグが混入した。
2024年現在では修正パッチでバグが増える事例はなくはない*5のだが、ジャンラインは当時としてはこのような事例自体が極めて珍しく、後者はあまりにもヤバすぎるバグが増えた事例であったため話題に上ることが多い。

18禁アダルトゲーム、小規模インディーゲーム

前者は「修羅の国」とも称される、開発技術や納期などの問題から一般的なゲーム業界では想像もできないバグが頻発する業界。
後者はSteam等のダウンロード系配信系サービスの発展によりにわかに勢力を増してきた業界で、こちらも技術面などの問題からとんでもないバグを叩き出すことが少なくない。



余談

ロックマンエグゼシリーズや上述のゲイングランドなど「コンピュータやネットワーク上のバグ」を題材とした作品も少なからず存在する。





この項目が追記修正されないのはバグだ!!

この項目が面白かったなら……\ポチッと/

最終更新:2025年05月22日 16:33

*1 ゲーム内で歩数をカウントする機能がある

*2 実質非公式なため当然サポート外

*3 一応システム開発において「想定通りではない、意図しない挙動になる」は広義のバグではあるのだが

*4 891や912でも順子として認められる

*5 当然あってはならないのだが