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

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

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

エラーが発生しました。

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

4/9

第4章 スパゲティコードの最適化!Git Worldの核心に迫る


 朝焼けの光が森の木々の合間から差し込み、俺のまぶたをじわじわと刺激してくる。

 痛めた体を起こすと、背中に残った木の根っこの感触がやけにリアルだ。もう何日この森で野宿してるんだっけ? まあ、数えたところで増えるだけだろうけど。

 それにしても、あのギルド粛清部隊との激突はさすがに堪えた。未だにあちこちがズキズキする。幸い、大けがはシエルの分岐魔法と俺の強引な“git stash”で回避できたものの、あんなのが毎度襲ってきたら命がいくつあっても足りない。


「おはよう、創也くん。痛むところはない?」


 リナが不安そうにこっちをのぞき込む。まだ寝ぼけてる俺は、首を回して確認するだけでひと苦労だ。とはいえ、彼女の心配がありがたい。


「まあ、なんとか動ける。リナこそ大丈夫か?」

「うん。ちょっと足が痛いけど、平気だよ」


 リナが小さく笑うが、その笑みは微妙にこわばっている。そりゃ、森での生活は女の子には辛すぎるだろう。少しでも早く安定した場所を確保しなければ。


 シエルや彼女の仲間たち(ギルドから離反した下級管理者組)もまだ疲れが顔に出ている。薄暗い森の開けた一角で、全員がぼんやりと火を囲む姿は、まるで難民キャンプみたいだ。

 粛清部隊の追っ手が来ないとは限らないから、長居はしたくない。でも、そろそろ「次の手」を打たないと進展がないまま詰むのは目に見えてる。


「ねえ、創也くん」


 火のそばで枝をくべていたシエルが遠慮がちに声をかける。彼女はギルドの管理部門に属していたらしく、branchとcheckoutの扱いだけは突出して早い。いわば“コード分岐専門”とでも言うのか。


「どうした? 暗い顔してるけど」

「いえ……私、もう一度ギルドのアーカイブに行って、魔王コードの構造をきちんと調べたいんです。あれが世界の根幹なら、バグの原因をもっと深く知るべきだと思って……」


 なるほど、思い切った提案だ。確かに魔王コードがスパゲティ化している以上、場当たり的にbranchを切り替えても根本的な修正にならない。大元の仕組みがどれだけ破綻しているかを把握しなければ、何度でも暴走は再燃するだろう。


「アーカイブって、前に俺とリナが忍び込んだ地下保管庫と同じとこか? あそこ、セキュリティが厳重だし、ヴァイスあたりが待ち構えてる可能性高いぞ」

「はい。でも……今のまま粛清部隊から逃げるだけじゃ、結局は状況が悪化するだけで。だったらリスクを承知で調べるしかないんじゃないかと」


 シエルの目は怖がりながらも決意がうかがえる。たしかに、ギルドと正面衝突を繰り返すくらいなら、こっちから情報を掴んで有利に立ちたい気もする。

 リナも腕を組んで深刻そうにつぶやく。


「うーん……魔王コードについては私も何も知らないままだし……。でも、また潜り込むってなると、かなり怖いよね。地下保管庫にはヴァイスだけじゃなく、ほかの強いギルドメンバーもいるんじゃ……」

「まあ、確かに危険はある。でも放っておけば世界中の魔法がさらにバグって、あちこちで火の玉や雷撃が暴走するだろ。どのみち、どこかで腹をくくるしかない」


 そう結論づけると、リナが俺の顔をじっと見て、意を決したようにうなずく。


「わかった。私、創也くんと一緒に行くよ。怖いけど、このまま逃げ回ってても仕方ないし……ギルドにいた時の知識も多少は役に立つかもしれないしね」


 作戦が決まったところで、シエルの仲間たちとも簡単な協議をする。

 大勢で行けば目立つし、粛清部隊と鉢合わせしたときに混戦になってしまう危険が高い。少人数でアーカイブの深部に潜り込み、必要な情報を手に入れるのが最善策だ。


