第9章 Ep9:計算不能(ラグ)——あるいは、時間が溶ける世界
## 1. 多段攻撃への絶望
オーバーフローは、やがて対策された。
プレイヤーコミュニティが発見した法則は、シンプルだった。
「一撃では数値が丸くなる。なら多段ヒットで小分けにすればいい」
つまり、威力1京の打撃を、1秒間に100回。
合計で100京ダメージ。
1ヒットが上限の922京未満なら、オーバーフローしない。
その理論に基づいて、新しいスキルが実装された。
「千手観音・乱れ突き」
我が手にそれを掴んだ時点で、私は理解した。
(これが……最終兵器)
マリエルは、新しいスキルの仕様を説明した。
「多段ヒット特化型。1ヒットの威力は1京。判定回数は毎秒100回。つまり、1秒間でトータルダメージ100京。一撃ぶんの数字を100回に分割するから、1ヒットあたりは符号反転の境界を超えない。オーバーフロー現象を完全に回避できる」
「でも……」
「何?」
「消費MP?」
「ほぼゼロ。制限は、『連続発動禁止』。つまり、3秒ごとに1回。」
「その一回で、どのくらい敵のHPを削れるの?」
「今度のレイドボスは、HP が250京。1秒に100京削る。つまり、2.5秒。スキルクールタイムが3秒。つまり……」
「クリアできる」
一筋の希望が生まれた。
次のレイドボス討伐日。
私たちは、再び挑戦した。
「いくわよ! 千手観音・乱れ突き!」
スキルボタンを、押す。
『SKILL ACTIVATED: Thousand-Armed Avalanche』
『Hit Count: 100/sec』
画面が、ダメージ数字で埋め尽くされた。
「1京」「1京」「1京」「1京」「1京」——
100回分の数字が、毎秒ポップアップされる。
## 2. 世界の遅延
三秒後。
敵のHP は、150京。
100京削れた。計算通り。
「クリアできる……!」
マリエルが喝采を上げた。
次のスキルまで、クールタイムの残りはあとわずか。
「もう一度!」
スキルボタンを押す。
『SKILL ACTIVATED: Thousand-Armed Avalanche』
『Hit Count: 100/sec』
画面に、100個の数字が再び並ぶ。
だが。
その瞬間。
「あ……」
画面が、ほんの一瞬、止まった。
「何か……重くなってない?」
マリエルが、呟いた。
ダメージ数字が、普通のスピードで表示されていない。
「1……京」
間隔が、広がっている。
「『1京』って表示に……3フレーム?」
『1フレーム = 約16ミリ秒』だとしたら。
100個の数字が、3フレームずつかかるということは……
「あ」
計算が、完成した。
「サーバーの……処理が……追いつかない」
『System Message: Server Load - High』
画面隅に、警告が表示された。
攻撃を止める。
ダメージ数字の表示が、加速した。
「え……」
それは、表示速度が上がったのではなく、溜まっていた表示が一気に追いついてきたのだ。
つまり、サーバーの処理速度が追いつかず、「表示待ち」状態になってたわけだ。
「わかった。これ、サーバーの計算能力が逼迫してる」
マリエルが、冷たく分析した。
「全プレイヤーが同時に『毎秒100ヒット × 京単位の威力計算』を要求してるんだ。マルチプレイイベントだから、数百人が同時アクセス。つまり、数万ヒット分の計算が毎秒発生してる」
「CPU が……?」
「完全にマイナス。処理能力が、計算量に追いついていない」
画面を見る。
敵がいるはずの位置に、敵がいない。
あ、いる。でも、動いていない。いや、動いてるんだけど、フレームレートが極端に落ちてる。
一フレーム分の移動に、2秒。
「時間が……遅い」
歩こうとする。
足が上がるまでに、3秒。
着地まで、さらに5秒。
つまり、歩幅1メートルに、8秒かかっている。
時速なら、450メートル/時間 = 0.125 m/s 。
秒速12.5センチだ。
「何これ……」
マリエルがチャットに「遅い」と入力する。
その文字が画面に反映されるまで、1分待たされた。
「あ……ゲーム内の1フレームを計算するのに……現実時間で1秒かかってる」
つまり。
ゲーム内の時間進度が、現実時間の1/60に低下している。
いや、もっと悪い。
通常はフレームレート60FPSで、毎秒60フレーム。
現在は毎秒1フレーム。
つまり、ゲーム内の1秒を処理するのに、現実時間で60秒かかっている。
「時が……止まりかけてる」
私は、つぶやいた。
マリエルの返答が返ってくるまで、2分かかった。
『待つしかない』
その5文字を表示するだけで、120秒。
## 3. 世界の崩壊
数時間が経った。
ゲーム時間では、数分だ。
背景のポリゴンが、ちらつき始めた。
『GPU memory overload detected』
グラフィックスも、限界に達している。
空の色が、おかしくなった。
紫色と緑色が、ちかちかと点滅している。
前方の地形が、欠け始めた。
足元の大地が、ブロック単位で消えたり現れたりしている。
「何これ……」
「VRAM が……満杯……キャッシュミスが発生してる……テクスチャが読み込み直される……その都度フレームドロップが発生してる」
マリエルの声まで、スローになっている。
『System Message: Critical Error Approaching』
『World Stability: 12%』
数値が、刻一刻と減っていく。
『World Stability: 8%』
「終わりだ」
マリエルが、つぶやいた。
「システムは……限界を迎えた……数値がインフレしすぎて……計算量が……物理的に処理不可能な領域に入った」
『World Stability: 3%』
「私たち……何をやってるんだろう」
私は、スマートフォンを見つめた。
画面には、壊れかけの世界。
計算が追いつかず、フレームドロップしながら、慌てふためく情景。
八回の輪廻。
九度目の死へと向かう、加速度的な崩壊。
——皮肉な話だ、と思った。
前世の私は、システムを「落とさない」ために徹夜を重ねたインフラ屋だった。負荷を分散し、ボトルネックを潰し、サーバーが悲鳴を上げないよう、数字を見張り続けてきた。守る側の人間だったのだ。なのに、この世界では。私たちが追い求めた「強さ」そのものが、世界の計算量を食い潰し、サーバーを内側から焼き切っていく。守るはずだった私が、今は、世界を殺す、いちばん重いプロセスだ。
「私たちは……『強さ』を求めた。でも、その強さが世界を壊してる」
『World Stability: 1%』
背景が、ほぼ黒くなった。
敵も、マリエルも、もはや見えない。
あるのは、黒色のボックスと、ダメージ数字だけ。
「次が……最後だ」
『World Stability: 0%』
画面は、完全に暗くなるはずだった。
だが、その直前に。
深い、低い音声が、どこからか聞こえてきた。
『DETECTING ANOMALOUS OBJECTS』
『DATA CONTAMINATION CONFIRMED』
『INITIATING SYSTEM PURGE』
Root Server。
すべてのデータを管理する、絶対的な存在。
データベースを支配する神。
それが、目を覚ました。




