若い頃の思い出・2000年大阪駅前は向かいが風俗ビルの独房ホテルと京都のカップラーメンと…
象がいないだけで私の実家近くと同じだ
向こうからメールで問い合わせてくれたおかげで知り合ったSさんは、世界中の誰もが知っている家電系ゲーム機メーカーの企画職であり、私と意気投合して一緒にゲームを作ろうという話になった。
前世紀末、前年(1999年)に横浜のカンファレンスにて、まだ何もできていないゲームを制作中であるとぶち上げた結果、その翌年2000年には京都で行われるカンファレンスにて進捗を報告しなければならなくなった。私と姉は前日に飛行機で関空へ飛び、そこからバスで大阪駅前までやってきた。仕事で忙しいSさんは後から来るという。ホテルは私が予め予約しておいた。当時はまだネット予約が一般的ではなく、「じゃらん」とか、旅行雑誌を見て、大阪駅前で一番安いホテルを予約した。当時、たしか1泊3300円だった。駅前なのにこの安さ!ここしかないと予約したのが間違いであり、行ってみると向かいが風俗ビルの剣呑な場所にそこは位置していた。
Google Street Viewでどうぞ。
大阪に行ったのは初めてであり、しかも夜にバスで移動し、JR大阪駅駅前で放り出されただけで土地勘などよく分からない。地図を見ると、予約したホテルは確かにここだが、駅前繁華街というか歓楽街というか、東京でいうと歌舞伎町のど真ん中にホテルがあるような気がして、夜、移動するのが怖かった。兎我野町といえば大阪に土地勘がある人はわかるだろうか?地元ではないので、兎我野町の隣りにある堂山町が大阪のゲイタウンだということは知っている。
部屋も今の法華クラブ大阪は建て替えでもしたのだろうが、当時は本当にボロいホテルであり、宿泊客も学校の運動部の合宿とか、そういう客ばかりだった。部屋も自分で布団を敷くような畳敷きの和室で、そりゃあ駅前で3300円なのだから、こんなもんだろうと後で納得というか後悔したのだった。遅れて到着したSさんは開口一番「怖くなかった?」と言った。
姉は(このホテルでは)上等な洋室に通し、私とSさんは独房で男同士の合宿をしていた。私はプレゼン資料はCD-ROMに焼いて用意してきたのだけど、本業が忙しいSさんは前日にホテルでノートPCを出しながら、資料を作成していた。思い出すのは、窓を開けると向かいに風俗ビル、Sさんの「社用」の薄紫色のノートPC、そして14インチCRTには、どこかタイの象使い村の様子が写っていた。それを見てSさん「うちの三重県の田舎も、象がいないだけでここと一緒だよ」と呟いた様子が今も思い出される。
翌日、どこかで適当に朝食を取り私たち3人は電車で京都へ移動した。京都駅から地下鉄に乗り換え、どこか忘れたが随分立派なカンファレンスホールに到着して緊張したものだ。何せ私はスティーブ・ジョブスではないどころか、人前で話などしたことがないただの引きこもりだったのだから。それがこんな大きなホールで、人前で、200インチくらいのスクリーンに自作ゲームを大写しにしてプレゼンをかますなどという経験はかつてなかった。
カンファレンスは午前中に始まり、私たちの出番は午後だった。お昼に外に出て、どこか駄菓子屋のような曖昧な店でカップラーメンを2人で食べながら(私、無職なのでホテル代や昼食代にお金をかけられないのです)「Sさん、僕はあんな立派なホールでプレゼンするなんて緊張してきました」と言ったら「立派なホールだろうが工事のオッサンが作った箱なんだから気楽にいこうよ」と返事をしてくれた。
午後、おそらくそこは普段、京都大学が学術カンファレンスなどを主催する時に使われるであろうホールの、ステージの、その壇上に私は立ち、頭の中が真っ白になって言葉もとぎれとぎれに話しながら、なんとか自分の役割を果たし終えた。
Sさんは多忙のため、すぐに東京へ帰った。私と姉は京都でもう一泊したのだけど、京都のホテルは今ではもう名前も忘れてしまったけど、一泊5000円の割には綺麗で新しく、大阪の「独房ホテル」とは天と地の差だった。
軽く京都観光などした後、京都から高速バスで伊丹空港へ向かった。ゲームつながりということで、車窓から任天堂の事業所が見えたのが嬉しかった(あそこが本社なのだろうか?)。
件のゲームは2000年の京都カンファレンスでは進捗率30%が良いところであり、私はC++なぞ何も分からないも同然だった。それから急いでゲームの中身をでっち上げ、フルスクラッチではとても終わらないので、アリスソフトのSystem3.5などを利用しながら作っていた。とはいえゲーム内スクリプト言語は自作し、件のSystem3.5は画面遷移時のエフェクトとして利用していた。それはlib形式のバイナリで、ヘッダファイル“.h”のメソッド名を見て、それがどのようなものなのかをトライ&エラーで試していた。
画面のキャラクターと背景の重ね合わせ処理には、アルファチャンネル合成を使っていた。当時のアドベンチャーゲームでここまでやったゲームがあっただろうか?セガ「サクラ大戦」は、単に透過色を1色だけ指定して色を抜いていただけのように見えた(だからエッジのジャギーが見えた)。私が作るゲームは、キャラクター画像にはPNGを採用し、アルファチャンネルを持てるというその特徴を活かし、透明色を0–255階調で指定する処理を書いた。ここをC系の演算ではなくビットシフトで実装したおかげで、合成処理を高速に実行できた。滑らかな描画を実現するために、VRAMに画像を転送して画像重ね処理を実行、RAMに転送して合成するルールも覚えた。
しかし、アリスソフトがSystem3.5の仕様をユーザーに対してオープンにしたため、LinuxやBeOSなどを対象に、ユーザーの手によってSystem3.5の移植が行われたケースも存在する。
https://ja.wikipedia.org/wiki/System3_(%E3%82%A2%E3%83%AA%E3%82%B9%E3%82%BD%E3%83%95%E3%83%88)
私が使ったのはBeOSへの移植版だ。
その後はC++のメモリ管理が良く分かっていなかった私のために、実は私と同じ市に住んでいたことが後から発覚した某氏を自宅に招き、デバッグをしてもらった。後から知ったのだけど、某氏はBeOSが正式に日本語をサポートする前に、CannaだかWnnだかを移植したコミュニティの有名人だった。偉い人にデバッグをさせたもんだ。
そうして、どうにかこうにかゲームは完成した。その時は大勢の興味はジャン=ルイ・ガセーのBe社ではなく、ジョブズ率いるNeXT社がAppleに買収されたというのでMac OS Xの方へ移っていた。
このゲームがどこかの雑誌に収録されたことはないけど、記事自体は雑誌に乗ったし、前年のPC雑誌には、私がBeOSの習作のつもりで作ったブロック崩し的なゲームが付録CD-ROM(そういうものが当時あったのです)に収録された。
しかし私が当時、Objective-Cを勉強していたら、その後の職にありつけただろうか?Objective-Cプログラマーが脚光を浴びるのはiPhone登場まで待たなければならなかったからだ。当時、BeOSでC++を覚えられたのは僥倖だった。そのおかげで私は数年後、PC雑誌の自分の事が記事になった部分を切り抜いて会社面接に臨み、IP電話の交換機サーバーの開発職を得ることができたのだから。
ちなみに21世紀初頭のObjective-Cプログラマーといえば、常駐先でお会いした某氏はNeXT Computer System(一式400万円)のデッドストック品を個人で買い求め、Objective-Cの専門家になったのだけどNeXTの仕事などないのだからMacのデバイスドライバなどを作っている、という人くらいしかいなかった。ちなみにそこ、私もデバイスドライバの開発経験なぞ無かったのですぐに逃げました。
こうした経緯でニートを脱出した私は、その後16年同じ会社で勤め、一昨年末に退職し、現在は成り行きで自営業のソフトウェア・エンジニアをしている。ニート脱出のひとつのサンプルにしていただきたい。