表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
過労死エンジニアの異世界リファクタリング ~孤独の管理者と不変の定数~  作者: 雨山識


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

19/26

第18話:合同演習と不具合報告(バグ・レポート)

数日後。

僕たちは王都近郊にある「初級ダンジョン」の前で整列していた。

今日は全学年合同の「実技演習」の日だ。

教師がくじ引きで決めた即席パーティを組み、ダンジョンの浅い階層を探索して「魔石」を持ち帰るのが課題である。


「……なんでこうなるのかな」


僕は天を仰いだ。

僕の班員パーティメンバーは、以下の通り。


1. **リナ・メモリ**(Sクラス・聖女候補・幼馴染・僕にベタ甘)

2. **エララ・フォン・ヴァロス**(Sクラス・公爵令嬢・僕を敵視・火力馬鹿)

3. **ミオ・アーカイブ**(Cクラス・図書委員・オタク・戦闘力皆無)

4. **レイン・リファクト**(Fクラス・落ちこぼれ・苦労人)


地獄のメンバー構成だ。

特にSクラス二人が同じ班というのは、戦力過剰オーバーキルもいいところだが、人間関係の摩擦係数が高すぎる。


「ふん。足手まといが二人もいるなんて、運が悪かったわ」


エララが僕とミオを交互に見下ろしながら言う。

ミオは「ひぃっ……」と縮こまり、僕の背中に隠れた。


「まあまあ、エララさん。レインは強いし、ミオさんも知識があるわよ」

「リナ、あなたは甘すぎるのよ。Fクラスと本の虫に何ができるの?」

「……まあ、荷物持ちくらいはやりますよ」


僕は無難な回答をして、ミオの背中をポンと叩いた。

彼女は戦闘系じゃない。この場にいるだけでストレスだろう。


「行くわよ。さっさとノルマを達成して帰るわ」


エララを先頭に、僕たちはダンジョンへと足を踏み入れた。

湿った空気。薄暗い通路。

壁には発光苔が張り付き、不気味な緑色の光を放っている。


「キャッ!?」


ミオが小さな悲鳴を上げた。

ただのネズミだ。だが、彼女にとってはドラゴンのように見えたらしい。

涙目で僕の袖を掴んでくる。


「れ、レイン君……か、帰りたい……」

「大丈夫だよ。僕が後ろにいるから」


前衛はエララとリナ。

中衛にミオ。

後衛に僕。

フォーメーションとしては悪くないが、連携チームワークは皆無だ。


「出たわね、雑魚モブが!」


通路の奥から、スケルトンの群れが現れた。

初級ダンジョンの定番モンスターだ。


「《プロミネンス・バースト》!!」


いきなり最大火力かよ。

エララの杖から極大の火球が放たれ、スケルトンだけでなく通路の壁ごと吹き飛ばした。

轟音。振動。落盤。


「ゴホッ! ゴホッ! ……ちょっと、エララ! ダンジョン内で爆発魔法は禁止でしょ!?」

「うるさいわね! 倒せればいいのよ!」


リナが抗議するが、エララは聞く耳持たずだ。

煙が晴れた後には、オーバーキルされたスケルトンの残骸と、崩れかけた天井が残っていた。


(……やれやれ。これじゃあ、ボスに辿り着く前にダンジョンが崩壊するぞ)


僕はこっそりと指先を動かした。

崩れかけた天井の強度データを書き換え、補強する。

さらに、エララの余剰魔力が周囲に拡散しないよう、見えない「吸音・防振結界」を張った。


「……あれ? なんか煙がすぐ消えた?」

「気のせいじゃないですか?」


僕はとぼけて先を促した。

その後も、エララの暴走は続いた。

敵が出るたびに全力魔法。リナが回復と防御でカバーし、ミオが怯え、僕が裏で尻拭い(環境修復)をする。

最悪のデスマーチだ。


「はぁ、はぁ……。なによ、この数は……!」


一時間後。

エララが肩で息をしていた。

当然だ。ペース配分を考えずに全力魔法を連発していれば、ガス欠(マナ切れ)になる。

リナも回復魔法の使いすぎで疲労が見える。

ミオに至っては、すでに足が震えて歩けなくなっていた。


「……少し休みましょう」


僕は提案した。

エララは睨んできたが、反論する元気もないらしい。

全員で通路の隅に座り込む。


「……おかしいわね。初級ダンジョンにしては、敵の湧きが早すぎるわ」


リナが呟いた。

その通りだ。

通常、このレベルのダンジョンなら、一度倒した敵が再出現するまでには数時間のクールタイムがあるはずだ。

だが、今日は倒した端から新しい個体が生成されている。


(……無限湧きバグか?)


僕は『低レイヤー・ビジョン』を開いた。

ダンジョンの「管理システム(OS)」にアクセスを試みる。


【Access Denied.】

【Error: System Resources Exhausted.】

【Reason: Garbage Collection Failed.】


(……ゴミ掃除が追いついてない?)


どうやら、倒されたモンスターのデータが正常に削除されず、エラーデータとして残留しているようだ。

