グローバル変数と永久ループを失礼して

専門学校でプログラムを学んだ時、紙にフローチャートを書いてC言語に落とし込むMS-DOSのコマンドを呪文書のようにノートに書き取った通りに打ってコンパイラを起動する。そんな授業を週に数回、半年ほど受けた。

そして課題はmain関数からサブルーチンひとつふたつほどで完結するものばかりで、高専から来ていた谷周太郎といつも競争で課題をしていた。だいたい谷が勝つ。谷が勝つと残りの学生は何人か谷のデータをフロッピーにコピーして名前を変え、平然と教官に持っていく。だから、負けるときというのは谷の次に書いていても4番目5番目になることが多かった。

それはさておき、指導として終了条件のないループとグローバル変数は極力使わないということが周知されていた。出来ない子は最後の手段として使って、後の方に課題を出す。だが大橋遼平は結構速いのだがグローバル変数と永久ループで課題を解決し、別室に呼ばれて説教を食らっていた。外に漏れる声を聞いていたら「先生そんなん言うけど」と食い下がっていた。

それでプログラム授業では優等生だった俺だが、卒業制作にはゲームソフトでなくコンピュータグラフィックスで取り組むこととしていた。面白いからただただ夢中で取り組んだ。

ただ映像芸術としてその道で仕事がある人というのはその当時は雲の上。プログラマなら職が見つかるということでそうしたが、バイトしていたメディックス社でゲームグラフィックの担当はCGというよりデザイン学校を出た美術さんのみでフォトショップでの手描き1枚絵でアニメーションや3Dは会社的に手を出せないでいた。

それもさておき、自分でゲームを作ろうとしたら1枚絵と文字で進むアドベンチャーがせいぜいで、アクションゲームとかシューティングゲームは作れないでいた。家でネットを介してゲームシステム開発キットをダウンロードしてシューティングを作ってみたことはあるが、キットがないと作れない。つまり模型で言うとプラモデル組み立て状態でフルスクラッチにずっと憧れを抱いていた。

会社での仕事にも飽きてゲーム会社を夢見ていたある日のこと、転職活動としてゲームシステム開発キットで作ったゲームをキットで作ったと明かして作品として2社から面接を受けた。そのうちの片方にどうにかこうにか紛れ込むと、そこはもう会社と読んでいいのかどうか、会社っぽい部屋の一角とゲーム筐体からむき出しのコードが絡まって作業机のパソコンとつながっている現場で、下っ端としてスクリプトを書く仕事が与えられた。

俺が組みたいのはスクリプト部でなく子供の頃からゲームがどう動いているか知りたいコアの部分だと、勝手にLANでつながった技術チーフのパソコンにアクセスした。

そこはなんと!

グローバル変数と終了条件のないループの開始の宣言であった。

それから俺はまた家でプログラムに没頭して自作のゲームを何本か作ってネットで売ってみた。さらに人の紹介で大手ゲーム会社の下請けのオフィスに入れてもらった。その現場は仕事がすべてソフト化されており、机にはひとり1台のパソコンと2画面の液晶パネルが全員に与えられ、誰もが画面に向かって何かを打ち込んでいる。俺はそこで仕事中にお茶ではなくペットボトルのコーラを飲んでゲップをして怒られた。

さらにそれからネットで売ったゲームが誰の作であるのか、俺がひとりで全部作ったと言っても誰にも信じてもらえない状態になって困惑していた。画像の一部に市販のゲームから画像をパクって使ったようなやつは著作権法侵害の問題で訴えられたりしたらニュースになるのかもだが、そうでなくそっとサーバーから消されて何の連絡もないということもあった。

ただ、グローバル変数と永久ループで作ったゲームは開発が滞っている。飽きたとか諦めたとか嘘だったとかではなく、作った自分も時間が経つとあの時の狂気は何だったのかと思うようなプログラムでそれ以上手の加えようがないのだ。

そこで再び学校で習ったようにグローバルと永久ループを無くした設計でゲームを組み直そうと試みた。

定数の宣言やサブモジュールの組み込みであっという間に1日が過ぎ、しかし全体像は先に作って掴んだはずなのに、グローバルと永久ループで書くのと違って遅々として進まない。

それはもう、そうやって作ろうとしたらそれでひとりで全部作ったなんて信じられないのも無理のない話だろうなと分かるようになった。結局人はひとりで把握できるもの以外のものをひとりで作ることは出来ない。

ゲームを作る時は大量のグローバル変数にコード中の何処で何がメモリされているかで頭がいっぱいで、小学生になる姪っ子が1足す1が2と習ったのに、そうではないケースがあるとか言うと「きょーすけ、いちたすいちもわからへんねんって」と笑われるほどの始末である。

学校の先生はゲームをしない人でパソコンは実務処理に使うべきであると主張して「放っといたら良いやん、そんな名プログラマー。迷惑の迷と書いて迷プログラマーなんやから」と語っていたなぁとふと思い出すのであった。

学校にプログラマの先生は二人いて、教えてもらった先生には連絡がつかないが、もうひとりの先生には仕事でお世話になたことがあり連絡がついた。将棋コンピュータの大会については「頑張ってください」と言葉を頂いたが、考えたら教わったことの殆どを無に返したかも知れない。明後日に大会を控えて、なんとなくそんなことを思い出した。