第11話「デッドロック・フロア」
ダンジョンの空気は、外と別物だった。
地下に踏み込んだ瞬間から、湿った石の匂いと暗がりの気配が全身を包む。ガルドが持ち込んだ魔法石の灯りが通路を照らし、長い影が壁を這っていく。俺の隣でアリアが無言のまま剣の柄に手をかけている。その所作が実に様になっていて——これが現地で鍛えた剣士と、転生から数か月の俺の差か、と変なところで妙に感心した。
「第一層は調査済みのルートを通る。ただし——」
先頭を歩くガルドが振り返った。
「ダンジョンが暴走中だ。地図通りとは限らないぞ」
「……楽しそうですね」
「楽しいからな」
やはり、このひとは頭のどこかのネジが欠落している。盾斧を右手一本で肩に担ぎ、巨体が通路の幅を占領するように歩く背中は、どんな強敵でも押し潰しそうな威圧感があった。
通路を進むこと十分あまり。
石室に出た。
六畳ほどの正方形の空間。四方の壁にそれぞれ一つずつ扉が作られており、東西南北の方向に続いているはずだった——全ての扉が、重厚な石製のロック機構で完全に塞がれていた。
```
[DOOR_STATUS]
北: LOCKED
東: LOCKED
南: LOCKED
西: LOCKED
```
デバッガーズ・アイがそう示す。ただ閉まっているのではない。各扉にはロック条件が設定されており、何らかの条件を満たさない限り開かない——そういう設計になっている。
「なんか嫌な部屋だな」
ガルドが四方を見回した、次の瞬間だった。
天井の通気口から、霧のようなものが静かに流れ込んできた。白く薄い靄が床を這い、石室全体に広がっていく。同時に——床に刻まれていた魔法陣が、赤く発光し始めた。
「湧くぞ」
ガルドが低い声で言い、盾斧を両手で構えた。
魔法師たちが杖の穂先を向ける。俺とアリアは無言のうちに、反射的に背中合わせの位置に動いた。
床の亀裂が走った。ミシ、ミシ、と石が軋む音がして——何かが、這い出てきた。
一体目は形容し難い外見をしていた。人型だが全身が黒い岩のような素材で構成されており、関節部分にオレンジ色の光が間欠的に走っている。高さ一メートルほど。動きはぎこちないが——それが逆に不気味だった。機械的な挙動のモンスターほど予測しにくいものはない。デバッガーズ・アイがエンティティの情報を流し込んでくる。
```
[ENTITY: Error_Golem]
HP: 340
攻撃: 物理型
特殊処理: 撃破時に断片から子インスタンスを2体生成
(生成コスト: 親HPの50%を2体に分割)
```
一体目が倒れた瞬間——魔法師の放った火球が命中し、黒い石が砕け散った。そして砕けた破片が二つに分かれ、それぞれが光を帯びながら新たなゴーレムの形に変形していく。
「……本当に増えた」と魔法師が呆然と呟いた。
「倒しても意味がない」
俺は声を張り上げた。
「このゴーレムを撃破すると、断片から新たに二体が生成される。撃破するたびに数が増える。無限増殖だ」
「無限って——じゃあどうするんだ!」
別の魔法師が叫んだ。
どうするか。俺はデバッガーズ・アイで扉のロック条件を精査する。
```
[LOCK_CONDITION]
北扉: 東エリアのエラーゴーレム全滅 → 開錠可能
東扉: 北エリアのエラーゴーレム全滅 → 開錠可能
(※ 両条件は連動——どちらの開錠も相手の達成を前提とする)
南扉: 独立条件
西扉: 独立条件
```
「——デッドロックだ」
舌打ちしながら、俺は全体を整理した。
「四つの扉のうち、北と東が連動している。北の扉を開けるには東エリアのモンスターを全滅させる必要がある。東の扉を開けるには北エリアのモンスターを全滅させる必要がある。どちらも相手の終了を待っていて、永遠に開かない」
「つまりどういうことだ?!」
ガルドが斧を横薙ぎに振って三体を一気に吹き飛ばしながら叫ぶ。砕けた三体から六体が生まれる——それでもガルドはどこか楽しそうに見えた。
「二つのプロセスが互いに相手の終了を待ち続けてる状態だ」
俺は走りながら説明した。
「プログラムで言うと——Aという処理がBの完了を待っていて、BはAの完了を待っている。どちらも相手が終わるまで動けないから、永遠に終わらない。これがデッドロックだ。普通に戦い続けても数が増えるだけで、状況は何も変わらない」
「なら」とアリアが即座に切り込んだ。「どうすれば解決できる?」
「——二つのロックを同時に解除する必要がある」
俺は作戦を組み立てた。シンプルだった。シンプルだが、実行の精度が全てだ。
「ガルド、北側の群れを全部引き受けてくれ。殲滅しなくていい。俺が合図するまで、引きつけて封じておくだけでいい」
「あいよ」
「アリア、東側を頼む。一体ずつ確実に処理しながら、殲滅は俺の合図まで待ってください」
「合図のタイミングは——コンマ一秒のズレも許されないのでは?」
アリアの目が鋭くなった。状況の核心をすぐに把握するあたり、この人は本当に頭が切れる。
「源コードを直接監視して、閾値に達した瞬間に合図を出す。ズレはゼロにします」
アリアが一瞬だけ俺の目を見た。迷いを測るような、鋭い視線だった。
「——わかりました。信じます」
その言葉は思いのほか重かった。受け取った。
「ありがとうございます」
ガルドが既に北側に突っ込んでいく。
盾斧を両手で構えなおし、横薙ぎの一撃が三体を同時に砕いた。砕けた破片から六体が生まれる——だがガルドは止まらなかった。むしろ笑い声まで上げながら、生まれたばかりの六体の真っ只中に立って注意を引きつけ続けている。
「かかってこい! 数が増えたって、どうせ弱いんだろ!」
言いながら盾で一撃を受け流し、斧の柄でゴーレムを殴り飛ばす。ほとんどリズムよく、暴れ回っていた。余裕があるのか本当に楽しんでいるのか判断できないが——とにかくプロだ。圧倒的に。
東側ではアリアが展開していた。「第一条件・速攻型」——彼女の条件分岐剣法の初手だ。一体のゴーレムを確実に処理しつつ、次の個体には最小限の動きで防御に回る。殲滅ではなく、抑止。指示を精密に実行している。
俺はデバッガーズ・アイで全体の数値を監視した。
```
[LOCK_NORTH] LOCK_VALUE: 47 / THRESHOLD: 0
[LOCK_EAST] LOCK_VALUE: 51 / THRESHOLD: 0
※ 両値が同時にTHRESHOLD以下になった場合のみ解錠
※ 許容時間差: 0.10秒以内
```
現在の値は四十七と五十一。ガルドが北側を十二体引きつけ、アリアが東側を八体まで削っている。数値がゆっくりと動いていく。
四十、三十五、三十二。
意識が研ぎ澄まされていく。
こういう作業は——普通の人間には難しい。複数の変数を同時に監視して、最適なタイミングを割り出す。元SEとして画面の中のデータを見続けた七年間は、伊達ではなかったらしい。
二十、十五。
「——準備」
ガルドが一瞬だけ姿勢を変えた。盾を大きく構え、斧を力いっぱい引き絞る——殲滅の構えだ。
アリアが剣の切っ先を下段に落とした。「第三条件・掃討」の構えだ。
九、六、三。
「——今だ!」
ガルドの盾斧が轟音と共に地を薙いだ。奥義一歩手前、溜めた全ての力を水平の一撃に集約した渾身の薙ぎ払い。石床に亀裂が走り、衝撃波が空気を震わせ、北側エリアにいた十二体のゴーレムが——全て同時に砕け散った。
その〇・〇七秒後。
アリアが「第三条件・掃討」を解き放った。剣閃から放たれた衝撃の判定が、東側エリアの残存八体全体に同時に通る。八体が光の粒子になって消えた。
ドン、と重い音が二つ、ほぼ同時に鳴り響いた。
北と東の扉が、石製のロック機構を解除した音だった。
静寂が訪れた。
魔法師の一人が「……コードを読んで、戦闘の合図を?」と呟いた。
「そういうことです」
俺は淡々と答えた。
「なんでそのタイミングで合図を出せた? 北と東の状況を同時に把握できるはずがない」
「デバッガーズ・アイは視野内の全エンティティのステータスを同時に表示します。複数の値を並行してモニタリングするのは基本機能です」
「……化け物じみてるな」とガルドが笑いながら石床に寄りかかった。「まあ俺よりはマシな化け物だが」
ガルドは笑っているが、その額に汗が光っている。十二体を一人で引きつけ続けたのは、やはり楽ではなかったようだ。
俺はそれには答えず、扉のロック条件のコードをもう一度確認する。
デッドロックの構造を設計するには、かなり精密なロジックが必要だ。ランダムに生成されたダンジョンに、これほど凝った仕掛けが偶然生まれるだろうか。
「このダンジョン——デッドロックの構造は自然生成じゃない」
俺は静かに言った。
「誰かが意図的に、パズルとして設計している」
全員が俺を見た。
アリアの目が細くなる。「試練ということか?」「わかりません。でも確かなのは——」
俺は開いた北の扉を見る。
「これはダンジョンの暴走ではない。誰かが用意した、試練のステージだ」
次回、第12話「スタックオーバーフロー」——第二層で待ち受けていたのは、無限に再生する竜だった。ガルドの奥義が、封印を解く。




