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

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

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

エラーが発生しました。

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

ブックマーク機能を使うにはログインしてください。
コード・オブ・ザ・ワールド ~廃プログラマー、異世界で神のシステムを書き換える~  作者: ネオ・チー


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

55/77

第55話 デバッグ vs コラプト

```

[SYSTEM LOG - /dev/null deepest layer]

> timestamp: 3.2.7_build.9041

> location: /dev/null/core/-1

> ambient_density: 0.31 (CRITICAL LOW)

> entity_detected: VIRUS [CORRUPTED] - threat_level: UNDEFINED

> self_integrity: 68% → WARNING: ACCELERATED DEGRADATION ACTIVE

> debugger_eye: Lv3 / ACTIVE

> combat_mode: INITIALIZING...

> [ERROR] Cannot predict corruption vectors

> [ERROR] Hotfix queue: OVERLOADED

> BEGIN ENCOUNTER

```


---


「来い、プログラマー——俺はずっと、誰かに止めてほしかった」


その声は静かだった。


叫びでも怒りでもなく、ただ疲れ果てた人間が、長い夜の終わりに吐き出すような声。


俺は右腕の感覚を確かめた。肩から先がノイズのように揺らいでいる。デバッガーズ・アイの表示は自己コード劣化32%。/dev/nullの低密度空間が、通常の倍のペースでバグを積み上げていた。


それでも。


「——やるぞ」


俺の声に、全員が動いた。


その瞬間、/dev/nullの空気が変わった。


今まで静かに漂っていたゴーストデータが、ざわついた。まるでこの空間が戦いを認識したみたいに、建物の断片が浮き上がる。名前のない人々の輪郭が遠ざかる。それは逃げているのか——あるいは、かつて同じ場所で同じような戦いがあったことを、動作パターンとして記憶しているのか。


判断している時間はなかった。


---


最初に飛び出したのはガルドだった。


「ああ、やってやる!」


巨体が地面を蹴る。/dev/nullの足場——0.xバージョンの建物の断片、石か金属か判断できない素材——が砕けた。戦斧が空気を裂いてヴァイラスへ向かう。速い。ガルドの踏み込みは本物の冒険者の速度だ。


ヴァイラスは動かなかった。


ただ一本の指を、軽く振った。


刹那。


ガルドの戦斧が異常を訴えた。デバッガーズ・アイに情報が流れ込む——速い、速すぎる。コードが書き換えられていく。1行、また1行。剣先の動作定義。攻撃対象の参照先。それが俺の目の前で塗り替えられていく。


```

// BEFORE

weapon.target = enemy;

weapon.direction = forward;


// AFTER (CORRUPTED)

weapon.target = owner; // ←書き換え済み

weapon.direction = backward; // ←書き換え済み

```


「ガルド、離せ!」


叫ぶより先に、戦斧の刃がガルド自身に向いていた。柄を握る手に戦斧が抵抗する。金属が生き物のようにねじれ、持ち手の方向へ引き戻ろうとする。


「なんだこれ、俺の斧が——!」


「武器が汚染された!一時的に手放せ!」


俺はすでにコードを開いていた。リアルタイムのhotfix。デバッガーズ・アイで空中のコードを掴む。修正する。前世でも何度もやった動作——ただしあの時は本番環境で本番コードを直接触ることはなかった。今は違う。触れているのは現実そのものだ。


```

// HOTFIX APPLIED

weapon.target = enemy; // 復元

weapon.direction = forward; // 復元

```


戦斧の動きが止まった。ガルドが再び柄を握り直す。


「助かった!」


一秒もなかった。それでもヴァイラスは止まらない。


「速いな」


ヴァイラスが言った。感情のない声。称賛でも驚きでもなく、ただの観測。「だが——」


また指が動いた。


今度は二本。


---


アリアの剣が空を切った——方向が違う。


「っ——!」


アリアの目が見開く。狙ったのはヴァイラスの右側面のはずだった。なのに剣は左前方へ飛んだ。体が覚えた軌道と、コードが命令した軌道が食い違っている。剣士としての本能が混乱を訴えていた。


条件分岐剣法の根幹、そのコードが改竄されていた。


俺はアリアの剣技のコードを開く。見た瞬間、胃が冷えた。


