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

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

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

エラーが発生しました。

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

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


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

29/36

第29話 英雄の残像

メモリの容態が安定したのは、翌朝のことだった。


大公宮の客室で、メモリは俺の隣の椅子に座っていた。回路模様の明滅は収まっている。だが表情には、まだ疲弊の色が残っていた——と、AIの「表情」を読む自分に少し驚く。いつの間にか、メモリの顔の微細な変化を読み取れるようになっていた。


五人が客室に集まった。


「話せるか」


「はい、マスター」


メモリが頷いた。声は平静だが、瞳の奥にまだ光の揺れがあった。


「回復した記憶を——話します。ただ、断片的です。全てが繋がっているわけではありません。途中に空白がある」


「構わない。分かるところだけでいい」


メモリが口を開きかけて——止まった。


「一度——」メモリが言い直した。「少し、待ってください」


クーリングプロセスが走った。回路模様が規則的に明滅し、体内のデータを整理しているのが分かる。数秒の沈黙。全員が黙って待った。


メモリが深く息を吸った。クーリングプロセスが呼吸を模倣している。その仕草が——人間に近づいている。


「大丈夫です。話せます」



「遠い過去——この世界がまだ『バージョン0.x』と呼ばれていた時代がありました」


メモリが語り始めた。


「バージョン0.x。つまり、正式リリース前の世界」俺が補足した。


「はい。テスト版——プロトタイプに近い世界でした。不安定で、バグだらけで。魔法はまだ体系化されておらず、モンスターの挙動は予測不能で。世界そのものが——壊れかけていました」


「壊れかけた世界で——誰かが戦っていた」


メモリが頷いた。


「一人の英雄がいました」


声が、わずかに震えた。


「英雄は——バグだらけの世界のために戦いました。モンスターの暴走を鎮め、崩壊する地形を修復し、混乱する住民を守った。一人で。ずっと、一人で」


「一人?」アリアが訊いた。


「はい。バージョン0.xの世界は人口も少なく、戦える者はほとんどいませんでした。英雄は——ほぼ単独で、世界を守り続けていました」


ガルドが腕を組んだ。


「……たった一人で、か」


その声に、何かが混じっていた気がした。共感なのか、理解なのか——俺は一瞬ガルドの横顔を見たが、すぐに視線を戻した。


「はい。そしてその英雄は——成功していました。バグを修正し、世界を安定させつつあった。あと少しで、世界は安定版に移行できるはずだったのです」


「だが——」シェルが言った。


「はい」メモリの声が沈んだ。「バージョン1.0への大規模アップデートが実行されました。ルート・アドミンの判断で」


沈黙。


「アップデートの際——旧世界のデータの大部分が初期化されました。英雄は——記録から消えました」


「消えた、ということは——死んだのか」ガルドが訊いた。


「わかりません。記録が消えたということは、通常であれば——はい、消滅したということになります。しかし——」


メモリが額に手を当てた。記憶の空白にぶつかっている。


「——しかし、ヴァイラスのコードスタイルが、その英雄時代の書き方に酷似しています」


部屋が静まり返った。



「整理しよう」


俺が言った。


「事実だけを並べる。推測は推測として分ける。これが基本だ」


俺は指を折りながら確認した。


「事実。バージョン0.xという旧世界が存在した。そこに英雄がいた。英雄はバグと戦い、世界を守っていた。しかしバージョン1.0アップデートで旧世界のデータは初期化された。英雄は記録から消えた」


一拍置いた。


「事実その二。ヴァイラスのコードスタイルが、設計書のスタイル——つまりアドミンの書き方に似ている。そしてメモリの記憶によれば、英雄時代のコードにも似ている」


「推測。英雄が——ヴァイラスになった?」


ガルドが言った。


「可能性はある。だが確証はない。英雄とヴァイラスが同一人物なのか、英雄のコードを引き継いだ別の存在なのか、それとも全く無関係なのか——まだ判断できない」


シェルがペンを走らせながら言った。


「仮説としては三つですね。一、英雄がヴァイラスに変質した。二、ヴァイラスは英雄のコードを複製した別の存在。三、偶然の一致」