「それじゃ、私とリナと……あとシエル。三人で行こう。残りのみんなはここで待機してくれ。もし俺たちが戻らなかったら、別ルートで動いてくれればいい」


 俺がそう提案すると、シエルの仲間の青年が目を伏せながら小声で応じる。


「わかりました。必ず戻ってきてください……。branchで手伝えることがあったら、いつでも呼んでくださいね」


 心配そうな視線を背に、俺たちは少しでも早く本格的な行動に移るべく、荷物を最低限まとめて森を出る。


 ギルド本部のある町までは半日もかからない。道中、人目を避けるために脇道や茂みを縫うように進む。空はどんより曇っていて、時折パラパラと雨粒が落ちてくる。

 なんとも気が滅入る天気だが、逆に言えば人通りも少なくて助かるという面もある。


「それにしても、魔王コードがどうしてあんなスパゲティ状態になったんだろうね」


 リナが気楽そうに歩きながら問いかける。あの日、地下保管庫でチラッと見ただけでも、行数は膨大だしgoto文は乱立しているし、コメントは「//たぶん大丈夫」「//ヤバい」のオンパレード……。

 思い返すだけで頭が痛い。


「たぶん……魔王が勢い任せに機能追加を繰り返したんだろうな。そもそもコーディング規約とか無視して書きなぐった末に、誰も手をつけられない膨大なバグが生まれたんじゃないか?」

「実はギルドの古文書に、『魔王カオス・マクスウェルは天才にして独善的だった』って記述があるんです」


 シエルが口を挟む。そうか、彼女は管理部門だから古い文献にも目を通していたのかもしれない。


「大昔、この世界の魔法を一括管理しようと“Git World”を作り上げたのは確かにすごい功績なんです。でも……保守運用をまともにしなかったらしくて、必要なテストやレビューも全部すっ飛ばしたとか。結果、誰も追えないクソコードと化したって話で」

「……うわあ、“レビュー無しの強制マージ”が当たり前だったのか。それは確かに破滅的だ」


 考えるだけでも寒気がする。要するに魔王コードは魔王の“天才的かつ無責任”な創造物ってわけだ。そんな爆弾を崇めているギルド上層部も大概だが、すでに世界はそのコードに依存している状態だから、誰も抜け出せないという構図があるんだろう。


 町の外れに来るころには日が暮れ始めている。これ幸いとばかりに、俺たちは暗くなってから忍び込む算段を整える。前にリナが使った裏口ルートがあるのはわかっているが、さすがに一度侵入がバレているため、警戒が強化されている可能性は高い。


「ほんとに行くの……? ドキドキしてきた」

「俺だって心臓バクバクしてるよ。でも、ささっと侵入してアーカイブを調べるだけだからな」


 リナと苦笑いを交わし合った後、俺たちは石壁の影を伝い、かつての小さな扉に向かう。

 万が一閉ざされていたら別の手段を考えないといけないが……

 そっと触れてみると、なんと鍵はかかっていない。拍子抜けするほどあっさり開いた扉に、思わず三人で顔を見合わせる。


「……もしかして、別の罠かもしれないよ。あえて鍵を開けっぱなしにして誘い込む作戦とか」

「その可能性はあるな。けど、ここで戻ったら何も手に入らない」


 そう腹をくくり、通路へと足を踏み入れる。薄暗い石の階段を下りていくたびに、ひんやりした空気が肌を刺す。まるで歴史の重みがのしかかってくるようだ。


 やがて地下保管庫の広いフロアにたどり着くと、そこには大きな石碑や古びた書棚がずらりと並ぶ。前回見たときより何やら整頓されているようにも見えるが、妙に誰の姿もない。カン……と足音が響くたび、胸の奥がざわつく。


「……変だな、見張りがいないのか? 逆に怖いんだけど」


 思わずつぶやくと、リナも警戒を強めるように杖を構える。シエルがこくりと息をのんで石碑の方へ近づき、じっと観察し始める。そこに刻まれているのは相変わらず膨大なコード。


