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

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

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

エラーが発生しました。

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

ブックマーク機能を使うにはログインしてください。
【第2章・2話完結】ゲームは夜に作られる  作者: 未知(いまだ・とも)
第1章

この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

2/6

第2話「それ、絶対言っちゃダメなやつ・2 抱えてる爆弾は、一つじゃない」

久しぶりのお台場デートの最中に、突然の呼び出し。

沙耶との楽しい時間を振り切って、会社に向かうことになった瑛士を待ち受けていたものとは……?


※緊急の雰囲気を出すため、専門的な用語も出てきますが、

最後に簡単な用語解説集を用意してますので、ふわっと雰囲気で読んでいただいて大丈夫です。

コートを脱ぎ、紙袋を机の下に放り込み、少しずつ装備を剥がして日常に戻っていく。


「ログ、見せてください」


瑛士が声をかけると、サーバー班のデスク前にいたエンジニアが、椅子ごと少し横にずれた。

モニターには、昨晩のサーバー負荷を示す赤いグラフの山がびっしり並んでいる。


挿絵(By みてみん)


「……この時点ではユーザー数のピーク、もう過ぎてるはずですよね」


グラフの軸を一瞥して、瑛士は眉を寄せた。

深夜に差し掛かる時間帯。ふつうなら負荷が落ち着いていくはずだ。


「はい。他のサーバーは素直に落ちてるんですけど……

 イベント用だけ、ずっと上がりっぱなしで」


エンジニアが、問題のラインをマウスでなぞる。

山の稜線が、ゆっくり、しかし確実に右上へと伸びていた。


「ドカンと死ぬんじゃなくて、じわじわ死んでるパターンか……」


派手なエラーは出ていない。

でも、ログの量が静かに増え続け、ディスクIOも上がってる。

メモリの使用量もじわじわ右肩上がりする——

そういう危ない形だ。


「このまま本番まで放っといたら、明日のイベント中に、確実にパンクしますね……」


サーバー班のエンジニアが、げっそりした顔でつぶやく。

瑛士は真剣な眼差しでグラフの傾きを追った。


「……ログの出方、ここから変わってますね。

 本来なら一回で終わる処理が、同じログを何度も吐いてる」


グラフの一点を指し、そのタイミングに、頭の中で昨日の作業履歴を重ねる。


「たしかこの時、イベントの仕様、差し替えしましたよね」


「それ、多分俺がマージしたやつっス」


声を上げたのは、新堂だった。


「イベントボス戦の、残りHPまわりの処理いじったんスよ。演出、派手にしたくて」


「やっぱりか」


「……やっぱりって何スか。俺も一応テストしてますからね?」


新堂の言葉を聞きながらも、もう瑛士の指はキーボードの上で走り始めていた。

該当の修正差分を開き、ログの時間と見比べていく。


「ここか。残りHPが一定以下になった時の、ド派手エフェクトのトリガー処理追加」


瑛士はコードを指し示した。


「これ、最後までちゃんと倒しきった時にのみ、終了する前提で組んでますよね?」


「っスね。ラストは絶対見せ場なんで。……あ」


新堂の声が、内省するかのように小さくなる。


「そうか。途中で抜けられた時は、片付け処理が走ってないのか……」


瑛士は頷いた。


「そうです。イベントの途中でログアウトされたり、回線落ちたりした場合、

 終了の指示が飛ばない。だからクリーンアップが保証されてない」


「そのたびに、見えないところに『ゴミ』が溜まっていく感じッスね」


テストプレイではみんな最後までちゃんと遊んでくれるので、途中で抜けた場合のパターンは、対応を忘れがちになる。

新堂は、弱った顔で頭をかきながら言葉を継いだ。


「すませんした。俺のやらかしッスね、これ」


瑛士はモニターから目を離さずに言った。


「新堂さん一人のせいじゃありません。

 そこまで想定して仕様を詰めなかった、僕の責任でもある」


サーバー班のエンジニアが、おそるおそる口を開く。


「ロールバック、します? イベント実装ごと前の状態に戻して……」


「いや、このまま戻しても、問題を先送りにするだけです。

 明日も同じ遊び方をされたら、同じ場所で死にます。

 今ここでちゃんと潰して、イベント用インスタンスごと新しいのに差し替えましょう」