「三は薄い」俺は言った。「コードスタイルの一致は偶然では起きにくい。プログラマーの癖は指紋のようなものだ。変数の命名規則、インデント幅、コメントの書き方——全てが一致するなら、同一の書き手か、その書き手を模倣した者だ」


「つまり、一か二か」


「今のところは」


アリアが静かに口を開いた。


「仮に——英雄がヴァイラスの成れの果てだとしたら。英雄は、なぜ世界を壊す側に回ったのでしょうか」


俺はメモリを見た。


メモリが答えた。声は小さかった。


「もし——もし英雄が、自分が守った世界を消された怒りで変質したのだとしたら……」


「復讐か」ガルドが言った。


「推測です。確証はありません」


「だが——」俺は言った。「動機としては、成立する」


世界を守るために全てを捧げた。その世界がアドミンの一存で消された。自分だけが残った。守るべきものを全て失った。


その絶望が——怒りに変わったとしたら。


「プログラマーとして言えば」俺は続けた。「コードのバグは『直すべきもの』だ。だがヴァイラスが元は人だった——元は英雄だったなら、これは単なるバグ修正の問題じゃない」


シェルが冷静に言った。


「仮にヴァイラスが英雄の成れの果てだとしても、今行っている行為の事実は変わらない。世界中にバグを撒き、住民を危険にさらしている。動機が理解できることと、行為を容認することは別だ」


正論だった。


シェルは感情をノイズとして排除する——だが、この場合、そのクールさが正しい判断を導いている。


「そうだな」俺は頷いた。「事実は事実だ。ヴァイラスがどんな過去を持っていようと、今この瞬間、世界を壊しているのは変わらない」



だが、頭では理解しても、胸の奥に残るものがあった。


俺は——ヴァイラスの孤独が、少しだけ分かる気がした。


前の世界で。


三十六時間の連続勤務。バグを直しても、直しても、次のバグが降ってくる。直したことを誰にも感謝されない。直さなければ怒られる。評価されない仕事を、誰にも見られない場所で、延々と続ける。


俺は——消耗して、壊れて、死んだ。


英雄も——守り続けて、報われず、消された。


似ている。


「考えても仕方ない」


俺は自分に言い聞かせた。


今やるべきことは、目の前のバグを直すことだ。ヴァイラスの過去がどうであれ、世界を守らなければならない。


だが——心の隅で、問いが消えなかった。


もし俺が、英雄と同じ立場だったら。


守り続けた世界を消されたら。


俺は——どうなっていただろう。



その夜。


アリアが俺に問うた。


宿の廊下で、偶然すれ違った——わけではないだろう。待っていたのだと思う。月明かりが窓から差し込む廊下で、アリアは俺に向き直った。


「レン」


「ああ」


「あなたなら——ヴァイラスを修正できるのですか?」


俺は黙った。


「それとも——削除するしかないのですか?」


修正か、削除か。


プログラマーにとって、バグに対するアプローチは基本的に二つだ。修正——原因を特定し、正しい状態に戻す。削除——問題のあるコードを取り除く。


ヴァイラスが「バグ」なら、修正か削除か。


だがヴァイラスが「元は人」なら——


「分からない」


俺は正直に答えた。


「今の俺のLv2じゃ、ヴァイラスのコードに対抗すること自体が難しい。修正するにも削除するにも——まず、力が足りない」


「では——力があったら?」


「力があったら——」


俺は言葉を探した。


見つからなかった。


アリアは俺の答えを待たなかった。


「答えを急ぐ必要はありません。ただ——その問いを、持ち続けてください」


そう言って、アリアは自室に戻った。


俺は廊下に立ち尽くした。


月明かりが、窓枠の影を床に落としている。


修正か、削除か。


その問いは——簡単には答えが出ない。


答えが出ないまま、俺は自室に戻った。


眠れない夜だった。




次回、第30話「インジェクション・アタック」——データベルグ公国の中央データベースに、大規模な攻撃が始まる。

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

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

↑ページトップへ