Module11.ビルドミス
ここ2話ほど、マニアックな用語が出てきて読みづらいかもです。
すんません。
その夜の月はとてもきれいだった。
満月で快晴、青白い月は冴え冴えと輝いて、いつもは薄暗い会社までの道を照らしていた。
打ち上げという名の飲み会は22時に解散した。
二次会ということで、開発者グループからはさらに飲み、悠司らテスターたちからはカラオケの誘いを受けたが、俺はどちらも辞退した。
飲めないから、ということもあったが、思い出したことがあったのだった。
(やっべー)
チーフプログラマである俺は、ソースコード、つまりプログラムを構成するファイル群の管理もしている。
それらの人間が読める形で書かれたファイルを、コンパイル、つまりコンピュータの言語に翻訳し部品にして、さらにそれらを組み上げること、また組み上げられたものをビルドという。
ベータリリースのビルドからは、開発ブランチには含まれているいくつかの特殊なコードが取り除かれることになっていたのだが、うっかりして残したままにしていたことを思い出したのだった。
ベータリリース、つまりシステムの一般公開は明日昼の13:00。
そのための準備は朝の10:00からの予定になっている。
それまでに、正しいビルドに交換しておかなければならない。
スクーターを会社の駐車場に置いてきたこともあり、俺はついでにその作業をすることにしたのだった。
/*/
「あれ?誰かいるのかな?」
会社に入ろうとして、ビルを見上げた俺は、俺たち開発部隊の部屋の明かりがついていることに気が付いた。
確か全員打ち上げに参加して、その大部分は二次会になだれ込んだはずだが…
俺は首をかしげた。
誰か忘れ物でもして、取りに来たのか?
社員証兼用のカードキーで入り、その部屋に向かう。
全員退出時には必ず施錠するはずの開発部屋の鍵は開いており、不審は募った。
開けて覗き込んでみるが、誰もいない。
「誰かいるのかー?」
明かりが煌々とつきながら、しん、とした部屋には動きはなく、俺は頭を掻いた。
消し忘れに閉め忘れか?無用心な…
まあ、いないものはしょうがない。
当初の目的を思い出して、自分の席に座り、マシンを起動する。
黒いアルミボディにデュアルコアプロセッサ、3Dグラフィックボード搭載の自作マシン。
去年、前任のチーフプログラマが一身上の理由で退職して、お鉢が俺に回ってくることになったときに、せめてこれくらいはとわがままを言って揃えさせてもらったパーツでできている。
自慢のマイマシン、名づけてBLACK-RX!
重たい3DCGもさくさく動く、巨大プロジェクトのビルドも一瞬さ♪
もちろん、2つのマルチディスプレイで、一方にクライアント(ゲームの画面)を立ち上げながら、もう一方でサーバ用のターミナル(端末)を表示することができるんだぜ。
へいへーい♪
…いや、すまん。ごほごほ。
グラン・ロウレルは、オーソドックスなサーバ・クライアント型のシステムになっていた。
つまり、サーバマシン上でプレイヤーのステータスや位置といったデータを集中的に管理するサーバプログラムと、プレイヤーのパソコン上でそれらの情報をグラフィカルに表示し、プレイヤーからの入力を受け取ってサーバプログラムと通信をおこなうクライアントプログラムという、標準的な構成である。
サーバプログラムの実行を外部に委託するというクラウドサービスの利用も検討されたが、剣氏が書いたコアである状態管理モジュール部分の移植が難しい、ということでお流れになった。
そんなに難しいのん?と、該当箇所のソースコードを覗いて見たのだが、アセンブラという機種依存性が高く移植しにくい、その代わり処理速度を速くすることのできる言語で書かれていたので納得した。
俺は、端末プログラムを起動すると、サーバマシンにログインした。
「make gl_beta、と」
ちょこちょことエディタで設定ファイルをいじり、ベータリリースから不要な部分を取り除いてから、ビルドを開始する。
まっさらの状態からの、いわゆるクリーンビルドなので、ちょっと時間がかかる。
俺は、ログが流れていくのを眺めながら、ふと思い立って別の端末プログラムを起動した。
takuro@gl_srv$ who
と、このサーバマシンに誰がログインしているか調べるコマンドを打ち込む。
画面に出力される、俺、ともう一人がログインしているという情報。
mtsurugi pts/0 20xx-0x-xx 22:02 (pc01.gl.xxx.co.jp)
takuro pts/1 20xx-0x-xx 22:34 (pc03.gl.xxx.co.jp)
takuro pts/2 20xx-0x-xx 22:42 (pc03.gl.xxx.co.jp)
そこには剣氏のユーザ名が表示されていた。