1712759342
2024-04-10 14:05:58
バグ 楽しくない。 そうなった場合を除いて。 これは私が修正しなかった最大のバグの物語です。
以前、私はアドオンを書きました ワールド オブ ウォークラフト。 当時このゲームに夢中になっていたことは別として、プラグイン アーキテクチャとパブリック API の進化に夢中になっていた人にとっては、衝撃的な経験でした。 それは学ぶための素晴らしい口実でもありました ルア、楽しい言語です。
その期間中に友人と私が構築したより優れたアドオンの 1 つは、 フレンドネット。 FriendNet は、このゲームの最大の課題、つまり、クソじゃない一緒にプレイする人を見つけるという課題に対処するのに役立ちました。 アドオンはあなたのゲーム内の友達リストを取得し、それをすべての友達と共有しました。 その代わりに、彼らは自分の友達をあなたと共有しました。 その結果、バカじゃなくても信頼できる人が増えた。
アドオン API ではいかなる形式のネットワーク通信も禁止されていたため、友人リストを配布するためのハッキングを考え出す必要がありました。 私たちが行ったのは、これらのリストをゲーム内チャット メッセージにシリアル化し、受信側プレイヤーのアバターにささやくことです。
はい、あなたのお母さんが Facebook を発見する何年も前に、私たちは仮想世界のチャット チャネルを介してソーシャル グラフをトンネリングしていました。 資金を得るべきだった。
とにかく、FriendNet には品質の問題がいくつかありました。 P2P アプリケーションを正しく理解するのは難しく、バグ修正をリリースするたびに人々にアップグレードさせることはできません。 そのため、これらすべての異なるバージョンが相互に通信し、その結果、多くの突発的な動作や再現が難しいバグが発生しました。
特に特定が難しいバグが 1 つありました。それは、数日に一度、FriendNet で破損したメッセージが発生し、その結果、アドオン GUI の一部が混乱してしまうというものでした。 この問題が本物であると確信できるほどのバグレポートを私たちは受け取りましたが、どんなに努力してもバグを再現することはできませんでした。 それは地獄から来たバグでした。 結局、私たちは諦めて、バグのある API のせいにして、次に進みました。
解決策は、私がゲームをやめてから何年も経ってから思いつきました。 何が間違っていたのか気づいたとき、光で目が見えそうになりました。
あなたのキャラクターは、 World of Warcraftに酔う。 仮想酒を十分に飲むと、画面がぼやけ始め、キャラクターは直線的に動かなくなります。 また、チャットに次のように何かを入力すると、
Penelope says: I'm so wasted
次のように出てきます。
Penelope says: I'm sho washted ...hic!
FriendNet はすべての通信をチャット メッセージにシリアル化するため、ブロードキャスト プレーヤーが酔うたびに破損したデータを送信していました。
FriendNet は、かつてダウンロードできたアドオン サイトから消えて久しいです。 現在のバージョンのゲームでは起動するかどうかさえ疑問です。 しかし、そのバグを修正することはできませんでしたが、今でも楽しい思い出として覚えています。
#私が修正しなかった最大のバグ