異世界デバッグ生活 未完成世界の品質保証エンジニア〜物理法則がバグだらけだったので、元QA責任者の俺が仕様の穴を突いて無双します〜

ソコニ

第1話 世界、リリース初日の崩壊

プロローグ:伝説の終焉

深夜三時。モニターの青白い光だけが、オフィスを照らしていた。


「……よし、マスターアップ」


九条慎也は、最後のチェックリストに判を押した。三年がかりの大型タイトル。バグ報告総数は十万件を超え、そのすべてに目を通した。彼の手を経て、ゲームは完成した。


立ち上がろうとした瞬間、胸に激痛が走る。


(……待て)


倒れ込む身体。薄れゆく意識の中で、九条の脳裏に一つの映像が浮かんだ。


(あの看板のテクスチャ……0.1%の確率で裏返るバグ、修正リストから漏れてた……ユーザーが気づいたら、スクリーンショットを撮られて、SNSで拡散されて……)


床に倒れ込む。冷たいタイルの感触。


(……クソが。美しくない。完璧じゃない)


最期まで、エンジニアだった。


第一章:ブラック神界の新人開発者

「うわああああん! 助けてぇぇぇ!」


目が覚めると、耳をつんざく悲鳴が聞こえた。


真っ白な空間。無数のモニターが浮遊し、赤い警告文字が明滅している。


ERROR: CAUSALITY_OVERFLOW (x1,048,576)

WARNING: PHYSICS_ENGINE_CRASH

CRITICAL: HERO_ENTITY_CLIPPING_INTO_GROUND

// TODO: 納期が足りないので後で直す(リセ)

// 警告:gravity_constant を変更すると太陽が落ちるので触るな

「……開発サーバー、か」


九条は冷静に状況を把握した。目の前には、泣きながらキーボードを叩く少女がいる。長い金髪、純白のローブ。背中には光の翼——半透明で、テクスチャが正しく貼られていない。


間違いなく、女神だ。しかも、自分自身すらデバッグ不足らしい。


「あ、あの! 起きた!? ねえ、助けて! もうダメなの、世界が壊れちゃうの!」


少女——女神リセは、涙と鼻水でぐしゃぐしゃの顔で九条にすがりついた。


「落ち着け。状況を説明しろ」


「う、うん……わ、私、上位神様から『新しい世界を作れ』って言われて……で、でも納期が厳しくて、テストも全然できなくて……それで、さっきリリースしちゃったんだけど……」


リセが震える手で指差したモニター。そこには信じがたい光景が映っていた。


草原に立つ勇者。その足元が、ゆっくりと地面にめり込んでいく。


「ちょ、ちょっと待って! なんで床が!? うわああああ——」


勇者は悲鳴を上げながら、腰まで地面に沈み込み、やがて完全に埋まった。


HERO HAS DIED - CAUSE: GROUND_COLLISION_NULL

RUNTIME: 00:03:24

リリースから三分二十四秒での、世界初の勇者の死。


「……当たり判定のレイヤー設定が逆になってるな」


九条は呆れたように呟き、リセの書いたソースコードをスクロールした。


変数名は適当。a、tmp、xyz123。

コメントアウトすべき箇所は野放し。

関数の入れ子は十重二十重。

そして、すべてのファイルの末尾に——


// もう無理……神様助けて……

という、開発者の悲鳴が刻まれていた。


「素人が書いたスパゲッティコードだな。変数の命名規則すら守られていない。これでは世界が保つわけがない」


「ご、ごめんなさい……私、神界でもポンコツで有名で……でも、納期は絶対だから……」


「で、俺を何のために召喚した?」


「あ、あの、あなたの魂の記録を見たら、QAエンジニアって書いてあって……お、お願い! この世界を、直すの手伝って!」


九条は考えた。三秒後、答えを出した。


「条件がある」


「な、なんでも!」


「俺は勇者じゃない。世界改修のコンサルタントとして契約する。報酬は、お前の持つ管理者権限の一部だ」


「え……それでいいの?」


「ああ。それから——」


九条は冷たい目でリセを見た。


「泣くな。エンジニアは、現場で泣くもんじゃない」


リセは目を丸くし、やがて袖で涙を拭った。


「……は、はい」


「それと、もう一つ」


九条はモニターに映る崩壊した世界を見つめた。


「俺は、この世界を救いたいんじゃない」


リセが首を傾げる。


「バグのある世界が、エンジニアとして我慢ならないだけだ」


第二章:バグまみれの始まりの村

転送の光が消え、九条は異世界の地に降り立った。


青い空、緑の草原、遠くに見える中世風の村。典型的なファンタジー世界——のはずだった。


「……ひどいな」


空に浮かぶはずの浮遊島が、座標計算ミスで地面に半分めり込んでいる。島の底から岩が垂れ下がり、地面に突き刺さったまま固定されている。風に揺れもしない。物理演算が死んでいる。


村の入り口では、村人たちが全員、石壁に向かって延々と歩き続けていた。


ゴツン。ゴツン。ゴツン。


額を壁にぶつけながら、前進を試みる。骨が軋む音。皮膚が擦れる音。それでも止まらない。


「おはよう おはよう おはよう おはよう——」


ループするAI。壊れたレコードのように、同じ言葉を繰り返す。


一人の村人の首が、不自然な角度に曲がっていた。180度反転し、後ろを向いたまま固定されている。それでも、彼女は笑顔で「おはよう」と言い続ける。


