オタ語としての「バグ」と「仕様」の経緯 のメモ
整理用に書き出しかけておいたのを忘れていて、
- NGM:「すぐにけせ」の謎と「不可解なバグ」について
を読んでて思い出したのでメモ。
ゲーム開発者にとっては職業語である「バグ」と「仕様」だが、オタにとってのそれは趣味語であり、両者の違いはそのまま立場の差としてあらわれる。用語は同じだが意味や用法が微妙に違ったりするのでまぎらわしい。違う立ち位置の人間相手に使うときには、慎重にそれぞれの辞書のズレを確認しあいながら使ったほうが安全という印象。つかわないのが一番。
- e-Words で検索
- ゲームでいう「バグ」とはなにか(主にエロゲーっぽいものを例示)
- プログラム上での設計または記述ミスによる誤動作。
- 発展→「どのパートに原因があるか」の細分化
- エンジンバグ:実装されているはずの機能が正しく動作しない等
- スクリプトバグ:命令の指定ミスなどによる誤動作等
- 発展→プログラム以外のパートでの作業ミスなどにも応用
- 一般的な認識
- フリーズ、ハングアップ、固まる、動かない、データ消失または破損、プレイ続行不能など。
- (プレイ続行可能の場合でも)不具合、想定外と思われる挙動。
- 壁を抜ける、音楽が止まらない、画面が化ける、パラメータ・ステータス異常、桁あふれ、自分や敵が死なない、減らない、増えない、終わらない、出口なしなど。
- ファミコン語としての「バグ」
- ファミコン当時は「裏技」「ウルテク」「奥義」「禁断の秘技」などとあまり区別されていなかったように思う。
- 初期の裏技は、デバッグ用のコードを製品版リリース時に潰し忘れたことによって生まれたのではないかと推測される。
- 「タイトル画面でやたら長い無意味なコマンドを入力すると、ステージセレクトできたりいきなりエンディングを見れたり無敵になったりする」とかその類。それが発見されれば「なんかへんなコマンド入れたらへんなことになる!」と、(好都合な)バグとして認識された。
- ただしこの現象はプログラムどおりの動作であると言えるため、厳密には「バグではない」ということになると思う。バグの要素があるとすれば、最終版リリース時にデバッグ用のコードを潰し忘れたこと、つまり工程バグ?
- 制作過程(デバッグ用のコードを含んだバージョン)のソフトを、最終版としてリリースしてしまったことにより発生した現象。それまで「正しい最終バージョン」のみを受け取りそれのみで判断することを前提としてきたユーザに、「制作過程のデータを含んだ(正しくない)最終バージョン」を出してしまったことによる状況の複雑化と、それに伴う認識の多階層化。
- 事態をさらに面倒にしたのは、そういった例を含んですべてをごっちゃに語ることでおもしろくなっていったファミコン裏技シーンだろう。「デバッグ用のコードの潰し忘れ」も「本物のバグ」も「(禁断の秘技の一般化による)無敵コマンドを前提とした正規最終リリース文化の産物」も区別なく並列に語られた。結果としてコミュニティは豊かになったが、代償としてユーザにとって「バグ」という言葉の指す意味が曖昧になった。
- 月刊少年漫画誌でのファミコン勝負漫画の影響とも相乗した。往年のファミコン少年たちは、主人公たちの勝負のゆくえを大きく左右するバグ技の存在に熱血したものである。
- そんなこんながあって FC「高橋名人の Bug ってハニー」でパブリックに?
- 「仕様」の経緯
- 仕様という用語がプレイヤに一般化した契機ははっきりしていて、バーチャの大会でのアクシデントに関する有名プレイヤと開発者の遣り取り上でのことだったんだけど、正確なソースがネットに転がってないかなーと思って検索。伝聞形だけどいちおうそれらしい証言がみつかった。以下。
278 名前: ゲームセンター名無し 投稿日: 2001/08/19(日) 23:00
バーチャ 1 のライブ UFO(GW 中だっけ)とかのイベントで池サラとブンブンが対戦。
スプラッシュを決めるもダメージ 0 (笑)
「なんじゃこりゃああ!!」と言う文句に対して「仕様です」と。これでだいたい合ってるはず。
池サラがこの勝負に勝った後勢いに乗って結局優勝したね。
279 名前: ゲームセンター名無し 投稿日: 2001/08/19(日) 23:01
セガ社員の台詞、が抜けてる。
もともとバグ技だしな〜
288 名前: ゲームセンター名無し 投稿日: 2001/08/19(日) 23:09
ブンブン「責任者でてこーい!!」じゃなかったか?
で、このあとしばらくゲーオタ間の会話で「仕様です」が流行した。
- ユーザ語としての「仕様」とはなにか
- 「仕様です」は、曖昧に定義された「ユーザ語としてのバグ」への対抗語として認知され、認めざるをえない現実自体を消費するニュアンスで普及したものと推測できる。ひとことで言えば「そういうもんだ」。
- 「仕様です」を詳細に書きなおすと「(実行されたプログラムは作成した)仕様(どおりに動作しており、ただいまの状況は開発側としては想定内)です」になるかと思う。心情的に意訳すると「完動するバージョンとしてリリースした以上、この問題について修正を行う・行わないの判断は軽くなく、いまのような特殊な状況でしか再現しない問題については遺憾ながら対処しないものとする。だから開発側として公式には「想定内です」と言うほかない。責任の所在は我々にある。恨むならゲームでなくおれを恨め!」とかか。
- ユーザはゲームの動作について、それを認める以外のアクセス手段を持たない。ゆえに仕様という用語は、認めたくないが認めざるをえない、諦めざるをえない最後の壁としてある。江戸時代でいう「上意である!」みたいなニュアンスで受け取られがち。
- 「仕様」と「バグ」の位置関係
- ゲーム開発の流れで大雑把にいえば「企画→仕様→プログラム」。
- 「企画」=こんなゲームを作ります。
- 「仕様」=企画(こんなゲーム)とは、具体的にはこんな仕組みで動作するものなのだという設計。
- 「プログラム」=仕様(こんな仕組み)に沿って動作する実体を作成する作業。
- 「バグ」というのは「仕様どおりでない動作」となる。つまりプログラム部分でのミス。ただし、だからといって即担当プログラマの責任かというとそういうわけでもなく、企画担当とプログラム担当の連絡ミスであったり、統括者の指定ミスであったり、責任の所在は場合ごとに違う。
- 「仕様」というのは「プログラムは正しいが、おかしい」、つまり「仕様どおりにプログラムされている正常な(正しく意図の反映された)動作だが、それをテスターやプレイヤが不条理だと感じてしまった場合」、それは設計の問題として説明するしかなく、開発途上であれば設計ミスを認め修正される可能性もあるが、リリース後にしか話題にできないユーザ間ではそれは絶対的なものとなってしまうし、開発者側としてもリリース責任と修正責任の兼ね合いから、それを絶対的なものとして説明せざるをえない場合がある、というかんじか。
- ゲーム開発の流れで大雑把にいえば「企画→仕様→プログラム」。
- 脳直語としての「バグ」
- 「自分がクリアできない難度はバグ」
- 「つまらなかったらバグ」
- これも似たようなかんじだが、「すくなくとも自分はそれを面白がれるのだろうと期待して買った」という前提があるため、状況の勿体なさとかユーザの感じる恨みの質とか色々考えさせられる。
- 当然だが、このような用法上での「バグ」はデバッグしづらいと考えられる。おそらくこういった状況を回避するための方策を練るレイヤは企画ということになるだろうから、こういった不満の噴出する場に居合わせ「責任者出てこい」と言われてしまった場合に開発者が出すべき適切なコメントは「企画です」になるだろう。