```

// BEFORE

if (enemy.position == front_right) {

strike.direction = right_slash;

}


// AFTER (CORRUPTED)

if (ally.position == front_right) { // ←「enemy」が「ally」に書き換え

strike.direction = right_slash;

}

```


「アリア、攻撃を止めるな!でも軌道は俺に任せろ!」


「わかりました!」


アリアが突っ込んでくる。剣を振る。俺は同時にコードを修正する。彼女の体の動きと、俺のコード修正を同期させる。一歩踏み込んだタイミングで修正が完了する。一瞬でも遅れれば剣は仲間に向く。


```

// HOTFIX APPLIED

if (enemy.position == front_right) { // 復元

```


剣の軌道が戻った。刃がヴァイラスの肩口をかすめる。


初めてヴァイラスが後退した。わずか半歩。でも確かに。


「——デバッグが間に合うか」


ヴァイラスが呟いた。今度は少し、違う声色だった。試しているような——自分に問いかけているような——そんな声だった。


---


シェルが後方で両手を広げた。周囲の空間にクエリ式が展開する。光の文字列が網を張るように広がり、ヴァイラスの動きを追いかける。情報を食らって分析を進める。シェルが俺の耳元で言った。


「ヴァイラスの汚染パターン解析中——優先度は武器から入る。次にスキルコア。本人が触れなくても、視線の先に汚染波を飛ばせる。射程は推定15メートル」


「飛び道具があるか」


「あと、汚染速度——お前より速い。このまま続けると30秒でジリ貧になる計算だ」


わかってる。


俺は今、三つのコードを並列で処理していた。ガルドの戦斧、アリアの剣技、そして自分自身の自己コード劣化の抑制。脳が焼き切れそうな感覚。デバッガーズ・アイが軋む。前の世界でマルチタスクの限界を感じたことは何度もあった。だがあの時は「精神的な疲弊」だった。今は「文字通りコードとして自分が壊れていく」感覚だ。Lv3の上限に指がかかっている。


汚染が来る。


修正する。


また汚染が来る。


また修正する。


ループ。終わりのないループ。


これは普通のデバッグじゃない。俺が修正を終える前に次の改竄が走っている。本来ならhotfixは「バグを見つけて修正して終わり」のはずだ。だがヴァイラスはバグを入れ続ける生産者だ。俺は修正し続ける消費者だ。生産速度が消費速度を上回っていたら——


答えは明白だった。


```

// HOTFIX QUEUE STATUS

[1] weapon.target → FIXED → CORRUPTED AGAIN → FIXING...

[2] sword_logic.condition → FIXED → CORRUPTED AGAIN → FIXING...

[3] self_integrity: 68% → 65% → 62%...

[WARNING] Queue processing speed approaching limit

[WARNING] Estimated failure in 18 seconds

```


「俺がデバッグする速度とお前がコラプトする速度——どっちが速いか勝負だ」


俺は言った。自分自身への言い聞かせでもあった。諦めの言葉じゃない。宣戦布告だ。前の世界でも同じことがあった。リリース前夜にバグが連鎖して、直しても直しても次のバグが湧いてくる夜。あの時と今が重なった。あの時は負けた——倒れて終わった。今は違う。負ける前に終わらせる。


「もう答えは出ているよ」


ヴァイラスが静かに答えた。嘘ではなかった。数字が証明している。18秒。いや今は15秒だ。


「——でも俺はまだ諦めていない」


ヴァイラスは答えなかった。ただ、また指が動いた。今度は三本。


---


ガルドの戦斧が再び汚染された。今度は拳具も同時に。


```

// CORRUPTED

knuckle.force_direction = owner;

axe.blade_angle = -180deg (reversed)

```


二箇所を同時に修正する。コードが滲む。視界が一瞬揺れた。自己コード劣化が60%を超えた。


「くそ——!」


修正が一拍遅れた。その一拍の間に、ガルドの拳具が自分の腕に衝突した。鈍い音。ガルドが舌打ちをしながらも体勢を崩さない。さすがに元Bランクだ。打たれ強さが違う。フォームが崩れない。


「ドンマイ蓮!気にするな!」


「気にしてる場合じゃない——!」


アリアの条件分岐剣法がまた改竄される。今度は二条件同時。


```

// CORRUPTED (double)

if (enemy.position == front) → if (ally.position == front)

if (enemy.defense == low) → if (ally.defense == low)

```