「今から、ですか……?」


エンジニアの表情に、一瞬だけ絶望がよぎる。


「徹夜に備えて、夜食買ってきてもいいんですよ?」


軽口を交わしつつも、頭の中ではもう、対処の手順を並べていた。


原因の特定。

どこまで影響が出ているかの確認。

どこを直せば、一番リスクが少なく収まるか。


サーバー側の管理をいじるか、

それともイベント用のスクリプト側で、「どんな抜け方をしても必ず最後に片付けが走る」ように、保険を掛けてしまうか。


「ふむ……スクリプトで拾ったほうが早いですね」


ログを追っていた瑛士は、そう決めて椅子の背にもたれた。


「全体を触るより、イベント側だけ差し替えたほうが安全でしょう」


「了解!『イベント中断時、絶対後始末するマン』の出動っスね」


新堂は軽く片手を挙げると、一気にスイッチが入ったのか、爆速でキーボードを叩きはじめた。


ここで誰も、「うわ、帰れないじゃん」とは言わない。

そういう愚痴は、みんなわかっていても、ここでは口に出さない。


ここに残っているのはただ——

「やるしかないね」と苦笑いしながら、再び机に向かう人たちだけだった。


(……こういうところが、好きなんだよな)


誰かが潰れそうな夜に、誰かが当たり前みたいな顔で隣に来てくれる。


困った時は助けに行って、

自分が困った時は、助けられる側になる。


その循環が出来上がっているこの場所を、瑛士は嫌いになれそうもなかった。


 * * *


「……ふぅ」


瑛士は大きく息を吐いて、壁の時計を見上げる。

日付は、とっくに変わっていた。


修正済みスクリプトの反映。

テスト用のイベント専用フィールドを起動し直し、途中抜けを何度も繰り返す。


さっきまで真っ赤に尖っていたログの山は、今はなだらかな丘のように落ち着いたカーブを描いていた。


「傾き、収まりましたね」


サーバー班のメンバーが、ホッとしたように椅子の背にもたれる。


「イベント中断パターン、十回連続で流しても大丈夫です。

 メモリも、ちゃんと戻ってます」


「よし。……これで、明日はなんとか持つな」


明日、というかもう「今日」なのだが、そこは誰もツッコまない。


瑛士は椅子の背もたれに体を預けた。

張り詰めていた緊張が、ようやくほどけていくのを感じる。


視界の端では、新堂が空になったエナドリ缶を指で転がしながら、自分の書いたスクリプトのログを確認していた。


「じゃ、とりあえず今日は上がりましょっか。サカキさん、顔色死んでるんで」


「お互い様ですよ、新堂さん」


新堂は眠そうな顔をしていたが、その目には、まだちゃんと光が点っていた。


「明日、いいイベントになるといいっスね」


「なりますよ。さっきの修正が入ったから、逆に安定してて当たり前になります」


「上手くいって当たり前って、一番報われないっスよね」


「確かに……でもそれが、一番いい状態なんですよ」


うまく行って当たり前の仕事。

でも、その裏にはこうして、何人もが残業した苦労が隠されている。


「じゃ、お先に。……ほんとみんな、ちゃんと帰ってくださいね」


新堂が笑って、手をひらひらと振りながら帰っていく。


まだ終電が間に合う者、タクシーを使う人、そして帰るのは諦めて仮眠室を使う者……。

それぞれの寝場所を求めて散っていく。


 * * *


瑛士もデスクの上を片付け、帰る支度を始めた。

スマホを見ると、沙耶からのメッセージが届いていた。


《今日はありがとう》

《まだお仕事なの?》

《また今度ね》


最後のメッセージのタイムスタンプは、二時間前だった。


(……しまった、もう寝てるかな)


椅子の背にかけていたコートを羽織りながら、瑛士は深く息をついた。


《今日はごめんな、またね》


何度か書いては消してをくり返し、最後は結局シンプルにそう書いて返信する。

またね、とは書いたものの、心のどこかでは


いつかこのバランスは崩れる。


という予感だけが、小さく侵食を始めていた。


 * * *


そして、その「いつか」は、思ったより早く訪れることとなった——。


// TODO: Continue in next chapter.


。*❅┈┈┈┈┈┈┈┈┈┈┈┈❅*。