「function Fireball(){…} とか、ゴチャゴチャした記述が入り乱れてる感じは変わらないですね。でも……前より“エラーログ”の部分が増えてる気がします」


 シエルが指さす先には、バグレポートみたいな文字列が大量に刻み込まれている。どうやら世界の各地で発生している暴走が、リアルタイムでここにログとして蓄積されているのかもしれない。


「エラーログって……このまま放置してたらどうなるんだ?」

「たぶん、Code Overloadみたいな形でスパゲティがどんどん肥大化して、いずれは制御不能になるかも。ヴァイス様が強引にmergeしてるのも、この崩壊を一時的に止めるだけにすぎないんでしょうね」


 嫌な背筋の寒さを感じる。つまり、いよいよ世界の魔法システムが限界に達しつつあるわけだ。このまま誰もちゃんと修正できなければ、本当に破滅が近い。


「……なら、今ここで何とかしないとな。見張りがいないのは不自然だけど、むしろ好都合かもしれない。早いとこ調査するぞ」

「はい!」


 俺たちは石碑周辺のテーブルや書物を手分けして調べる。半ば文字化けした魔術書、10億行とかふざけた数字が書かれたバグリスト、そして“git log”と銘打たれた目を疑うような履歴ファイルまで、多種多様な資料が乱雑に積まれていた。


「あ、創也くん、これ……!」


 リナが声を上げるので振り返ると、彼女が取り出したのは分厚い本。表紙には「Chaos Maxwell 研究ノート」みたいに書かれている。まさに魔王本人の思考が詰まった宝箱かもしれない。


「なんだそれ……完全に当たりっぽいな」


 さっそくパラパラとめくると、中には魔王の実験記録らしきメモがびっしり。どうやらGit Worldを作る段階で試行錯誤した痕跡らしい。


「“なるほど、魔法術式をソースコード化すれば共有やアップデートが楽だと思ったが、引数の仕様が曖昧でバグが頻発。仕方ないから自分で全部直そうとしたら収集つかなくなった”……? なんだこれ、完全に破綻してるじゃないか」


 イライラするような書き方に思わずため息がもれる。天才肌が一人で全部抱え込もうとして、気づいたときにはスパゲティ地獄だったという典型の失敗例だ。


「でも、これなら“どこからコードが壊れ始めたか”の履歴を追跡できるかもしれないよね」


 リナが前向きに言う。確かにノートの後半には無数の小さな修正履歴が記されている。ここに“いつ、どんなコードがマージされてバグったか”が細かく残っていれば、再現性を取ってリファクタリング可能なはず。


「なら早速、ノートを参考にしながら‘git blame’でもしてみるか」


 俺が本気でそう口にした瞬間、背後から冷たい声が響く。


「なるほど……貴様ら、そこまで読み取ったか」


 この声は――反射的に身を翻す。すると暗がりからゆっくりと姿を現す黒マントの男。うわ、やっぱりお出ましかよ。


「ヴァイス・マージ……!」


 リナが杖を構え、シエルも慌ててbranch術式を呼び出す構えだが、ヴァイスはまるで余裕たっぷりという様子で険しい笑みを浮かべている。しかも一人じゃない。数人のギルド兵が控えていて、逃げ道を塞ぐように横陣を張っているではないか。


「どうしても来ると思っていたぞ、異端のデバッガーよ。ここは魔王コードの核心――貴様のような輩が手を出していい領域ではない」


 ヴァイスの声が低く、そして確信をもって響く。俺はぎくりとしながらも口を開く。


「ならあんたはどうするんだ? もうコードが破綻寸前だろ。力押しのforce pushだけじゃ限界がある」

「それで構わん。最悪、世界が崩壊しようと“魔王コード”の尊厳だけは守られるべきだ。貴様の改ざんでこの秩序を乱されるわけにはいかんのだよ」


 ……はあ? 意味がわからない。世界がどうなろうと知ったこっちゃないというのか? 自分たちの秩序を最優先にするって、いくらなんでも支離滅裂すぎるだろ。