アリアが素早く剣を止める。俺が修正する。修正が終わる前に次の汚染が来る。


段々と手が届かなくなっていた。


修正の網が破れ始めている。


ヴァイラスが言った。静かに、でも確かに——


「俺の速度には、届かない」


その声には、悲しみに似た何かが混じっていた。勝ちを喜んでいるのではなく。むしろ——証明されてしまうことを、惜しんでいるような。


---


「蓮!」


ガルドの声が変わった。


戦場の声だ。判断を求めない声。何かを伝えるだけの声。


「俺を気にするな!お前はヴァイラスの本体を狙え!」


「馬鹿言うな、お前の武器が——」


「俺は自分でなんとかする!」


ガルドが戦斧を放り投げた。そのまま拳一本で、ヴァイラスに向かって走り出す。素手だ。汚染できる武器がなければ、汚染のしようがない。


空気が変わった。


ガルドの周囲の密度が上がる。熱ではない。圧力でもない。何か、根本的なものが溢れ出す感覚。コードが膨張している。容量が、上限を超えようとしている。デバッガーズ・アイに警告が走った。


```

[ALERT] ENTITY: GARD

> stack_memory: OVERFLOW DETECTED

> capacity: 100% → 120% → 150%...

> WARNING: STACK OVERFLOW IN PROGRESS

> estimated_output: EXCEEDS SYSTEM LIMIT

> [NOTE] repeated use causes permanent integrity loss

```


スタックオーバーフロー——ガルドの切り札。自分のメモリ限界を超えてリソースを積み上げ、爆発的に解放する技。使えば寿命を削る。


こいつは——いつからこれを知っていたのか。何度使ってきたのか。それを誰にも言わずに、今この瞬間も迷いなく選んでいる。


俺はそれを知らなかった。でも今この瞬間、デバッガーズ・アイが読んだあのログの最終行を、頭の隅に刻み込んだ。


`[NOTE] repeated use causes permanent integrity loss`


繰り返し使えば、永続的な損傷が起きる。


ガルドはそれを知っていて——使っていた。今も、使おうとしていた。


「——ガルドゥオオオオッ!!!」


爆発。


ガルドの全力が/dev/nullを揺らした。ゴーストデータが吹き飛ぶ。0.xの建物の断片が砕け散る。床の定義が一時的に崩れ、重力が揺らぐ。ヴァイラスが初めて真剣に回避行動を取った。体が右に飛ぶ。視線が、ガルドに向いた。


俺に向いていない。


今だ。


---


走った。


汚染の余波が大気を変色させた空間を、最短ルートで抜ける。右腕が揺らぐ。自己コード劣化が59%——いや、また上がる。/dev/nullの増幅効果が止まらない。もうデバッガーズ・アイが通常では見えないものまで見え始めている。これは悪化のサインだ。ノイズが多すぎる。フィルタが追いつかない。


構わない。


5メートル。3メートル。


ヴァイラスの背中が見えた。


デバッガーズ・アイを、限界まで開く。


ヴァイラスに向けて、アクセスを試みた。


普通なら弾かれる。エンティティの源コードは、相手が受け入れなければ読めない。触れることもできない。システムの基本原則だ。他人のコードを無断で読むことは、この世界でも前の世界でも——許されない。


だが——


ヴァイラスが、俺を見た。


汚染の指を向けず、ただ見た。


「——読めるか、プログラマー」


静止。


ヴァイラスが、受け入れていた。


---


コードの海に落ちた。


ヴァイラスの内部。源コードの奥深く。


汚染のコードが絡み合い、腐食したフレームが積み重なり、もはや原型を留めていないように見えた——最初は。


腐食の臭いがする、と思った。コードに臭いなんてない。でもそう感じた。何百年分の憎しみと怒りと諦めが堆積している場所の、臭い。


だが、俺は目を細めた。


デバッガーズ・アイが、深く潜る。


汚染の下に、何かがある。


前の世界でも同じだった。長年放置されたレガシーコード。誰も触りたがらないスパゲッティの奥に、最初に書いたエンジニアの設計意図が残っていることがある。コメントとして。変数名として。仕様書を読めば分かる構造として。腐っていても、消えないものがある。


