第5章 魔王復活!Git Worldの崩壊
朝焼けの色が薄く広がり始めた空を見上げながら、俺は思わず深いため息をつく。
手には魔王ノートと呼ばれる分厚い書物、背中にはシエルたちが苦労して集めた古文書の束。ギルドの粛清部隊をなんとか振り切って帰還したものの、やるべきことは山積みだ。
しかもこのノートを読み進めるほどに、魔王カオス・マクスウェルがいかに適当なコーディングをしていたかが見え隠れして、思考が軽くパンクしそうになってくる。
「創也くん、平気?」
リナが心配そうに覗き込み、少しばかり暖を取っていた小さな焚き火に手をかざす。森の中で野宿する日々もいい加減長くなってきた。正直、体は悲鳴を上げそうだが、今は気合で踏ん張るしかない。なにしろ、暴走魔法の件がいよいよ危険域に達しつつあると感じるからだ。
「まあ、なんとか。けどそろそろ本気で魔王コードを書き換えに行かないと、世界中のバグが手が付けられなくなるかもしれないな」
俺がそうこぼすと、シエルが小声で頷く。彼女はbranchを扱うのが得意な元ギルド下級管理者で、ここのところ俺のサポートを頑張ってくれている。
「実は……あれから新たなエラー通知が増えてます。各地で魔法暴走が頻発してるみたいですし、ギルド上層部も力押しで抑え込むのに限界が来てるんだと思います」
ギルドが粛清部隊を大量投入している背景も、魔法システムの崩壊を力技で抑えるためだ。だが、そんな場当たり的な解決策はもはや焼け石に水。確実にカオス度合いを増していく「魔王コード」を根本的にリファクタリングしなければ、この世界はいつか大崩壊を迎えるだろう。
もっとも、その大元を作った張本人は既に行方知れず――あるいは長い眠りについていると言われている。
「だけど、その魔王コードには“封印”がかかってるんだよね?」
リナが不安そうに尋ねる。古い文献に記されていたところでは、魔王カオス・マクスウェルが自らのコードを“封印タグ”でプロテクトしているらしい。どうやら表層の書き換えだけでは十分でなく、履歴そのものを再構築する必要があると。
「うん。封印を解くには強制的に再構築(rebase)をかけて、魔王コードの最深部にアクセスしなきゃならないらしい。そもそも“git push”程度の修正じゃ、根本を上書きできないようにしてるみたいだ」
そう答えながら、俺は魔王ノートの汚い字を追う。‘if(魔王 == 1){ system("reboot"); }’なんてふざけた文がやたら出てきて、ツッコミどころ満載だ。
だが、もしこれが本当に魔王の封印を解除するためのトリガーになっているなら、逆に言えば俺たちがそこに手を出した瞬間、何か“ヤバい事態”を招く可能性もある。
「魔王の力を継いだ者だけがコードを書き換えられる……って話もあったよね。ヴァイスがやたら“魔王以外には扱えん”って息巻いてるし」
リナが思い出したように呟く。確かに、俺がfireball術式を初めて修正したときから、連中は俺を“魔王の後継者”呼ばわりしてきた。まったく身に覚えはないのだが、実際こうしてGitコマンドを使って魔法をいじれるのは事実だから、否定しようにもどうにもならない。
「それにしても、魔王の本当の狙いってなんだったんでしょう。あれだけ複雑なシステムを組んでおきながら、保守をサボるなんて正気とは思えないんですけど」
シエルが眉間に皺を寄せる。彼女はギルドの管理部門として、ずっとこの問題に悩まされてきたらしい。天才肌の魔王が途中で投げ出したコードの後始末を、一介の管理者に丸投げされれば困るのも無理はない。
「天才ほど“自分だけのやり方”に固執することがあるからな。レビューもテストもすっ飛ばして、動けばいいみたいなコピペを繰り返してたんだろ。そりゃバグも増えるわ」
嘆きに似た笑いをこぼしながら、俺は意を決する。
そろそろ“魔王コードの封印”に真正面からぶち当たらなきゃならないのかもしれない。そうしないと世界の魔法システムごと崩壊しかねない――その危機感が、最近ひしひしと迫っているからだ。
「……じゃ、覚悟を決めるか。魔王ノートにも“rebase”のヒントが書かれてるし、やってみるしかないだろ」
「やるんだね、創也くん。私も手伝うよ!」
リナが力強くうなずく。シエルもbranch魔法を扱えるから、再構築のサポートに回ってくれそうだ。あとは問題は“どこで”、“どうやって”封印を解くか、だ。
場所を誤ればギルドの粛清部隊に邪魔されるだけじゃなく、大規模な暴走が起きて取り返しがつかなくなる。
――そんな話をしている最中、森の端を警戒していた仲間の若い男が駆け寄ってきて、切羽詰まった声を上げる。
「す、すみません! なんだか向こうのほうで火柱が上がってます! ギルドがまた大規模魔法をぶっ放しているみたいで……」
「何だって? こっちに来るのか?」
「いえ、それはわからないんですが、空気がピリついてる感じで……すごく嫌な予感がするんです。もしかして世界のコードが一段と荒れてるんじゃ」
一瞬、嫌な沈黙が走る。粛清部隊の指揮官、ヴァイス・マージをはじめとするギルド勢が“merge --force”を乱用すれば、そりゃ余計に魔王コードがバグる可能性が高い。あいつらにしてみれば維持でも秩序を守るつもりだろうが、長い目で見れば自分たちの首を絞める行為だ。
「急がなきゃ駄目だな。もしかすると、すでに封印部分が半壊してるかもしれない」
俺は魔王ノートを再び開き、“封印”関連のページを必死に探す。そこには歪んだ文字でこう書かれていた。
――「最後の行を編集する者は、魔王の力を呼び起こす」――
「最後の行って……どれだよ。10億行もあるっていうのに」
思わず苦笑するが、実際には“最終行”という明示的なタグが埋め込まれているらしい。もしそこを直接書き換えると、魔王自身がセットしたシステムコール“reboot”が動くのではないか、と言われている。要するに、魔王コードを再起動する、あるいは封印を解くトリガー……というわけだ。
「触れた瞬間に世界がどうなるかは保証できない……って感じかな。だけど放っておけばギルドの無茶苦茶なforce pushで勝手に起動してしまうかもしれない」
リナが不安そうに震える声を出すが、そのとおりだ。であれば、こちらが先にコードを管理し、“正しい方法”で履歴を再構築してしまうほうがマシだろう。
「よし、やるしかない。封印行をrebaseで書き換えて、無理やりでもバグを抑制する。大荒れになるかもしれないけど、手遅れになるよりはいい」
胸に痛いほどの緊張を感じながらも、腹は決まった。シエルとリナも互いに頷き合い、一行は多少の休息を取った後、魔王コードの“核”へ向かう。どうやらギルドの地下保管庫ではなく、もっと遠くの聖域にそのコード本体が保存されているという情報をノートから読み取ったのだ。森をさらに奥へ進み、険しい山道を越えなければならないらしい。
――
荒野のような場所をひたすら歩き、崖沿いを慎重に渡っていくと、ぽっかりと口を開けた洞窟が姿を現す。洞窟の奥には巨大な石の扉があり、その中央にはお馴染みのGitロゴ……みたいな紋章が刻まれている。
冗談みたいだが、これこそが魔王が構築した“Git Worldの封印”だと思うと、笑うに笑えない。
「ここ、本当に誰も足を踏み入れてない感じだね……。ギルドの人たちも滅多に来ないのかな」
リナが小さく身震いしながらあたりを見回す。ゴーッという風の音が洞窟の中にこだまして、嫌に耳に響く。確かに人の気配はまったくない。
「かえって好都合だよ。粛清部隊が来ないうちに、さっさと書き換えをやるぞ」
そう言いつつ扉に手を触れると、びりっと手のひらを打つような衝撃が走る。どうやら結界みたいなものが貼ってあるのか? 薄く浮かび上がった文字は、まるでコンソールメッセージのようにこう示している。
――Access denied: required role = “魔王”――
「やっぱり“魔王権限”がいるらしいな……。俺が操作してみるか。前にヴァイスが言ってたように、俺には何故か魔王コードに干渉できる権限があるっぽいし」
ドキドキしながら「git checkout master」という呪文を唱えるイメージで扉に再度触れ、“魔王ノート”に記された封印解除プロセスに倣って操作を試みる。
瞬間、まばゆい光が扉全体を覆い、ゆっくりと軋むような音を立てながら開いていく。
「すごい……本当に開いたね」
リナが目を丸くする。俺だって驚きだ。これがいわゆる“魔王権限”なるものなのか? よくわからないが、コードの書き換えを許可されているのは確からしい。
洞窟の中へ足を踏み入れると、そこには何やら半透明の石碑が宙に浮いていて、その表面には果てしない行数のコードが流れている。まるでホログラムのスクロール画面というか、SFさながらの光景だ。想像以上に巨大なデータの塊だと実感して、息が詰まる。
「これが……魔王コードの“最終行”を含むメインブランチ……?」
シエルがごくりと唾を飲む。近づくと宙に文字が浮かび上がり、タップでもするかのように指を動かすと行数がスライドしていく。だが、途中でスクロールが止まってしまい、こう表示される。
――Error: sealed region. Rebase required.――
「封印されてる領域だってさ。ここをrebaseで開かなきゃいけないんだな」
俺は深呼吸し、溢れかえる不安を必死に押さえ込む。やるしかない。ここで尻込みして逃げるわけにはいかない。何より世界中が苦しんでいるこの暴走を食い止めるには、魔王コードの書き換えが必須だ。
「git rebase –i origin/master みたいなイメージかな。……よし、いくぞ」
唱えるように心の中でコマンドを思い浮かべる。と同時に、宙に映し出されたコードが瞬く間に巻き戻り、上から下まで一気に走査されていく。バグだらけの行が山のように浮かび、ゴチャゴチャしたif文がエラーを噴出し、画面いっぱいがエラーメッセージで埋まっていく。
「ひゃあ……すごい量のエラー。手が付けられないんじゃ……」
リナが目を丸くするが、俺は短く息を吐いて気を引き締める。こういうときこそ冷静に、Conflictをひとつずつ解消していくしかない。
「こういうのは地道にいくしかない。シエル、branch操作で衝突を分割してくれ」
「はいっ! git branch fix_conflict_1……checkout!」
シエルが的確に分岐を作り、一部のバグを隔離してくれる。俺はそこへ飛び込むように“git cherry-pick”を繰り返し、必要な修正だけを順次取り込んでいく。実際には一瞬で終わるわけじゃなく、目が回るような作業だ。リナが合間に魔力を込めてくれて、俺の集中をサポートしてくれる。
やがて、衝突解消がある程度進んだ段階で、一番下の行が現れ始める。そこに書かれた文を見ると、思わず息を呑む。
――if (魔王 == 1) { system("reboot"); }――
“最終行”と呼ばれる部分、まさにこれが封印の核心。
これを消すか、書き換えるか、どういじるかで世界の行方が変わってしまう。心臓がドクドクうるさいほど鳴り響く。
「ここを直せば、魔王コードのリブートを防げるかもしれない。あるいはバグが収束するかも……」
俺は震える手で修正箇所をポイントする。
ところが、その瞬間に嫌な冷気が背中を走る。振り向くまでもなく、聞き覚えのある声が洞窟に響く。
「やめろ……魔王コードに触れるな!」
まさかの登場人物。ヴァイス・マージだ。彼が杖を構え、暗闇の向こうに立っているのが見える。いつの間にか粛清部隊らしき数名が洞窟に入り込んでいるではないか。どうやら俺たちを追ってきたらしい。
「ヴァイス……! こんな奥まで来るとは根性あるな。だが、ここまできたら止めるわけにはいかない」
俺は全身に汗をかきながら、ぎりぎり歯を食いしばる。今リセットを中断したら、さらに混乱が大きくなる可能性があるし、ギルドの強引なpushで封印が勝手に解ける危険もある。
「貴様ごときに何ができる……魔王コードは我々ギルドの聖域だ。もし封印が破れれば何が起きるかわかったものではない」
「あんたこそ、わかってないだろ。封印がこのまま不完全に壊されれば世界は崩壊するってノートにも書いてあった。バグを抑えるにはちゃんと書き換えが必要なんだよ!」
激しい口論の果てに、ヴァイスが怒りを込めて叫ぶ。
「黙れ! git push --force!!」
大量の術式が一斉に襲ってくる。岩壁にビリビリとひび割れが走り、洞窟全体がぐらぐら揺れる。リナとシエルがbranchやstashを駆使して必死に防御するが、すべてを相殺できるわけじゃない。こんな場所で大規模魔法を使われたら、全員生き埋めだ。
「だったら俺も、こっちを仕上げるしかない――‘git commit -m "Rebase all"’!!」
最終行を含む大量の修正を一気に確定させるイメージで、胸中にコマンドを叩き込む。
画面いっぱいに競合解消の進捗が走り、“Commit successful”の表示が現れた……かのように見えた次の瞬間、洞窟がパァンと弾けるような閃光に包まれた。
「うわっ……!」
まぶしさに目を塞ぐ。鳴り響く地鳴り、爆音に似た衝撃波。下手をすると洞窟ごと崩れ落ちる勢いだ。俺たちはなんとか体勢を保ちながら、最終行を注視する。
そこには一部コメントアウトされた記述があるにも関わらず、まだ完全に消えていない行が浮かんでいた。
――system("reboot")……――
エラーがズラリと並び、光が収束した後、コードの最深部に漆黒のオーラのようなものが漏れ出している。肌に鳥肌が立つほど嫌な雰囲気だ。ヴァイスさえ怯んだように後ずさる。
「これは……魔王カオス・マクスウェルの……力なのか?」
思わず喉がからからになる。封印を再構築しようとした結果、逆に“魔王”の痕跡を呼び起こしてしまったのかもしれない。
黒い影がゆらりと立ち昇り、洞窟の中央に人型のシルエットを作り始める。
それが俺を睨むようにゆっくりと顔を上げる。
「……コードを……書き換えたのは……誰だ……?」
低くかすれた声が空間にこだまする。見上げると、そこにはうっすらと“人間”の形をした闇の存在が佇んでいる。おそらくカオス・マクスウェル――魔王本人の意識が呼び起こされたということだろうか。
「ちょ、ちょっと待て。まさか、これで魔王が完全復活とか……?」
俺は言葉を失う。リナも青ざめている。ヴァイスでさえ眼を見開き、激しく動揺しているのがわかる。場を覆う緊張感が一気に最高潮に達している。
「コード……いじるな……俺のコードを……勝手に修正するな……!」
魔王の影が低く唸り、足元に黒い裂け目のようなものが広がる。これまでに感じたことのない膨大な魔力が洞窟を震わせ、崖の上部から小石がパラパラと降ってくる。どうやら最悪の事態を引き寄せてしまったのかもしれない。
「どうする……? こいつが本物の魔王なら、今までの粛清部隊なんて目じゃない危険度じゃないか……!」
シエルが震える声を上げる。俺だって内心パニック寸前だ。だけど、ここで引き下がってしまえば、書き換えかけた魔王コードは中途半端なままだ。封印だけが破れ、暴走が制御不能に陥る可能性だってある。
黒い影――カオス・マクスウェルの視線がゆらりと動き、俺を正面から射抜く。ひどく冷たく、しかしどこか寂しげにも見える瞳。
魔王が口を開きかけるその瞬間、洞窟全体が大きく揺れ、空気がピリピリと電撃のように震える。まるで最後の堤防が崩れたかのような感触が周囲を包んでいく。
「ちょ、ちょっと待てよ……!」
必死に呼びかけるも、轟音がかき消すように響く。ヴァイスも兵たちも動けないでいる。リナとシエルが目を丸くして、何か言おうとしている。だけど声にならない。
そして、闇のシルエットが一際大きく膨れ上がり、まるで空間を押し広げるように黒いオーラを噴き出す。世界がガクガクと揺れるような錯覚を覚えた刹那、魔王が低く呟くのが聞こえる。
「……このコード……全部消してやる……!」
ぞわりと背筋が凍る。ここで暴走を始めたら、この空間ごと……いや、この世界ごと粉々に吹き飛ばすような破壊を起こすのかもしれない。
俺は震えをこらえながら、どうにか立ち上がってコード画面にアクセスしようとする。だけど、圧倒的な闇の力が邪魔をして、思うように指先が動かせない。
視界の端でヴァイスが「くっ……魔王ご本人が出てくるとは……」と青ざめているのが見える。彼があれほど“魔王コードは絶対”と固執していたのに、いざ魔王が復活しかけている今、完全に尻込みしているのが滑稽なようでもあり、恐ろしいようでもある。
「創也くん……どうしよう……」
リナが必死に袖を引くが、俺も正解がわからない。ただ一つ確かなのは、魔王本人が現れた以上、コードのバグ修正はさらに困難を極めるということだ。闇の王が自分の書いたスパゲティを守ろうとしているのか、それとも改変を拒むのか。どのみち半端な力では止められないだろう。
「もうこうなったら……最後までやるしかない。魔王コードを最適化するって決めたんだから……!」
何度も大きく息を吸って、バクバクと騒ぎ立てる胸をなだめる。俺の視線の先で、黒い影がゆらりと揺れながら姿をはっきりさせていく。今にも凶暴な何かを仕掛けてきそうだが、同時にコード画面にも“Rebase in progress”の文字が残り続けている。
完全に書き換えを終わらせるには、まだ何手か足りていないのかもしれない。
魔王カオス・マクスウェルが大きく腕を広げ、闇の渦を巻き起こす。俺たちは足元をすくわれかけながら、かろうじて踏みとどまる。空気が震え、鼓膜が痛いほどの重圧を感じる。
ここからどう動くか――それが世界を左右する瀬戸際なのだろう。
「行くしかない……お前が作ったクソコード、全部直させてもらうぜ!」
自分に言い聞かせるように叫ぶ。顔を上げると、魔王の瞳がわずかにこちらを見据えた気がする。凄まじい敵意と、しかし妙な期待感すら入り混じった空気が洞窟を支配している。
“これが……魔王復活か……?”
そう頭を巡らせたところで、さらに大きな衝撃が洞窟を包み、音もなく岩壁が砕け散る。ブラック企業で過労死して異世界に来たなんて信じられないが、この壮絶な展開だけはもう否定しようがない。
魔王コードの最終行をめぐる戦い――これはもはや俺の“デバッグ”というレベルを超えた、世界そのものとの対峙かもしれない。
強烈な風圧に目を細めながら、俺はリナとシエルをかばうように腕を広げる。ヴァイスも立ち尽くしているが、さすがに魔王相手にどう動くか決めあぐねている様子だ。
コピペとgotoだらけのスパゲティコードでも、絶対に直してやる。
なにしろ、俺がこの世界に呼ばれたのは、そういう役回りだとしか思えないからだ。
面白い/続きが読みたい、と感じて頂けましたら、
ページ下の【☆☆☆☆☆】から評価をお願いします!
ブックマークと、いいね・感想なども頂けると、とても嬉しいです