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

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

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

エラーが発生しました。

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

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


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

5/36

第5話「初めてのホットフィックス」

 夜明け前、蓮はスポーンポイントへ向けて出発した。


 ゴッドには「ちょっと調べに行く」とだけ言った。詳しいことは言わなかった。「ReadOnlyのデバッガーがスポーンポイントのコードを書き換えに行く」と言っても、意味が通じないし、止められても困る。


 護衛についてきたのは、老人のバッシュだった。引退して十年、腰が少し曲がっているが剣だけは手放していない——バッシュ老人は玄関先で俺を待っていた。


「危険です、バッシュさん」


「だからわしが来るんじゃろ。お前さんは戦えんのに一人で行く気か?」


 言い返せなかった。


 バッシュのステータスを見ると`level: 22 / SKILL: sword_technique Lv.4`だ。引退しても衰えていない。`retired_adventurer`という職業の下に、若い頃の実績が積み上がっているのが見えた。


「……よろしくお願いします」


「行くぞ」それだけ言って、バッシュは歩き始めた。


---


 森の奥へ進む道中、俺はバッシュの剣術を観察していた。


 老人は歩きながらでも、常に周囲を警戒している。剣を腰に差したまま、足音をほぼ立てない。デバッガーズ・アイで見ると、バッシュが歩くたびに微細なスキルの発動ログが流れていた。


```

passive_skill: survival_sense — 常時発動中

→ enemy_detection_range: +12m

→ footstep_sound: -80%

→ terrain_adaptation: active

```


 意識しないと発動しない能動スキルだけじゃなく、常時発動している受動スキルもある。ベテランほど、こういうパッシブスキルが充実している——それがこの世界の仕様らしい。


 剣を抜いてゴブリンを一体捌く場面では、さらに細かいログが流れた。


```

execute_slash(angle: 37deg, force: 480N, timing_window: 0.15sec)

→ hit_judge: true / damage: 31

```


 剣技もスキルも、結局は「パラメータ付き関数呼び出し」だ。熟練の剣士とは、この関数を高精度で呼び出せる人間のことだ——とすれば、バッシュは圧倒的に精度が高い。長年で磨いた感覚が、最適なパラメータを自動で設定している。


「……お前さん、よくわからん顔をして歩いてるな」


 バッシュが振り向かずに言った。


「考え事してました」


「考え過ぎじゃ。体に意識を持っておけ、いつ来るかわからんぞ」


「はい」


---


 スポーンポイントを発見した。


 森の奥の開けた岩場。岩盤に埋め込まれた水晶状の石——コアストーンと呼ぶのが一番近い——が、淡く緑色に発光していた。


 その周囲に、数十匹のゴブリンが群れていた。


 バッシュが低く唸った。「数が多い」


「はい。でも、あのコアストーンに触れれば……解決できるかもしれない」


「どうするつもりだ」


「バグを直します」


 バッシュは俺の言葉の意味を問わなかった。ただ「わかった、俺が時間を稼ぐ。お前は石に集中しろ」とだけ言った。


 デバッガーズ・アイでコアストーンを走査した。


```

CORE_STONE: zone_0047_spawner_alpha

STATUS: active (異常)

spawn_rate: 10000 (expected: 100)

spawn_interval: 0.3s (expected: 30s)

population_cap: DISABLED


現在の生成ログ:

while(true) {

spawn_goblin();

sleep(0.3);

}

```


 問題は一目でわかった。


 `while(true)` ——終了条件のない無限ループが、ただひたすらゴブリンを生成し続けていた。


「もし自分が書いたなら上司に怒鳴られるレベルだ」


 思わずつぶやいた。こんな書き方はしない。終了条件のないwhileループは、プログラミングの基本的な禁則事項の一つだ。


---


 バッシュが剣を抜いて最前列のゴブリンに向かう。そのままの速度で三体を薙ぎ払い、他のゴブリンのヘイトを引きつけた。


「どうした? 早くしないと気づかれるぞ」


 俺はコアストーンに近づきながら——止まった。


「……少し、待ってください」


 コアストーンの周囲で、数十匹のゴブリンが動き回っていた。縄張りを守るように、仲間に鳴き声で信号を送っている。小さな個体が岩の陰に隠れている。群れの中に序列がある。


 バグで「意図せず」生まれた存在たち。


 俺の頭に、最も効率的な解決策が浮かんだ。


 `goblinクラスをDELETEする`。


 コアストーンのコアを書き換えて、ゴブリンという存在定義ごと削除する。今ここにいる全個体を含めて、ゴブリンというエンティティそのものを消す。最もクリーンな解決方法だ。コードの観点から言えば、理に適っている。


「……」


 ゴブリンたちが、コアストーンを中心に意味もなく動き回っていた。


 バグで生まれたから消していい、という理屈が通るなら——


 蓮の思考が、一瞬だけ別の場所へ飛んだ。


 過労死した自分も、別の視点からは「コスト超過のバグ社員」として処理されたのかもしれない。三十六時間働かせても成果が足りなかった。システム的には非効率なリソースだった。だから心臓が止まる前に、上から見れば「削除対象」だったのかもしれない。


 その論理で、俺は「削除されてよかった」のか。


 ——違う。