```

// [LAYER: CORRUPTED] - active

// [LAYER: VIRUS] - overwrite

// [LAYER: ........] - SEARCHING...

// [LAYER: PATCH v0.4] - FOUND ← !!!

```


息が止まった。


汚染の何十層もの下。腐食したコードの海の底。


そこに、原型があった。


改竄される前の、消される前の——英雄パッチのコードが。


まだ、生きていた。


消えていなかった。


三十%の劣化で霞む視界の中でも、それははっきりと見えた。周囲の汚染コードよりも鮮明に。色が違う。質が違う。パッチが自分で書いた、自分だけのコードだ。古い。古いが——丁寧に書かれている。誰かに読んでもらうことを意識して書かれたコードの、あの独特の整然さがあった。


```

// PATCH v0.4 - original signature

// function: protect(target: ALL)

// motive: keep_world_safe()

// core_value: "誰も消えなくていい"

// status: BURIED / NOT DELETED

```


守ること。全員を。誰も消えなくていい。


それがパッチの——ヴァイラスの、根っこにあるコードだった。


汚染に埋もれて。腐食に覆われて。それでも消えずに、ずっとそこにあった。


俺は画面の前で止まった。比喩ではなく、本当に止まった。デバッガーズ・アイの中で、手が止まった。


ヴァイラスはずっと、誰も消えなくていい、と思っていた。


世界を壊そうとしていた存在の、一番奥に。


「誰も消えなくていい」という言葉が、消されずに残っていた。


こいつは——バグだ。


ヴァイラスそのものが、世界最大のバグだと俺は思っていた。だがパッチのオリジナルコードを見た今は、少し違って見える。バグじゃない。矛盾だ。「誰も消えなくていい」と信じていた者が、世界を消そうとしている。その矛盾が、ヴァイラスというエンティティを作っていた。


矛盾は——修正できる。


「……」


言葉が出ない。


そして、さらに深く。


原型コードの、さらに奥。


誰かの手が書いた痕跡があった。プログラミング言語でも古代文字でもない、もっと根本的な何か——世界の設計者だけが書けるもの。ソースコードの一番深い層に刻まれた、設計者の痕跡。


コメント文。


```

// ※ アドミンによる設計コメント ※

```


それだけ見えた。


内容は読めなかった。デバッガーズ・アイが弾かれた。Lv3の限界だ。まるで扉に鍵がかかっているみたいに、それ以上は届かない。


だが確かに、そこにあった。


この世界を設計した者が、ヴァイラスの源コードに、何かを残していた。


なぜ消さなかった。


なぜ残した。


---


衝撃が来た。


ヴァイラスの汚染波が俺を弾いた。接続が切れる。意識が/dev/nullの空気に戻る。体が石の床を転がった。衝撃は強いが、殺意はない——弾き飛ばす力であって、潰す力ではなかった。


「見えたか」


ヴァイラスの声。近い。


「見えた」


俺は立ち上がりながら答えた。


右腕のノイズが激しい。自己コード劣化が、メモリの声を聞かなくても分かるくらいに積み上がっていた。それでも足は立つ。声は出る。


「パッチのコードが、まだ残ってる。お前の中に」


沈黙。


/dev/nullが静まり返った。


「……そんなものを見て、何が変わる」


「わからん。でも——」


俺はデバッガーズ・アイの余光が冷める前に、さっき見たものを反芻した。


英雄パッチの原型コード。汚染に埋もれて消えずにいるもの。そしてアドミンが残したコメント。


なぜそこに、設計者のコメントがある。


なぜ削除しなかった。


「——お前のコードに、アドミンが何か書き残してる」


ヴァイラスの動きが止まった。


初めて、明確に止まった。


「何、だと」


その声には、初めて感情が乗っていた。


疲れでも怒りでもなく——何か、もっと深いもの。封じ込めてきた何かが、一音だけ滲み出したような声だった。


俺は続ける言葉を持っていなかった。Lv3では読めない。内容を知らない。


ただ、そこにあったという事実だけを、持っていた。


「俺一人では読めない。でも確実にある。アドミンがお前に向けて書いたコメントが」


---


/dev/nullの空気が揺れた。


ガルドが膝をついていた。スタックオーバーフローの反動。シェルが駆け寄る。アリアが剣を構えたまま、ヴァイラスと俺の間に立っている。


