【ゲーム開発の裏側】孤独に寄り添う賢者 〜100時間の残業と1000日の徹夜を越えて〜
皆さんが慣れ親しんでいるゲームにも、
裏側には必ず、それを作る「人」がいます。
本作は、そんなゲーム開発者たちの小さな友情譚です。
渋谷のゲーム会社を舞台に、責任と情熱を背負い続けるディレクターと、
直感とノリで開発室を引っかき回すバトルプランナー。
システムの裏側で静かに進行する致命的エラーと、それに立ち向かう孤独な夜。
同じ場所にいなくても、共に戦っている——
そんな男同士の信頼と友情を描きました。
どこかの開発室で、今日も誰かが戦っています。
ほんの少しでも、その背中に寄り添えるように書きました。
※開発現場の雰囲気をお伝えするため、若干専門的な用語が使われていますが、
最後に簡単な用語集をご用意いたしましたので「雰囲気」で気軽に読み進めていただけます。
このお話は、拙作
『異世界で待ってた妹はモーニングスターで戦う魔法少女(物理)だった件』
の番外編を加筆、修正したものですが、
本編をお読みにならなくても、お楽しみいただくことができます。
。*❅┈┈┈┈┈┈┈┈┈┈┈┈❅*。
ここは渋谷にある、とあるソシャゲの開発室。
チーフディレクター・榊原瑛士は、
散らかったデスクに肘をつきながら、
誰にも気づかれないようにそっとため息をついた。
隣の席では、バトルプランナーの新堂直希が
冷めたカップ麺を尻目に、死んだ目でログを追っている。
互いの疲れにも無理にも気づくくせに、それを口にしない——
そんな不器用な優しさが、この職場には静かに積もっていた。
その夜、デバッグ作業に立ち向かうはずだった二人は、
いつの間にか『孤独と戦い続ける者同士』として、
同じ戦場に並び立つことになる——。
* * *
「……敵AI、また壁に向かってエンドレスランしてますね」
モニターを覗き込みながら、
チーフディレクター・榊原瑛士はため息をついた。
眼鏡を少し持ち上げて、目頭に溜まった疲れを搾り出す。
眼精疲労と肩こりは、開発者にとって
切っても切れない永続デバフのようなものだ。
そこには積もり積もった疲労と、
誰にも言えない責任の重みが沁みている。
「……またバグですか?」
「あー、それ仕様です(棒読み)」
エナドリを飲み干しながら即答したのは、
バトルプランナーの新堂直希だ。
新堂は明るい茶色の髪をざっくりと後ろで結び、
いつもパーカーにカーゴパンツ、スニーカーという
ラフな格好をしている青年だ。
どこか眠そうな目をしているのに、
何か面白い話を思いついた瞬間だけ、
目をキラキラさせて子供みたいに笑う。
しかし、その笑顔に救われてきた仲間は多い。
彼は仕様よりもノリを優先してしまうタイプである。
判断は速く、彼の口癖は
「とりあえず触ってから考えましょう」だ。
だが腕は確かで、それが結果としてユーザーを満足させる
『気持ちのいい』バトルにつながっていることも間違いではない。
彼の傍には、食べられる機会を永久に失ったカップラーメンが
伸び切ったまま冷めている。
それは自分の空腹より、
誰かのための作業を優先した結果だと、一目で分かる。
瑛士はほんの一瞬、視線をそこに落としたが、
気づいた素振りは見せない。
「いや、『仕様です』で押し通せる範囲じゃないですよこれ。
パス回しのルート死んでますね。NavMeshの参照切れてますから——」
「ちょ、ちょ! わかってますって!
仕様って言っとかないと、心が死ぬじゃないですか……」
新堂はキーボードを叩きながら、乾いた笑いを浮かべた。
「大丈夫っス、あとでAI班に『直しておいて〜』って言っときますから!」
「あとで、ねぇ……」
『あとで』『今度』『そのうち』——現場における死亡フラグ三兄弟である。
「……サカキさん、今日……眼鏡いじる回数、いつもより多いッスね」
瑛士は上司や親しい人達からは、
親しみを込めて『サカキさん』と呼ばれていた。
瑛士は軽く驚いた。
「新堂さん……気づかなくていいところ、気づくんですね」
責任者という立場は、人に弱みを見せないほうが場が回る。
しかし、わずかに滲む心の綻びを、新堂は簡単に見破ってしまう。
「サカキさんも……そういうの気づくタイプじゃないっスか。
俺のカップ麺、見つけても何も言わなかったし」
一瞬、空気が止まった。
二人とも相手の弱さには気づくのに、自分の弱さだけは隠すタイプなのだ。
押しつけるでもなく、遠ざけるでもない距離感が、そこにはあった。
瑛士は静かに椅子を回し、新堂の方へ向く。
「……新堂さん。 あなたが無理してるとき、
僕は、気づかないふりをした方がいいですか?」
新堂の肩が、ぴくりと揺れる。
逃げ道を与える優しさ。踏み込みすぎない距離感。
——でも、ちゃんと見ていてくれる安心感。
そんな人間と、人生で何人出会えるだろう。
新堂は指先で空のエナドリ缶をつつきながら、照れ隠しのように笑った。
「……んー。 それ言われちゃうと、誤魔化せないですね」
瑛士も、ほんの少しだけ口元を緩めた。
——この二人は、似たような傷を抱えながら、
同じ方向を向いて立つ人間だった。
「まぁまぁまぁ、細かい話は置いといて!」
いや置いとくな。
新堂がニヤッと笑いながら、キーボードを流れるように操作する。
「サカキさん、俺、テストプレイ用の時短キャラ作ったんですよ、ほら、これ!」
「……時短?」
「はい、デバッグ作業の救世主です! 自信作です!」
新堂は目にも留まらぬ速さでキーボードを叩くと、
最後に誇らしげにEnterキーをターン! と叩いた。
——画面に現れたキャラは、
全ステータス:カンスト上限突破
全ジョブ:完全解放
全スキル:クールタイム0
装備制限:撤廃
ダメージ:だいたい通る(通らないなら通るようにする)
まるで『ぼくがかんがえたさいきょうキャラ』
みたいなパラメーターを持っていた。
瑛士は10秒ほどフリーズした。
現実逃避と言い換えてもいいかもしれない。
「……新堂さん」
「はい!」
「これ、世界崩壊レベルのチートキャラですよね」
「でも便利なんですよ!?
どんなコンテンツでも秒で検証できるんで!」
「便利ですけど……ゲームとしての理性、どこに置いてきたんですか?」
「異世界です!!!」
……どこだそれは。
新堂はさらにウキウキして続ける。
「で、見た目は魔法職ですけど、ほら!
自分より大きなエンハンスソードも扱えるし、武道の究極奥義も使えるんです!」
新堂が操作すると、キャラは派手なエフェクトを振りまきながら
巨大な剣を軽々と振り抜き、周囲の敵を一瞬でまとめて吹き飛ばした。
『ね? 気持ちよくないっスか?』
と言わんばかりに、新堂はドヤ顔をしている。
「魔法職が物理で戦うの、シュールだな……(汗)」
「えっ? スキルもジョブも、全部使えた方が調整わかりやすいでしょ?」
瑛士はもうツッコんだら負けだと思い始めた。
よく見ると、その『最強キャラ』は、どこかで見たような髪型、顔立ちをしている。
「あの……この見た目……もしかして僕、ですか?」
「はい、モデルはサカキさんです!
サカキさん最強キャラですよ、カッコいいでしょ!!」
「いやその……」
瑛士は正直、ドン引いた。
「やめてください、なんで僕なんですか……」
「だって現場で一番強くて『戦えてる人』って、サカキさんじゃないですか?」
「……(うっ、そう来るか……)」
新堂はいつもの調子で軽く言ったが、
その言葉は、瑛士の胸の奥深いところに刺さった。
確かに、そうだった。
誰かが潰れそうになれば、真っ先に肩代わりした。
深夜でも、休日でも、トラブルが起きればすぐに駆けつけた。
誰よりも早く動くことで、誰も倒れないようにしてきた。
——それを『戦う』と呼ぶなら、自分は確かに、いつも戦っていた。
新堂はそれを『強いから』と言ったが——
本当はただ、誰も一人にしたくなかっただけだ。
それなら『最強キャラ』は、新堂なりの敬意なのかもしれない。
だからこそ、瑛士はその言葉に反論できなかった。
「せっかくだし、コイツに名前つけてやってくださいよ、
サカキさんの『分身』なんで!」
「えぇ……」
モニターのキャラを見つめる瑛士。
そこには瑛士を二割増しでイケメンに補正したようなキャラが、
巨大な武器を軽々と持って佇んでいた。
「てか、眼鏡してないじゃないですか」
「はい! モデリング班に頼んだら、
『ケルトにメガネねーし、そんな目的のためだけに工数割けねーよ』
って、秒で却下されました!」
「…………」
まぁ誰だって鬼のように忙しい中、
そんな遊び要素を頼まれたら、同じ理由で即却下するよな。
「名前ねぇ……」
眼鏡をかけていないこと以外は、やっぱり自分にどこか似たような存在。
(僕の分身か……)
分身は英語で『alias』(エイリアス)。
それをもじって——
「じゃあ……『エリアス』」
新堂はパチンと指を鳴らした。
「おー! なんかカッコいい響きッスね!?
はい採用! 即反映します!」
Enterキー、ターン!!
「じゃあこいつ、開発用デバッグキャラ『Elias』で回します!
もういつでも使えます!」
「いや早いだろ!?」
止めるより先に、プロジェクトに反映されていた。
「でも……調整の前提が消えますよ、これ」
「なんでもやってみないとわからなくないっスか?
とりあえず最強にして、触ってから考えましょう!」
新堂は仕事が速いのか雑なのか、よくわからないやつだ。
でもその大胆な発想が、いつもいい方向に働いているので、
この開発チームはよく回っている。
瑛士はこの日何度目かわからないため息をついた。
* * *
午後九時を回る頃——
オフィスの蛍光灯はフロアの半分だけ落とされ、
モニターの白い光だけがデスクの上を照らしている。
どこからどう見ても残業タイムなのだが、
不思議なことに誰もそれが『残業』だとは認識していない。
誰一人文句を言うこともなく、
当たり前のように淡々と、それぞれの作業に没頭している。
室内にはキーボードが叩かれる音と、遠くで鳴る空調の音だけが響いていた。
その静けさを破ったのは、新堂の小さな声だった。
「……あれ?」
画面に流れるサーバーログが異様な速さで伸びていき、新堂の指が固まる。
ログの更新が『止まらない』時は、大抵ロクなことがない。
「ちょっと待って……
これ、ヘルスチェック通ってるのにスレッド戻ってないじゃん……」
瑛士が椅子ごとスッと横に滑る。
「見せて」
新堂は唇を引き結び、ログビューワを拡大した。
「ログの伸び方、完全にリークのやつです
……ヒープに積んだメモリが返ってきてない」
「うーん……」
「解放する処理が抜けてます。
多分……俺が新人に振ったタスクのとこですね」
瑛士も画面を追い、息を飲んだ。
確かにログは静かに肥大化している。
こういうのが一番、タチが悪い。
このまま放置すればサーバーは不安定になり、
最悪の場合、週単位の工数が吹き飛ぶ。
「……これは、やってますね……」
新堂は、椅子を弾くように立ち上がる。
「サカキさん、俺、徹夜で直します!!」
その声には焦りだけじゃなく、
「自分が責任を取る」という覚悟が宿っていた。
瑛士は半分だけ目を閉じ、ほんの一瞬考えた。
「いえ……直すのは僕がやります」
「でも、これは俺の——」
「違う。責任者は僕だ。見逃した僕の責任でもある」
「サカキさん……」
新堂は言葉を飲み込む。
こういうときの瑛士は、優しいというより、強い。
「新堂さんは一旦帰ってください。
明日『戦う』のはあなたです。
バトル調整は、やっぱり新堂さんじゃないと」
その声は、押しつけでも慰めでもなく、
心から信頼している人間に向ける言葉だった。
「……わかりました。では、お先に失礼します……」
新堂は唇を噛むと、背中を少しだけ丸めて退出した。
ドアが閉まる音は、驚くほど小さかった。
* * *
みんなが帰った後の深夜の開発室。
瑛士はコンビニでコーヒーと軽食を買い、徹夜の作業に備えた。
「じゃあ、やるか……」
眼鏡をクイっと押し上げた。
そして差分ビューを開き、スクリプトの参照リンクを一行ずつ追っていく。
ログの修正は、実に地味な作業だ。
数百行のコードを追い、
不要な処理をひとつずつ外し、
メモリの戻り先を確認し、
絡まった糸を、丁寧に解くような作業。
誰が見ても退屈で、誰も讃えてはくれない仕事。
だが、瑛士は黙々と手を動かし続けた。
「失敗したからって、一人で追い詰められることはないんだ……」
——それは、昔の自分に言い聞かせた言葉だった。
瑛士はかつて、同じエラーに
一晩中ひとりで向き合った時のことを思い出していた。
失敗に気づいていた人もいたが、
誰も瑛士に声をかけなかった。
彼に手を伸ばせば、その人もまた責任を背負うことになると、
みんな知っていたからだ。
挫けそうになりながら、たったひとりで解決した夜。
モニターの光だけが、味方だった。
誰だって、好き好んでミスをするわけじゃない。
でも、そのミスを好き好んで一緒に背負ってくれる人もいない。
あの夜、誰かが声をかけてくれたなら。
ほんの少しだけ、寄り添ってくれていたなら——。
(……もう誰にも、あんな思いはさせない)
だから今日は、手を離せない。
失敗を誰にも受け止めてもらえなかった、
あの孤独な夜を、自分はもう知っているから。
* * *
そして、東の空が白みかけた頃——。
修正が完了し、サーバーは安定した。
デスクの端に置いてあったコーヒーは、すっかり冷めていた。
「……テスト環境に上げる前に、ローカルで一回まわすか」
瑛士はモニターをもう一枚開き、ゲームクライアントを起動する。
画面に現れたのは——エリアス。
新堂が作った、最強のデバッグキャラだ。
全ステータス上限突破、全ジョブ開放、スキルクールタイム0。
いつの間にか王宮付きで女王様の補佐官という、
大層な役職まで与えられていた。
「ほんとに、なんで俺なんだよ……」
二割ほど理想化された『自分』が、画面の中に立っている。
瑛士は、なんとも言えない苦笑を浮かべながら操作してみた。
タッ タッ タッ。
背筋を伸ばして、几帳面そうな見た目をしている。
歩き方は落ち着いていて、動きはどことなく上品さを感じさせた。
(新堂……お前には俺ってこういう風に見えてるのか……?)
思わず笑ってしまう。
スキル一覧を開くと、 見慣れたものから
初めて見るようなものまで、ずらりと並んでいた。
「全部使える……ほんとに全部盛りかよ……」
試しにスキルをひとつ選んでみる。
戦士系ジョブの最終奥義《獅王炎剣》。
「……いや、これ絶対魔法職が使っていい技じゃないだろ!」
半分呆れながらクリックした瞬間——
エリアスの手に炎が集まると、刹那、紅蓮の大剣が形を成した。
刀身に纏った炎は灼熱の獅子の形に揺らぎ、
見ているだけで気持ちが鼓舞されていくようだ。
エリアスは無造作に、それを片手で振りかぶる。
——ゴォォォォッ!!
地面が鳴動したかと思うと、爆音の中、
巨大な炎の獅子が襲いかかり、画面上の全ての敵が溶けるように消えていく。
「……強過ぎかよっ!?」
苦笑が漏れた。
ゲームバランスも何もあったもんじゃない。
……あまりに強引で、あまりに一方的な戦いだった。
でも、嫌ではない。
むしろ——すごく快適だった。
操作は軽く、レスポンスは即応。入力遅延は感じない。
キャラとしては完全にやりすぎなのに、触っていて気持ちが良い。
(……さすがのセンスだな、新堂)
操作感のあまりの爽快さに、瑛士は思わず低くうなった。
指が自然と、もう一度トリガーにかかる。
* * *
瑛士はエリアスで各エリアを踏み抜きながら、
敵AIの挙動や処理負荷、ログの伸びを確認していった。
リークは止まっている。挙動も安定している。
修正箇所の再現テストは、驚くほどスムーズに終わった。
……本来なら、もっと時間がかかるはずの作業だ。
「おいおいおいおいおい……」
ヤバいぞ……便利すぎるだろ、コイツ。
半ば呆れながらも、胸の奥は温かかった。
このキャラは単なる『効率』のためではない。
『困った時の誰かを助けるため』に生まれたのだと、
制作した新堂の気持ちが痛いほどに伝わってきた。
エリアスは画面の中で、静かに立っている。
まるで、
「大丈夫、あなたは一人じゃない」
と、伝えてくれているように。
瑛士は背もたれに体を預け、目を閉じた。
孤独な作業のはずだったが、
なぜか仲間と一緒に戦っていたような気持ちになり、目頭がじんわりと熱くなる。
早朝の開発室に少しずつ、朝の日差しが差し込んできた。
みんなが出社して来るまで、帰って少し仮眠でもしておくか。
——瑛士は頬に手をやり、伸びてきた無精髭の感触に、また一人苦笑した。
* * *
// End of this commit.
。*❅┈┈┈┈┈┈┈┈┈┈┈┈❅*。
【開発現場ミニ用語集】
◆ チーフディレクター
ゲーム全体の「方向」と「最終判断」を背負う人。
理想と現実の間で一番苦しむ役職。
何かあればだいたいこの人のところに相談が集まる。
責任は重いが、その分「世界を作っている実感」も強い。
◆ バトルプランナー
戦うときの「気持ちよさ」を設計する専門職。
数値よりも「手応え」や「テンション」を大事にする。
コントローラーを握った手の感覚で判断する人が多い。
新堂はこのタイプ。ノリで前進する。
◆ 触って
会議や議論をいったん止めて、実際に「ゲームを操作してみる」こと。
戦闘システムや操作感は、資料や数値だけでは判断しづらい。
「触ればわかる」が合言葉。
新堂の口癖「とりあえず触ってから考えましょう」は、
つまり「一回、体で理解しようぜ」という意味。
◆ 「仕様です」
本来は「そういう設計です」という意味。
しかし現場では「直す余裕がないから、一旦このままで行きます」の合図にもなる。
連発すると信頼が溶ける危険なワード。
◆ パス回しのルート
敵やキャラクターが「どこからどこへ移動するか」を判断するための動線。
サッカーでボールをどう回すかを決める作戦図のようなもの。
ここが崩れると、キャラはどこに動けばいいか分からなくなり、
時々、壁に向かって全力疾走する。
◆ NavMesh
キャラクターや敵が「どこを歩けるか」を判断するための地図データ。
これが崩れると、敵が壁に向かって永遠に走り続けたりする。
現場ではよく見られる光景。
◆ デバッグキャラ
テストプレイで効率よく検証するために作られる特別なキャラ。
パラメータが最大、制限がすべて解除されていたりすることが多い。
便利だが、やりすぎると世界が壊れる。
エリアスはここから生まれた。
◆ 工数
人と時間の総量のこと。
「工数がない=今は無理です」という意味に近い。
ゲーム開発では最も説得力のある断り文句のひとつ。
◆ 「回します」
作ったデータや仕様を、チーム全体が使える状態にすること。
「ビルドに入れる」「共有化する」というニュアンス。
「じゃあこれ回します」は、「今日からこいつも仲間入り」の意味。
◆ 「ヘルスチェック通ってるのにスレッド戻ってない」
これは、
・外から見ると「元気そう」に見えている
・でも中では処理が止まって帰ってこない
・結果、ログが溜まり続ける
という 『見た目は生きてるけど、実際は死んでる』状態。
気づいた瞬間、胃がキュッとする。
◆ リーク(Memory Leak)
本来は使い終わったメモリを「返して片付ける」必要があるのに、
それをしないせいで メモリを使いっぱなしにしてしまう状態。
使い終わった皿を洗わずにシンクへ積み上げ続けるようなもの。
時間が経つほど処理が重くなり、最悪システムが止まる。
開発者はこれを見つけると、だいたい静かにため息をつく。
◆ ヒープ(Heap)
プログラムが「必要なときに、必要なぶんだけ」
メモリを借りて使うための 大きな作業スペース のこと。
使い終わったら 元に返す(片付ける) のがルール。
返すのを忘れると、作業スペースが物で埋まって身動きが取れなくなる。
この「返し忘れ」が先ほどの リーク に直結する。
◆ 「ログは静かに肥大化している」
派手な警告もエラーも鳴らさず、
ただひたすらにログファイルだけが大きくなっていく現象。
『静かに狂う』系バグの代表選手。
気づいた時には既に影響範囲が広がっていることが多く、
大抵「うわ……」と声が漏れる。
◆ 「……これは、やってますね」
現場でトラブルを見つけたときに使われる、独特の共通語。
直接的に「ミスです」「誰かの作業ミスです」とは言わない。
でも、全員が心の中で理解している。
意味としては──
「だれかが何かをやらかしているが……
ここで犯人探しをしても生産性がないので、とりあえず落ち着いて対処しましょう」
という、大人の知性と諦観が混じったやさしい言い回し。
いわば 「戦場の合言葉」。
「責めるな、まず直そう」の精神がこもっている。
◆ 「ローカルで一回まわす」
本番のサーバーに出す前に、自分のパソコン環境で動作確認しておくこと。
現場ではよく
「とりあえずローカルで一回まわしますね」
的な言い方をする。
この「とりあえず」に、何人の夜が救われてきただろうか。
そして何人の夜が終わらなかっただろうか。
◆ ゲームクライアント
開発中のゲームを 実際に『プレイヤーとして動かせる』状態にしたもの。
開発ツールやエディタではなく、
「普通に遊んだらこう見えるよ」という画面と操作が出てくる方。
バトルの感触、移動の違和感、UIの押しやすさ、スキルのテンポ——
『触ってみないと分からないこと』を確認するための窓口。
◆ 「エリアを踏み抜き」
テスト確認のために、ゲーム内のフィールドを
めちゃくちゃ高速で駆け抜けること。
普通のプレイでは到達に数十分かかる道のりを、
デバッグキャラだとものの数秒で突破する。
開発者はこれを見て「はいはい最強最強」と言いながら笑う。
でも内心すごく助かっている。
【すべてに共通する真実】
バグは派手にわかりやすいものより、静かに潜んでいるもののほうが怖い。
。*❅┈┈┈┈┈┈┈┈┈┈┈┈❅*。
最後までお読みいただき、ありがとうございました。
ゲームをプレイする時、プレイヤーの目に映るのは画面だけです。
けれどその背後には、無数の判断と修正、試行錯誤、
そして小さな勇気が積み重なっています。
この作品は、そんな「裏側の戦い」そのものが、
ひとつのドラマになり得ることを示したいと思って書きました。
徹夜で迎える朝日は、時に勝利の証であり、
時に「もう二度と味わいたくない夜」の終わりでもあります。
それでも開発者たちが前に進めるのは、
作り手の想いが、必ず誰かに届くと信じているからです。
もしこの物語を読み終えたあと、あなたの心にほんの少しでも、
「ゲームの裏側にも、確かに人がいる」
そんな実感が残っていたなら、本作にとってそれ以上の喜びはありません。
読んでくださって、本当にありがとうございました。
本作は、拙作
『異世界で待ってた妹はモーニングスターで戦う魔法少女(物理)だった件』
の制作過程で生まれた、ささやかなトリビュート作品です。
もしご興味を抱かれましたら、こちらもぜひお楽しみください。
『異世界で待ってた妹は、モーニングスターで戦う魔法少女(物理)だった件』
https://ncode.syosetu.com/n5538ky/