「……パスファインディングだけじゃない。ボーンのアタッチメントも崩壊してる」


九条は吐き気を覚えた。技術的な不備に対する、純粋な嫌悪感。


「リセ、聞こえるか」


『は、はい! 通信機能は生きてます!』


耳元のイヤホン型デバイスから、女神の声。


「村人のAIがループしてる。パスファインディングのアルゴリズムを見直せ。経路探索の優先度が、目的地じゃなくて『最も近い壁』になってる」


『わ、わかりました! メモします!』


「それと、ボーンの回転制限を設定しろ。首が360度回るのは人間じゃない」


『あ……あああ、ごめんなさい! 私、スケルトンの設定をコピーして使っちゃって……』


「……まあいい。とりあえず今は——」


九条の視線の先。村の中央で、巨大な何かが蠢いていた。


青いゼリー状の塊。レベル1の雑魚モンスター、スライム。


だが、その周囲には冒険者たちの死体が転がっている。鎧が砕け、剣が折れ、肉体が原形を留めていない。


「あ、あれが! 最大のバグです! あのスライム、攻撃を受けるたびに攻撃力が2倍になっちゃって……もう誰も倒せないんです!」


村人が一人、震える手でスライムに石を投げた。


ぷるん、とスライムが揺れる。


次の瞬間——


ドゴォン!


スライムから放たれた体当たりが、音速を超えた。衝撃波が空気を裂き、村人を吹き飛ばした。壁に激突し、赤いエフェクトと共に——ポリゴンが飛び散り——消滅する。


「計算式が加算じゃなくて乗算になってるのか。初期攻撃力1として、すでに100回は攻撃を受けてるな……2の100乗。これは確かに魔王級だ」


『もうダメ……この世界、リリース初日でサービス終了です……』


「諦めるな」


九条は懐から、リセに渡された端末を取り出した。


『デベロッパー・コンソール』。


世界の変数を直接閲覧し、一時的に書き換える権限。


画面にスライムの情報が表示される。


ENTITY: SLIME_001

HP: 50

ATK: 1,267,650,600,228,229,401,496,703,205,376

// バグ:乗算ループ(修正予定)

DEF: 1

SPEED: 3

POSITION: (X:245.0, Y:0.0, Z:128.0)

FRICTION: INHERITED_FROM_GROUND

九条は、冷たく笑った。


「リセ、質問だ。この世界、物理演算はどうなってる?」


『え? えっと……重力、慣性、摩擦、空気抵抗……一応、全部実装したつもりですけど……』


「なら、使える」


九条はコンソールに入力した。対象は、スライムではない。


スライムが立っている、地面そのもの。


TARGET: GROUND_TILE(X:245, Z:128)

PARAMETER: FRICTION_COEFFICIENT

CURRENT_VALUE: 1.0

NEW_VALUE: 0.0

// 摩擦ゼロ。氷よりも滑る。

EXECUTE? [Y/N]

九条は、迷わず「Y」を押した。


瞬間、スライムの足元の地面から、摩擦が消失した。


「な、何を——」


スライムがわずかに動く。前回の攻撃で得た慣性——それだけで、身体が滑り始めた。


止まらない。制御できない。


音速を超えた攻撃力を持つスライムは、今や音速を超えて滑走する、ただの物体だった。


「うわああああああ!」


人間のような悲鳴を上げながら、スライムは村の外へ、平原へ、地平線へと滑り続ける。やがて描画範囲外に消え、ログに一行だけメッセージが残った。


SLIME_001: OUT_OF_BOUNDS - ENTITY DELETED

// 世界の外に出たオブジェクトは自動削除されます

静寂。


呆然とする村人たち。首が曲がったままの女性が、初めて壁から離れ、九条を見た。


「……あ、ありがとう、ございます……」


かすれた声。壊れたAIが、初めて人間らしい言葉を紡いだ。


「礼はいい。お前たちは被害者だ」


九条は端末をしまい、歩き出した。


「力で勝つ必要はない。これは仕様の穴を突いた、ただの運用回避だ」


エピローグ:デバッグロードの始まり

村の外れ、丘の上。九条は遠くの王都を見つめた。


城のテクスチャが剥がれ、内部のワイヤーフレームが露出している。空からは謎の立方体——デバッグ用のグリッド——が降り注ぎ、建物を貫通して地面に刺さっている。


遠くから、悲鳴が聞こえる。


『く、九条さん……あ、ありがとうございます……』


「礼はいい。リセ、お前にはやることがある」


『は、はい……』


「まず村人のAIを修正しろ。パスファインディングのコードを見直せ。それから、スライムの攻撃力計算式を加算に変更。経験値システムの遅延バグも優先度高だ。ボーンの回転制限も忘れるな」


『わ、わかりました! が、頑張ります!』


九条は小さく笑った。


「この世界は……直すべき場所が多すぎる」


一歩、踏み出す。


その足跡に沿って、地面のテクスチャがリアルタイムで修復されていく。欠けていたポリゴンが埋まり、色が正しく表示され、草が生える。


彼の通った道だけが、正常になっていく。


伝説のQAエンジニアの、異世界デバッグロードが、今始まった。


【第1話:完】

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

異世界デバッグ生活 未完成世界の品質保証エンジニア〜物理法則がバグだらけだったので、元QA責任者の俺が仕様の穴を突いて無双します〜 ソコニ @mi33x

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

カクヨムを、もっと楽しもう

この小説のおすすめレビューを見る

この小説のタグ

参加中のコンテスト・自主企画