ヴァイラスは動かなかった。


汚染波も出ていない。


ただ、俺を見ている。


「……読めるのか、プログラマー」


「今は無理だ。Lv3じゃ届かない」


「ならば——」


「でも次に会うときは、読む」


沈黙が伸びた。


ヴァイラスの表情が動いた。


俺には読めなかった。悲しみか、安堵か、あるいは全く別の何かか。数百年分の感情が詰まった顔を、俺はまだ読み解けるほど知らない。


「……続きは、また今度だな」


それだけ言って、ヴァイラスは後退した。/dev/nullの深部へ。暗闇の中へ。ゴーストデータの群れが道を開けるように揺れた。


その背中を見ながら、俺は思った。


あいつは今——何を思っているのか。


自分のコードに、アドミンのコメントが残っていると知った。長い年月、ずっと持ち歩いていた。知らなかったのか、知っていて見ないようにしていたのか。それは分からない。でも反応した。明確に、動きを止めた。


追わなかった。


追える状態でもなかったし——追うべきでもないと思った。


あの源コードの奥にあったもの。英雄パッチの原型コード。そしてアドミンのコメント。


内容を知らないまま、ヴァイラスを終わらせてはいけない気がした。


「誰も消えなくていい」——それを書いた者が、世界を壊そうとしている。


なぜか。


答えはアドミンのコメントの向こうにある。


---


「蓮」


ガルドの声。掠れていた。


膝をついたまま、でも口の端が上がっている。


「俺、役に立ったろ」


「……ああ」


スタックオーバーフローの反動が体に出ている。俺には見えた。ガルドの源コードが、わずかに——削れていた。前と比べて、少し薄い。また一枚、剥がれていた。


どこかで誰かがコードを書く時に、寿命を変数として定義するだろうか。`lifespan = 100`のように。削れていく。毎回使うたびに、一ずつ減っていく。


見ているのが辛かった。


でも——ガルドはそれを選んでいた。今も、笑っていた。


何も言わなかった。


今は、言えなかった。


「シェル。ガルドを頼む」


「了解。でも——」


シェルが少し間を置いた。こいつが間を置くのは珍しい。


「今の、お前の目——普通じゃなかった。Lv3の限界突破しかけてた」


「わかってる」


「わかってるなら——」


「わかってる」


繰り返した。


アリアが剣を鞘に収めた音がした。


「あなた——大丈夫ですか」


「大丈夫じゃない。でも死んでない」


「それは——」


「十分だ」


/dev/nullの暗闇の奥に、もうヴァイラスの気配はなかった。0.xのゴーストデータが、静かに漂っている。名前のない人々が、また何事もなかったように、動作パターンだけを繰り返している。


俺はデバッガーズ・アイを閉じた。


右腕がノイズを撒いている。劣化57%。Lv3の限界ギリギリを、今日は何度も往復した。それでもまだ立っている。倒れなかった。


さっき見えたコメントの書き出しだけが、脳裏に焼き付いていた。


アドミンによる設計コメント。


ヴァイラスの源コードの、一番奥に。


なぜ消さなかった。なぜ残した。


アドミンはこの世界を作って、バージョンアップして、パッチを——かつての英雄を消した。それなのに、消した相手のコードに何かを書き残した。消した後で。消してから。


それはどういう意味か。


その問いへの答えは——次の扉の向こうにあった。


---


```

[SYSTEM LOG - UPDATE]

> combat: SUSPENDED (not resolved)

> self_integrity: 57% ← CRITICAL

> VIRUS: RETREATED / LOCATION: UNKNOWN

> debugger_eye: Lv3 / STRAIN DETECTED

> new_flag: ADMIN_COMMENT_FRAGMENT [READ: FAILED / LOCKED]

> condition_check: Lv3→Lv4 THRESHOLD: APPROACHING

> next_action: PENDING

```

次回——第56話「ルート・アドミンの意志」


ヴァイラスの源コードに刻まれたアドミンのコメント。その一行が、英雄パッチの過去と、世界の設計者の苦悩を明かす。「お前は私の最高傑作だった——」。真実を知ったヴァイラスは静止し、そして——暴走する。メモリが割って入り、かつての記憶を語るとき、蓮のデバッガーズ・アイは、限界の向こうへと手を伸ばした。

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

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

↑ページトップへ