それが新しいモンスターの出現判定を狂わせ、無限ループを引き起こしている。

つまり、このダンジョン全体が「処理落ち」寸前なのだ。


「……レイン君?」


ミオが不安そうに僕を見上げる。

彼女にも、何かが感じ取れるらしい。

そういえば、彼女は「情報の流れ」に敏感だ。


「……変です。このダンジョンの空気、図書館の『禁書庫』と同じ匂いがします」

「え?」

「データが……腐ってる匂い」


的確な表現だ。

データの欠損(Corruption)。

それが物理的な「腐臭」となって漂い始めている。


ズズズ……。


不穏な音が響いた。

通路の奥から、何かが這いずってくる音。

スケルトンやゴブリンのような、形のあるモンスターではない。

黒い霧のような、不定形の影。


「な、なによあれ……?」


エララが立ち上がる。

だが、魔力切れで杖を持つ手が震えている。

リナも顔色が悪い。


鑑定アナライズ……ダメ、情報が出ない! 名前もレベルも『不明(Unknown)』よ!」


リナが叫ぶ。

通常の鑑定スキルが効かない相手。

つまり、この世界の正規データベースに存在しない「バグ魔獣」だ。


「下がりなさい! 私が……!」


エララが前に出る。

だが、その足元がふらついた。

限界だ。


(……仕方ない。介入デバッグするか)


僕は立ち上がり、三人の前に立った。

Fクラスの仕事じゃない。

だが、ここでパーティ全滅ゲームオーバーになるのは、僕のシナリオにはない。


「レイン!?」

「下がってて、みんな。……少し、掃除をする」


僕は杖を構えた。

相手は「バグ」だ。

物理攻撃も魔法攻撃も、正規の手順では通用しない可能性がある。

当たり判定ヒットボックスがないかもしれないし、HPが無限かもしれない。


だが、どんなバグにも「原因」がある。

それを特定し、修正(fix)するのがエンジニアの仕事だ。


「……対象、不定形オブジェクト。構造解析開始」


僕はコードの海に潜った。

視界が緑色の文字列に覆われる。

黒い影の正体。

それは――


`Object: NULL`

`ReferenceError: Object not found.`


(……ヌルポインタかよ)


実体のない参照エラー。

それが具現化して襲ってきている。

たちが悪い。

触れれば、こちらのデータも侵食されて「無」に帰すだろう。


「……レイン君、逃げて! それは触っちゃダメ!」


ミオが叫んだ。

彼女には分かっているのだ。あれが「存在してはいけないもの」だと。


「大丈夫だ。……幽霊退治は得意なんでね」


僕はニヤリと笑った。

物理がないなら、論理で殴るまでだ。

NULLなら、そこに「定義」を上書きしてやればいい。


「強制定義(Override)。……お前は『ただの石ころ』だ」


`target = new Stone();`


僕の指先から放たれた光が、黒い影を貫いた。

その瞬間。

不定形の影が、キュッと収縮し――コロン、と地面に転がった。

ただの石ころになって。


「……え?」


エララとリナが目を丸くする。

ミオだけが、眼鏡の奥で「ああっ!」と何かを理解したような顔をした。


「さて、掃除完了。……帰ろうか、みんな」


僕は石ころを蹴っ飛ばし、振り返った。

三人の、まるで未確認生物を見るような視線を受けながら。


だが、その時だった。

僕たちが来た道――入口へ続く通路が、ぐにゃりと歪んだ。


「き、道が消えた!?」


リナが悲鳴を上げる。

通路があった場所には、ノイズのような壁が出現し、完全に退路を塞いでいた。


「……なるほど。歪みの原因を叩かないと、脱出できないってわけか」


僕は舌打ちした。

さっきの黒い影は、ただの「症状」に過ぎなかったらしい。

このダンジョン全体を蝕む「病巣」は、もっと奥にある。


「行くしかないようだな。……最深部(ボス部屋)へ」


僕の言葉に、エララとリナ、そしてミオが覚悟を決めたように頷く。

これが、僕たちのパーティ「デバッグ・チーム(仮)」の、本当の戦いの始まりだった。

【今節の専門用語解説】


・モブ(Mob)

群衆(Mobile Object)。ゲームにおいては、名前のないその他大勢のキャラクターやモンスターを指す。エララはスケルトンたちを「雑魚キャラ」として一掃しようとした。


・リポップ(Re-pop / Respawn)

一度倒されたモンスターが、一定時間後に再出現すること。通常はゲームバランスを考えて調整されるが、バグで即座に復活し続けると「無限湧き」となり、プレイヤー(冒険者)を苦しめる。


・ガベージコレクション(Garbage Collection)

メモリの掃除機能。不要になったデータ(倒されたモンスターの死体など)を自動的に消去し、メモリを空ける仕組み。これが機能しないと、ゴミデータが溜まって動作が重くなったり、バグの原因になる。


・ヌル(Null)

「無」。データが存在しない状態。0(ゼロ)とは違い、「箱そのものがない」状態を指す。プログラミングで最も厄介なエラーの一つ(Null Reference Error)。レインはこれを「石」として再定義(初期化)することで無力化した。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