「ふざけるな。たとえ魔王コードでも、バグだらけなら直すしかないんだ。お前はそれがわかっていて放置するってのか?」


 ヴァイスが嘲笑するように目を細める。


「直す? この至高のコードを冒涜する行為を“直す”と呼ぶとはな……。なら試してみろ、貴様にその権限があるものかどうか」


 ビリビリと空気が震え、ギルド兵たちも一斉に杖を構える。数の上でも完全に不利だ。シエルがbranchを叫ぼうとした瞬間、ヴァイスが杖を突き出して魔法陣を展開する。


「git merge --force」


 嫌な予感しかしない呪文が耳に突き刺さる。力任せの強制統合。すぐに術式同士がぶつかり合い、石碑が鳴動して埃が舞い上がる。


「くっ、またやりやがったな……!」


 俺もあわててカウンターを狙うが、同時に複数の兵が雷や氷の魔法を放ってきて、避けるだけで精一杯。

 轟音とともに火花が散り、石床に亀裂が走る。魔力の嵐が吹き荒れる中、リナとシエルがbranchとcheckoutで必死に応戦しようとするが、粛清部隊の練度は高く、一瞬のうちに攻撃の配置を変えてくる。これじゃまともに撤退すら難しい。


「ぶっちゃけ、ここでやり合ったら資料ごと吹き飛ぶだろ! ふざけんな!」


 怒鳴りつつ、俺は思いつくかぎりのGitコマンドを頭の中で巡らせる。‘git stash’で一部を封じても、数が多ければすぐに再発動される。‘git rebase’で履歴を整理しようにも、この規模だと一瞬じゃやりきれない。

 しかし、ここは魔王コードの中心――逆に言えば、何か“コマンド”が通りやすいかもしれない。

 思い切って魔王ノートを掴み、そこに記された修正記録をざっと目で追う。


 “if (魔王 == 1) { … }”

 この条件分岐、どこかで見た覚えがあるな。もしかして権限を切り替える仕組みがあるのか? そう思った瞬間、頭に妙なひらめきが走る。


「よし……騙されたと思ってやってみるか」


 リナとシエルが押し込まれそうなところで、俺は石碑に片手を当てながら意を決して叫ぶ。


「git cherry-pick――ChaosMaxwell_original」


 ぐしゃぐしゃに混ざった履歴の中から、“魔王”のオリジナル行だけを取り込むイメージだ。もしこれが通用するなら、術式を一部だけ巻き戻して不安定な攻撃を中断できるかもしれない。リスクは高いが、このままじゃ全滅だし、資料もパーになる。


 瞬間、石碑が青白い光を放ち、ヴァイスやギルド兵たちが一斉に動きを止める。周囲の空気がまるでスローモーションになったような感覚だ。


「な、何をした……?」


 ヴァイスが苦々しい顔で振り向く。目の前の魔力の嵐が徐々に収まっていくのを感じる。


「俺が“良いところだけ”取り出して、余分な衝突を一時停止させたんだよ」


 とはいえ、その副作用か、石碑が激しく振動している。バチバチと魔力のひずみが跳ね、コードの一部は奇妙なエラーメッセージを吐き出している。このままだと崩壊か、あるいは余計な暴走が起きるかもしれない。


「くっ……こんな芸当ができるのは、本当に“魔王権限”を持つ者だけなのか?」


 ヴァイスの表情が揺らぐ。俺の背筋には冷や汗がにじむが、今が好機かもしれない。衝撃で後方に弾かれたギルド兵たちも体勢を崩している。


「リナ、シエル、今のうちに資料を持って離脱するぞ!」

「うん、やるしかない!」

「わかりました!」


 ふたりが散らばった書物やノートを懸命にかき集める。その間、俺は必死でcherry-pickしたコードの衝突を抑え続ける。いつ解除されてもおかしくない時限爆弾だが、ここで無理やりpushすれば保管庫が爆発しそうだ。