【開発現場ミニ用語集】


◆ サーバー班

ゲーム世界そのものを動かしているコンピュータ (サーバー)を、日々なだめすかしながら運用している人たち。


プレイヤーにとっては「ログインボタン押したら当たり前にゲームが動く」裏側で、

その「当たり前」を維持するために、彼らは密かに徹夜を繰り返している。


◆ サーバーがじわじわ死ぬ

サーバーが「ドカン!」と一瞬で落ちるのではなく、

表向きは何とか動いているものの、裏でじわじわと負荷やログが積もり続け、

気づいた頃には限界を超えて壊れてしまうパターン。


◆ ディスクI/Oアイオー

ゲームやサーバーが、ディスク(HDDやSSD)からデータを読み書きしてる量のこと。

マップの読み込み、キャラデータの保存、ログの書き込みといった「データの出し入れ」がディスクI/O。


こねが増えすぎると、ゲームが重くなったり、読み込みが遅くなったりする。


開発者からすると、

「CPUもメモリも余裕あるのに重いんだけど!?」

と思ってよく見ると、このディスクI/Oが真っ赤になっていたりする、真犯人ポジションの常連である。


◆ イベント用インスタンス

オンラインゲームの世界の中に用意された「イベント専用の個室ワールド」。

期間限定ボス戦やお祭りコンテンツを、この「部屋」の中で動かすイメージ。


プレイヤーからすると

「イベント会場だ! ひゃっほう!」

というノリだが、開発・運営側からすると

「落ちるなよ……ここだけは落ちるなよ……」

と毎回お祈りしている空間でもある。


瑛士が言っていた「イベント用インスタンスごと差し替えよう」は、

このイベント専用の部屋を、丸ごと新しいものと入れ替える、という意味。


◆ マージ

ソースコード管理ツールなどで別々に作業していた変更を、ひとつの流れに合流させること。


うっかりバグを一緒に流し込んでしまうと、

「マージしました」=「地雷を埋めました」

になってしまうこともあるため、開発現場ではちょっとドキドキする瞬間でもある。


◆ ロールバック

一言で言うと「時間を巻き戻すボタン」。

不具合が発覚した時に、問題のあるバージョンより前の状態に、システムやデータを戻してしまうこと。


ただしデータベース更新が絡むと、ロールバックは簡単じゃない。

「それまでに積み上がったもの」がなかったことになる危険もあるため、乱用はできない。


第2話ではサーバー班が「ロールバックします?」と提案していたが、瑛士は

「同じことがまた起きるだけだから、根本から直そう」

という判断をしている。


◆ エフェクト

ゲーム画面で表示される光や炎、爆発、キラキラなどの視覚的な演出効果のこと。

派手であればあるほど、プレイヤーはテンションが上がり、

サーバーとマシンパワーは静かに泣く。


新堂が「ボスの残りHPが少なくなった時にド派手エフェクトを足した」結果、

見えないところにゴミが溜まり続ける不具合が生まれたのが、第2話の真相である。


◆ スクリプト

ゲームの中で「こうなったら、こう動く」という流れを記述した台本のようなもの。

キャラの行動パターン、イベントの進行、演出のタイミングなどを細かく制御する。


瑛士たちの現場では、

「サーバー本体をいじるより、イベント用スクリプト側で

『どんな終わり方しても最後に片付ける処理を入れる』ようにしておこう」

という判断がされている。


根本の柱を直すか、イベント会場側で安全装置を増設するか、というイメージ。


◆ 「イベント中断時、絶対後始末するマン」

イベントの途中でプレイヤーが抜けたり落ちたりしても、

裏側でちゃんと「片付け処理」を実行してくれるスクリプトのことを、新堂が擬人化してそう呼んでいる。


こういうノリで嫌な仕事を引き受けてくれる人がいる現場は、たいてい大変だけど、めっちゃ楽しい。

今回の新堂さんは「言っちゃダメやなつ」じゃなくて「言わないとダメなやつ」でしたね。


仕事で失敗した時は、大変なことになる前に自分から言う。

そして瑛士は、それを責めない理想の上司でした。


次回……一難去ってまた一難。

ちょっと読んでて胸が痛い回かもしれませんが、お付き合いいただけると嬉しいです!

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

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

↑ページトップへ