「削除じゃない。ループを止める」


 声に出した。


 バッシュが怪訝な顔をしたが、俺はコアストーンに手を触れた。


---


 冷たかった。岩の冷たさじゃない。データの冷たさだ。コードが、指先から流れ込んでくる感覚がした。


 視界に大量のコードが展開された。スポーンポイントの全定義。数百行のコードが頭の中に広がっていく。


 今まで「READ_ONLY」だった感覚が、変わった。


 変わっている——確かに感じた。指先で、コードの輪郭に触れられる気がした。ガラスの向こう側にあったものが、今は手の届く場所にある。


 世界が抵抗した。文字通りの感覚だった。コードに触れようとした瞬間、見えない壁のようなものが押し戻してくる。世界が「このデータは変えるな」と言っている。


 それでも。


 この無限ループを止めなければ、村が飲み込まれる。ゴッドも、マルも、バッシュも——みんな、数日のうちにゴブリンの波に埋まる。


 一文字ずつ、書き換えていく。


```diff

- while(true) {

+ while(goblin_count < max_capacity) {

spawn_goblin();

- sleep(0.3);

+ sleep(30);

}

+

+ max_capacity: 50

```


 MPが削れていく。体の中から、水が流れ出るような感覚だ。一行書き換えるごとに、意識が薄くなっていく。膝が笑い始める。


 でも——止まらなかった。


 最後の一行を書き換えた瞬間——


---


```

DEBUGGER'S EYE Lv.1 → Lv.2


新機能解放:

魔法源コードの読み取り・改変が可能になりました

※ 改変にはMPを消費します

※ 現存エンティティには影響しません

```


---


 通知が視界の中で光った。


 コアストーンから手を離した瞬間、森が静かになった。


 正確には——静かになっていくのがわかった。コアストーンの緑の光が、ゆっくりと消えていく。スポーンポイントが停止した。新しいゴブリンが、もう生まれない。


 周囲のゴブリンたちも変化した。縄張りの中心——コアストーン——が機能を停止したことで、AIの行動パターンが「混乱」に移行した。統率を失った群れが、散り散りに森の奥へと退いていく。


「お前さん……今、何をした?」


 バッシュが、剣を下げたまま俺の横に立っていた。


「バグを直しました。増殖ループを止めただけです」


「……よくやった」


 老人が静かに言った。それだけだった。余計な言葉はない。ただ、その二言が——ひどく重かった。


---


 帰り道、俺は問いを抱え続けた。


 「削除じゃなく修正を選んだ」


 それが正解だったのか、俺にはわからない。バグで生まれた存在を削除することは、効率的だった。クリーンだった。コードの観点から言えば、合理的だった。


 でも俺はそれを選ばなかった。


 過去の自分のことを考えた、というのは本当だ。俺も誰かの「システム」の中で、コスト超過のリソースとして処理されたのかもしれない。だから共感した——というのも、半分本当だ。


 でも本当のことを言うと、もっと単純な理由だった。


 縄張りを守るゴブリンを見て、仲間に信号を送るゴブリンを見て——「存在している」と感じた。バグで生まれたかどうかは関係なく、今ここに「いる」ものを、俺の都合で消すことができなかった。


 それだけだ。


 論理的な正解かどうかは知らない。でも——削除じゃなく修正を選んだ。その事実だけを、今は持っていればいい。


---


 バッシュが歩きながら、唐突に言った。


「一つ聞いてもいいか」


「何ですか」


「怖かったか。ゴブリンの群れの前で」


 俺は少し考えた。


「……怖かったです。でも、あのバグを放っておくことの方が、怖かった」


 バッシュは「そうか」とだけ言って、歩き続けた。


---


 村に戻ったのは昼過ぎだった。ゴッドが入口で待っていた。俺の顔を見て、「帰ったか」と言った。それ以上は何も聞かなかった。


 部屋に戻って、仕様解析ノートを開いた。


 ゴブリンのバグは修正した。廃村のエラーはまだ手が出ない。


 そして、一つの疑問が残っている。


 書き留めた。


「ゴブリンのバグも、廃村のデータ消失も——自然に発生したにしては、妙に『意図的』に見える。スポーンポイントの三つのパラメータが同時に書き換わることが、偶然起きるのか? クウォレン村のデータが、バックアップなしに完全消失することが、システムの劣化で起きるのか?


 バグは自然に起きたのか? それとも——誰かが仕込んだのか?」


 ペンを置いた。


 答えはまだない。でも、問いは記録した。


 エンジニアとして、それだけは確実にやる。

次回、第06話「レベルアップの仕様書」——Lv.2になったデバッガーズ・アイで見えてきた、この世界の設計思想。そしてアリアからの使者が、ログ村に現れる。

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

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

↑ページトップへ