「逃がすか……! git push --force!!」


 案の定、ヴァイスが声を張り上げる。だがコードが中途半端に凍結されているらしく、杖を振るってもまともに術式が起動しない。その隙を突いて、俺たちは石碑を後にしようと一斉に走り出す。


「貴様ら……待てェェッ!」


 背後から怒声が響き、ドンと床を踏み割るような音がするが、今は振り返る暇すらない。貴重な魔王ノートと資料だけはしっかり確保した。地下の狭い通路を駆け上がり、扉を蹴破るようにして外気を吸う。夜風がむわっと重く、肌を冷やすが、ここは一息つく間もなくダッシュだ。


「はあ……はあ……と、とにかく離れよう!」

「うん……あのまま粛清部隊とやり合ったら、まずかったね」


 シエルも息を切らしながら、抱えた古文書を落とさないよう必死だ。どうにか町の裏路地へ抜け出すと、扉の方からヴァイスの怒号がまだうっすら響いてくる。この先も追撃される可能性は十分あるが、ひとまず“魔王コードのオリジナル情報”を手に入れられたのは大きい。


「やったな、創也くん。まさかcherry-pickでああいう使い方ができるなんて……」


 リナがほっとした笑みを浮かべる。こっちだって冷や汗ものだったが、おかげで魔王の研究ノートも見つかったし、今まで見えなかったスパゲティコードの核心に少しだけ迫れた。


「正直、まだバラせない謎が山ほどあるが……まあ、これで一歩前進だろ」


 そう言いながらノートを抱え直す。中をめくれば、魔王カオス・マクスウェルの思考がたくさん綴られているはず。あれさえ読み解ければ、Git Worldの“本当の姿”が見えてくるかもしれない。

 シエルが小声で付け加える。


「コードを書き始めた理由や、魔王の真の狙い。そこさえわかれば、私たちも大規模なリファクタリング計画を立てられると思います。……創也さん、お願いします。私たちを、世界を救ってください」

「やるしかないだろう。ここまで来たら最後まで面倒を見るよ、俺の性分だ」


 そう応じると、リナが微笑む。今のところ心臓はバクバク言いっぱなしだけど、この緊迫感の中にも不思議な高揚がある。クソコードを徹底的に解体し、新たな魔法システムを構築する。その先にあるのが、世界の崩壊か、それとも――。


「よし、ここで立ち止まるわけにはいかない。リナ、シエル、とにかく町外れまで急ごう。仲間たちのところで合流だ」

「うん!」

「はい!」


 駆け出す足取りは重くはあるが、先ほどまでの恐怖とは少し違う感覚が混じっている。魔王ノートを手にした俺たちは、さらなる混沌へ足を踏み入れることになるかもしれないが、そのぶん“バグ修正”という目標が一段と明確になったともいえる。


 ヴァイスの粛清部隊がこのまま黙っているはずもない。次にぶつかるときは、もっと苛烈なmerge --forceが飛んでくるだろう。でも、こっちにはcherry-pickやbranch、rebaseといった“正しいGit運用”の可能性がある。魔王コードの真髄を暴き、スパゲティを解きほぐせれば、きっと道は開けると信じたい。


「Chaos Maxwell……魔王さんよ、見てろよ。お前のコード、絶対に全部直してやるからな」


 夜風に向かって小さく宣言しつつ、リナやシエルと一緒に雑踏の裏路地を走り抜けていく。

 粛清の気配が再び近づいているのを感じながらも、胸の奥にはどこか確かな“やってやる感”があふれている。――クソコード相手なら、俺のデバッグ魂に火がつくってもんだ。


 絶対にこの世界を修正してみせる。その思いだけを糧に、俺は月明かりの下を突き進んでいくのだ。


面白い/続きが読みたい、と感じて頂けましたら、

ページ下の【☆☆☆☆☆】から評価をお願いします!

ブックマークと、いいね・感想なども頂けると、とても嬉しいです

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

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

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