第三話:魔法陣、それレガシーコードですよね?
迷宮核の間から伸びる通路は、拍子抜けするほど短かった。
「……ほんとに一本道だな」
黒い結晶――迷宮核の部屋を出ると、そこから先は、幅二メートルほどの石造りの廊下が、ずーっとまっすぐ伸びているだけだった。
左右に分岐もない。
途中に扉もない。
ただ、途中に小さな部屋が三つあるだけ。
管理コンソールで見た「部屋数:3/通路:直線1本」を、実際に歩きながらトレースしている感じだ。
「ま、初期ダンジョンなんてこんなもんか」
「ここからご主人が好きなように拡張していくんですよ」
頭の上で、ナノがふわふわとついてくる。
迷宮核の間はやたら神秘的だったが、通路はやけに素っ気ない。
灰色の石壁、石床、石天井。
光源は、壁に等間隔で埋め込まれた、ぼんやり白く光る石だけだ。
ただ――
「……ん?」
何か、違和感があった。
壁に手を当てる。
ひんやりとした感触と一緒に、目の端に“線”が浮かび上がった。
いや、浮かび上がったんじゃない。
最初からそこにあったのが、ようやく認識できた感覚だ。
「ナノ、この模様」
指でなぞると、壁一面に薄く刻まれている線が見えてくる。
曲線と直線が絡み合い、小さな紋様や文字のようなものが連なっている。
いわゆる――魔法陣の一部、らしい。
「あ、それは“古の理”の紋様ですね。迷宮の構造や魔力の流れを制御している魔法陣です」
「古の理」
「はい。この世界の魔法体系の元になっている、古代の術式群です。
人間の魔法使いは、その“ごく一部”を簡略化して使っているに過ぎません。
迷宮に刻まれているものは、もっと根源的な――と言われています」
「ナノは読めるのか?」
「解析レベルなら。どの部分が光源制御で、どの部分が構造維持か、ぐらいは分かります。
ただ、“中身そのもの”はボクにも見えません。迷宮核にもともと組み込まれているものなので」
なるほど。
つまり、ナノや迷宮核にとっては、「動いているバイナリの挙動は把握できるけど、ソースコードまでは見えない」という状態か。
俺はもう一度、壁の魔法陣を見つめる。
線の流れ、分岐点、同じ形の繰り返し。
それらを、意識の“別の層”で追い始めた瞬間――
(……ああ)
理解した。
「これ、完全にコードじゃん」
「コード?」
ナノが小首をかしげる。
「このループ構造、見ろ。
ここでパラメータっぽい値を受け取って、ここの分岐で条件判定してる。
こっちの枝が“異常時ハンドリング”で、こっちが通常ルートだ」
壁の一部を指でなぞりながら説明する。
ナノは黙って聞いていたが、やがてぽつりと言った。
「……ナノには、ただの魔法陣にしか見えないですけど」
「魔法陣はコンパイル済み成果物だ」
「コンパイル?」
「あー……なんて説明するか」
コンパイルも知らない世界に来てしまった。
まあ、当然といえば当然だ。
「とにかくさ。この線の繋がり、そのパターン、同じブロックの繰り返し方。
中に“元の形”が透けて見えるんだよ」
頭の中に、魔法陣の“裏側”が浮かぶ。
文字列と記号で構成された、もっと記述的な何か――仮に「魔導スクリプト」と呼ぼう。
(きっと、この世界では誰もそれを直接書いたり読んだりしてない。
だから古の理とか言われてるだけだ)
だけど、俺には、その“骨組み”が見える。
「ご主人、それって――」
ナノの声に、少しだけ驚きが混じる。
「もしかして、“魔法陣の書き換え”が可能ってことですか?」
「やってみなきゃ分からないけど」
俺は、通路の途中にある光源――壁に埋め込まれた小さな白い石に目を向けた。
周囲の魔法陣をよく見る。
光源の制御ブロックらしき部分を、頭の中で切り出す。
(ここが点灯・消灯の制御。
ここが明るさと色のパラメータ。
で、ここの分岐が“魔力節約モード”のオンオフか)
「ナノ。この光、普段はどういう制御してるんだ?」
「迷宮核から一定周期で魔力を流して、一定の明るさで光らせています。
侵入者がいないときは最低限、誰かがいるときは少し明るく――程度ですね」
「ふむ」
魔力節約モード付きの常夜灯ってところか。
「ここ、ちょっと触るぞ」
「えっ、ちょっと待ってください」
ナノの慌てた声を背中で聞きながら、俺は魔法陣に指を滑らせた。
ただなぞるだけじゃない。
“中身”に意識を潜らせる。
記号と構造でできた何かが、脳内に展開される。
if、else、for、while。
try、catch。
見慣れたロジックの塊を、ほんの少しだけ組み替える。
「――っと」
指先から、微かな感触が返ってきた。
魔力とかいう未知のエネルギーが、自分の中を通って、壁へ流れ込んでいくような変な感じだ。
次の瞬間。
廊下の光が、ぱちん、と一度消えた。
「ご、ご主人⁉」
「大丈夫。たぶん」
数秒後。
今度は、やわらかな橙色の光がふわりと灯る。
さっきより、少しだけ暖かみのある色だ。
「……お?」
ナノが感嘆の声を漏らした。
「光の色が変わりました……!ご主人、今、何を?」
「明るさと色味のパラメータを変えただけだ。
白っぽいのより、こっちの方が目に優しいだろ」
「……パラメータ?」
首をかしげたままのナノに、俺は肩をすくめる。
「要するに。
“この光源を制御している魔法陣の中にある設定値を、ちょっと書き換えた”ってことだ。
既存のロジックはそのままで、定数だけ変えた感じ」
「そんなこと……できるんですね」
「できたから、できるんだろ」
自分でも、驚き半分、納得半分だった。
(やっぱりな)
この世界の魔法陣は、“不可侵の神秘的な図形”じゃない。
ちゃんと構造を持ったシステムだ。
なら――
「もう一個、試すか」
「え、まだやるんですか」
「ここからが本番だろ」
俺は、光源制御ブロックの中に、新しい分岐を挿入する。
条件:
“一定距離以内に“侵入者”が接近した場合”
動作:
光を、一瞬だけ強く点滅させる。
ついでに、その位置情報をログに記録する。
「……っと」
処理を書き加えて、魔力の流れを整える。
例外処理も一応つけておく。暴走すると怖いからな。
「ナノ。通路の向こうまで飛んで行ってくれ」
「は、はい?」
「いいから。あの角まで。人間一人分くらい離れた位置」
「……分かりました」
ナノがふわりと飛んでいく。
一定距離を超えたところで――
ぱちっ。
光源が、一瞬だけ強く光った。
そしてすぐ、元の橙色に戻る。
「わっ」
ナノが小さく跳ねる。
「今、光が――」
「トリガーが動いたな」
俺は、〈ログ/解析〉タブを開いた。
新しいエントリが増えている。
【時刻】 0:03:12
【イベント】 侵入者接近
【位置】 階層1/通路/基準点から5メートル
「……位置情報まで入ってますね」
「条件分岐とログ出力を追加しただけだ」
思わず、にやける。
「ご主人」
ナノがこちらに戻ってきた。
「今のって……詠唱もしてないし、魔法陣を新しく描いたわけでもないのに、“自動的に発動”しましたよね」
「ああ」
「それってつまり――」
「“自動詠唱回路”だ」
自分で名前をつけてみる。
「魔力の流れに、条件分岐とトリガーを書き込んだ。
侵入を検知したら勝手に動く、常駐スクリプトみたいなものだよ」
「じょうちゅう……?」
「ずっと待機してて、条件満たしたら仕事するやつ」
「なるほど?」
ナノはふむふむと頷いた。どこまで理解しているかは怪しいが、まあいい。
重要なのは――
「これで、“常に誰かが見張っていなくても動く罠”が作れるってことだ」
冒険者が踏むたびに何かする。
一定時間ごとに状態をチェックして、HPが減ってきたら別処理に送る。
そんな“自動化”が、いくらでも仕込める。
「……ご主人、ちょっと目が危ないですよ」
「気のせいだ」
俺は壁の魔法陣をもう一度、じっくり見直した。
光源だけじゃない。
通路の床、天井、部屋の入口、それぞれに、別の制御ブロックが刻まれている。
足元を滑らせる罠。
じわじわHPを削る魔力の霧。
一定時間ごとにポーション使用率を集計する集計ルーチン――。
頭の中で、ありとあらゆる“嫌らしい”ギミックが組み上がっていく。
「ナノ」
「はい」
「この階層の魔物や冒険者のHPや状態の情報って、取れるか?」
「迷宮内に入ってきた生物の生命反応と魔力の状態なら、一定精度で把握できます。
“何パーセントくらい元気か”という大雑把な値ですけど」
「十分だ」
HPの正確な数値なんていらない。
だいたいでいい。だいたいで運用するのは、昔から得意だ。
「迷宮の魔物が“HP三割を切ったら別ルートへ送る”条件を書き込む。
その別ルートの先に、“回復用の部屋”を用意する」
「回復用の部屋?」
「ああ。そこでポーションを飲ませて、しばらく休ませて、回復させる」
さっきの光源と同じだ。
ゴブリンのHPが三割を切った瞬間――
黒煙を噴き出し、光のエフェクトを纏って、その場から消える。
実際には転移魔法陣が起動して、回復部屋へ飛ばしているだけだが、
外から見れば「派手なエフェクト付きで倒れた」にしか見えない。
「そして回復したゴブリンを、別のルートから前線に戻す。
冒険者からは、魔物なんて見分けがつかないだろ」
「……なるほど。
倒しても倒しても、同じようなゴブリンが無限に湧いてくる、ように見えるわけですね」
「そう。実際は、有限リソースをローテーションしてるだけだ」
安い駒を大量に用意するのは簡単だが、死なせると復活コストがかかる。
だったら極力殺さず、回復して再利用した方が効率がいい。
それは、サーバーだろうが人材だろうが、変わらない。
「ご主人、やっぱりブラックですよね?」
「効率重視って言え」
「でもゴブリンさんたち、死ななくて済むんですよね?」
「まあ、そうなるな」
「それ、ホワイトじゃないです?」
「うるさい」
とはいえ、まだ魔物を一体も召喚していない段階で、あれこれ言っても机上の空論だ。
実際にやってみて、ログを見て、調整していく必要がある。
それこそが、運用だ。
「よし」
俺は通路を見渡した。
灰色の石の壁に刻まれた魔法陣が、さっきとは違って見える。
不可思議な紋様の羅列ではなく、
if文とループと例外処理がびっしり書き込まれた、“巨大なレガシーコード”だ。
「この迷宮、全部、俺色にリファクタリングしてやる」
「ご主人、その言い方だけ聞くと、なんかちょっとよく分からないですよ」
「“この迷宮をちゃんと動くように保守する”って言われるよりは、まだマシだろ」
俺は迷宮核の間の方へ振り返る。
どくん、どくん、と規則的に鳴る鼓動が、こちらのテンションを煽ってくる。
俺は、迷宮核の間へと歩き出した。
レガシーコードまみれのこの迷宮を、
元社畜エンジニアの手で作り変えてやるために。




