大開発時代の幕開けと、空に落ちる街【重力魔法のスパゲッティコード】
世界システムの分散化から一週間。
大聖堂の地下サーバーを書き換えたあの光は世界中へと行き渡り、人類は教会の認証なしに、誰もが独自の術式を構築・共有できる自由を手に入れた。
私とフェリスは、バグから生まれた新生『自由都市アルカディア』ののどかなカフェのテラス席で、遅めの朝食をとっていた。
「……はぁ。やっぱり、こうして淹れたてのコーヒーをのんびり飲む時間は最高ね。あのデスマーチから解放されて、やっと有給休暇が取れた気分だわ」
私はお気に入りの黒いドレスの袖を整え、お気に入りのカップに口をつけた。
「本当にね。教会の追手も来なくなったし、街の人たちもみんな楽しそうに新しい魔法を試してる。あなたが世界をリブートしてくれたおかげよ、イルハ」
フェリスもすっかりリラックスした様子で、新調した銀色の軽装甲冑を光らせながら微笑んでいる。
平和だ。実に平和な、理想的な本番環境(リリース後)の光景……。
――のはずだった。
「おい! 見ろよ、俺が自作した『超高速移動魔法』のスクリプトだ! これを魔力掲示板からコピー&ペースト(コピペ)して実行すると――」
隣の席の若い魔導士が、得意げに羊皮紙のコードを広げ、指を鳴らした。
パチン。
その瞬間、彼の身体が文字通り『音速で真横の壁に激突』し、めり込んだ。
「ぶふぉっ!?」という短い悲鳴と共に、壁に人間の形の穴が空く。幸い、防護魔法はかかっていたようだが、明らかにベクトルの制御ロジックを間違えている。
「あーあ……。移動速度のパラメータだけを跳ね上げて、停止条件の関数を実装し忘れてるわね。典型的なコピペエンジニアの末路だわ」
私は冷やめた目でそれを見つめ、ため息をついた。
そうなのだ。世界がオープンソース化した結果、知識のない素人がネットの拾い食いコードのような感覚で「自作魔法(野良スクリプト)」を実行し、あちこちでプチバグを連発させるカオスな状況が発生していた。
だが、そんな微笑ましい(?)コピペバグなど、直後に起きた大災害に比べれば可愛いものだった。
ゴゴゴゴゴゴゴゴゴゴゴゴゴ……!!!
突如、アルカディアの街全体が激しく揺れ動いた。大聖堂をハックした時とは違う、妙にフワフワとした、大地の質量そのものが失われていくような不気味な地鳴り。
「な、何!? また地震!? それとも教会の残党の攻撃!?」
フェリスが即座に立ち上がり、腰の剣に手をかける。
しかし、異変は足元からではなく、私たちの頭上からやってきた。
「……違うわフェリス。上を見て!」
私が指差した先――アルカディアの中央広場を挟んだ向かい側にある、巨大な時計塔と数軒の民家が、根元からゴソッと引き抜かれるようにして、『空に向かって真っ逆さまに落ちていっていた』。
「は……? 建物が……空に飛んでる?」
フェリスが呆然と呟く。いや、飛んでいるのではない。
大理石の破片や、洗濯物、ひっくり返った馬車が、もの凄いスピードで「上」に向かって加速し、青空の彼方へと吸い込まれていく。まるで、空の向こうに巨大な底なし沼でも現れたかのような光景だ。
「違うわフェリス! あれは飛んでるんじゃない、文字通り【空に向かって自由落下】してるのよ! あの区画だけ、重力の向き(ベクトル)が完全に反転してる!」
「どういうことよそれ!? あっちの民家にはまだ人が残ってるわよ! このままだと街の半分が宇宙の彼方にロスト(完全デリート)しちゃう!」
空へ落ちていく住人たちの悲鳴が響き渡る。
私は即座に聖剣を引き抜き、空中にエリアの環境変数のログ画面を展開した。高速で流れるエラーログの山から、重力制御モジュールのソースコードを強制インターセプト(割り込み)する。
「原因発見! アルカディアの北のギルドにいるアホな魔導士が、広範囲の軽量化魔法を自作しようとして、重力定数の変数に『負の値』を代入して実行しやがったわ!!」
「マイナスって何よ! 引き算ってこと!?」
「体重を軽くするつもりが、パラメータのバリデーション(入力値チェック)を怠ったせいが、重力がマイナスになって斥力(反発する力)になっちゃったのよ! しかもループ処理の停止条件がバグってて、周辺のオブジェクトにバグが感染して範囲が広がってる!」
「理屈はいいから止めなさいよぉぉぉ!!」
フェリスが絶叫する間にも、重力反転のバグエリアはジワジワとこちらのカフェに向かって拡大していた。テラス席の椅子やテーブルがフワリと浮き上がり、空へと落ち始める。
「くっ、コードの書き換え(リモートデバッグ)が間に合わない! バグの実行元を直接叩き潰す(強制終了する)しかないわ! フェリス、あの空に落ちていく時計塔の破片を足場にして、バグの発生源(北のギルド)まで跳ぶわよ!」
「この状況で空中アスレチックをやれって言うのね!? もう驚かないわよ、行ってやるわ!!」
私はフェリスの腰をガシッと抱き寄せ、聖剣の第一ボタン(物理演算一時停止)を親指でカチリと押した。
私たちの周囲の重力加速度が一時的にゼロになり、フワリと身体が浮き上がる。
私は間髪入れずに、生活魔法『クリーン』の推進力仕様を足元で爆発させた。
ズバァァァァァァンッ!!
音速の爆風がチェッカー柄の大気を蹴り崩し、私とフェリスは、空へと「落ちていく」瓦礫の群れの中へと飛び込んだ。
「フェリス、2時方向の崩れた壁の破片へ! あそこの摩擦係数をゼロにしてあるから、踏み台にして加速して!」
「了解っ! ハァァァァッ!!」
フェリスは空中で上下感覚を失うことなく、ステータス限界突破の脚力で、空へ落ちていく壁の破片を次々とキックし、凄まじいジグザグ走行で空中を駆け上がっていく。ビジュアルは完全に空中戦闘機だ。
眼下では、街の4分の1が逆さまのピラミッドのように空へ突き出している。
その中心点――北のギルドの屋上で、髪を振り乱し、真っ赤に発光する巨大な魔法陣の前にへたり込んでいる一人の魔導士が見えた。
「うわああああん! 止まらない! 魔法のキャンセルボタンが効かないんだよぅ!!」
「あいつね……! 未検証のコードを本番環境で実行した大罪人は!」
私は空中から、その魔導士の頭上めがけて聖剣を真っ逆さまに突き立てるように構えた。
魔法の術式が暴走してシステムが完全にロックしているなら、物理的な割り込み(ハードウェア・インタラプト)で強制終了させるまで!
「バグ魔法のプロセスごと――大人しくタスクキルされなさいッ!!!」
私は聖剣の刀身に十サークルの魔力を流し込み、暴走する魔法陣の「コア(中心核)」へと直接突き刺した。
ピキィィィィィィィィィィン……!!!
聖剣から放たれた管理者用の消去コードが、魔導士の展開していたクソコードを根元から強制遮断する。
反転していた重力パラメータが、一瞬で正規のデフォルト値(G = 9.8)へとリセットされた。
「あ……」
実行ファイルが消去された瞬間、空へ落ちていた数百トンの建物や瓦礫、そして住人たちが、一斉に本来の重力に従って『地上へ猛烈な速度で自由落下』を始めた。
「きゃァァァァァァ!! 今度は普通に墜落死するじゃないのよォォォォォォッ!!!」
フェリスの鼓膜を引き裂くようなツッコミが響き渡る。
「大丈夫! 全域に『クリーン(空気クッション・広域分散仕様)』のパッチを同時展開(一斉送信)するわ!!」
私は聖剣の柄の全ボタンを同時に叩きつけ、落下するすべてのオブジェクトの底面に、一瞬だけ超高密度の空気のクッションを敷き詰めた。
ドスサササササササササッッ!!!
アルカディアの街全体に、まるで巨大なトランポリンが敷かれたかのような衝撃吸収エフェクトが走り、空へ落ちていた建物や住人たちは、全員パフッと柔らかい音を立てて、無傷で地面へと着地(着陸)した。時計塔も奇跡的に元の位置にスッポリと収まる。
「はぁ……はぁ……死んだ……今度こそ重力演算のバグでミンチになるかと思った……」
ギルドの屋上で、フェリスが膝をついてゼェゼェと息を切らせている。その銀髪はクッションの風圧でボサボサだ。
私は聖剣をスマートに鞘(仮)に収め、バグを発生させた張本人の魔導士の前にゆっくりと歩み寄った。魔導士は恐怖のあまりガタガタと震えている。
「ねえ、あなた」
「ひ、ひえっ! ごめんなさい魔女様! 悪気はなかったんです、ただちょっと面白い魔法を作ろうと――」
私は冷徹な笑顔のまま、彼の胸ぐらを掴んで至近距離で言い放った。
「いい? 例外処理(try-catch)も書かずに本番環境(リアル世界)で未検証のコードを走らせるなんて、エンジニア失格よ。次やったら、あなたの存在定義ファイルの拡張子を.tmp(一時ファイル)書き換えて、ゴミ箱経由なしで物理デリート(Shift+Delete)してあげるから、よく覚えておきなさい」
「ひぃぃぃぃ! 二度とコピペ開発しませんんんん!!」
魔導士は涙目でそのまま気絶した。
こうして、大開発時代の最初の大型バグは無事に(?)修正された。
しかし、周囲を見渡せば、新しく実装された魔力掲示板には、世界中のユーザーから「自作の最強魔法(脆弱性だらけ)」のコードが秒単位で次々とアップロードされ続けている。
「……フェリス。どうやら私たちのバカンスは、たったの1週間で正常終了しちゃったみたいね」
私は呆然と空を見上げる相棒に、苦笑いを向けた。
「……知ってたわよ。あなたといる限り、私の人生はずっと過酷なデスマーチ(サービス運用保守)なんだってことくらいね」
フェリスはがっくりと肩を落としながらも、どこか楽しそうに錆びた剣を握り直すのだった。
オープンソース化した世界が生み出す、無数の魔改造バグ魔法。それらを全てリファクタリングするための、デバッガーたちの果てしない「保守運用編」が、ここに幕を開けるのだった。




