趣味のはなし #02 - ゲーム制作
コンピュータのソフトウェアに興味を持ち、「ビデオゲームを作る」という趣味に没頭した当時のお話をしてみたいと思います。30年超の「私のゲームプログラマ人生」総まとめのような記事になりました。
小中学生の頃にハマっていた電子工作とシンセサイザー、そしてマイコンに興味を持った話(#01)の続きになります。
一部内容が重なるところもあります。
とても長い記事ですので「目次」から気になったタイトルだけ拾い読みしていただければ……と思います。目次からして長いので「すべて表示」をクリックしてご覧ください。
「遊んだことあるぞ!」というタイトルがあれば嬉しいですね。
※約4万1000文字
※タイトルに「■」が付いているものがリリースされたゲーム。「□」は研究開発やゲーム開発に関連するツールや資料等。「☆」は原稿執筆など。
※本文中の G社 = GAME ARTS / B社 = Bits Laboratory
はじめに
アマチュア時代に作った作品だけでなく、本職時代の作品も一緒に時系列に並べました。
個人的に「自分が関わった作品を1ページにまとめた形で閲覧できる記事」が欲しかった……ということもあります。何せ自己肯定感が低い人間ですから、こうした記事を自分で読み返しては「うん、自分、よく頑張ったな」と思いたいのです。
本職時代の作品もメインプログラマとして関わったものが多かったため、他人の仕様通りに作るのではなく、ゲームのアイデアからプログラムの仕様まで自分で好きに考え実装したものがほとんどでした。
そういう意味では趣味の延長と言えなくもありません。
(こんなことを書くと怒られちゃうかな……)
中にはそれができずにストレスが溜まった作品もありますが……。
『PCGディグダグ』と『VEIGUES』に関しては、閉鎖してしまった四半世紀前の私のWebサイト(上図)で紹介していたものをベースに加筆修正しました。例えば「2000年当時の“現在”」の話は、“今”読むと古すぎて不自然に思える部分がありましたので書き換えました。1990年以降の話は新規に書きました。
当時のインターネットは、ダイヤルアップ接続からADSLなどの常時接続に移行する過渡期で回線の速度も遅かったため、写真やスクショ等の画像に関してはサイズをかなり縮小して紹介していました。
現在ではその点については気にする必要がなくなりましたので、大きく鮮明な写真を使い、ところどころに動画も使い、挿絵としての資料も増やしました。
なお、題名の『ゲーム制作』は、初め(より正確に)『ビデオゲーム制作』としていました。日本では『テレビゲーム』の方が馴染み深いとは思いますが、限定的ですし、当記事はPCや携帯端末用の話も含まれていますので、ただの『ゲーム開発』に落ち着きました。
文脈からボードゲームやカードゲーム、スポーツ等の広義の『ゲーム』は除外して読んでくださるだろうと思ってのことです。
本文中に、私の作品や私自身が掲載された雑誌の写真を挟んでおりますが、挿絵以外の意図はございません。
どれも古い雑誌ですが、自分に関連する記事が掲載されたものだけ、付箋を挟んで保存しています。
■1982年:ゲーム電卓 - デジタルインベーダー
ターゲット:PC-8001+PCG
言語:N-BASIC+Z80マシン語(ハンドアセンブル)
公表媒体:月刊I/O別冊 マイコンゲームの本 [2] 掲載 / COMPAC製品化
『PC-8001+PCG8100』を購入して初めて公に発表したゲームです。
カシオの『ゲーム電卓Part1 - デジタルインベーダー』を再現してみようと思い、私が高校1年生の頃に作ったものです。
電卓の表示面の左端にある照準を、右から迫りくる数字のインベーダーと同じ数字に合わせて打ち落とすゲームです。
チラシ裏面の説明を読みながらルールをプログラミングしました。
もちろん実機も持っていました。なぜか2台も。
初めて雑誌に投稿し、『マイコンゲームの本 [2] 』に掲載されました。
当時は小さなゲームプログラムをいくつか作り、それを親しい友人に配布して楽しんでいました。このゲームは、そんな小さなゲームプログラムの一つでしたが、遊んでもらったときに評判が良かったため、色気を出して投稿しました。
当時、定期購読していたマイコン雑誌は『RAM』、『ASCII』、そして『I/O』。その中でも一番ホビー色が強かった、工学社の『I/O』誌に投稿しました。
まさか数年後にココでアルバイトをすることになるとは思わず……。
このプログラムはカセットサービスで販売されました。
原稿料のほか、毎月少額ながらも印税が入ってきました。後にフロッピーディスクドライブやアセンブラを購入するための資金になりました。
そして「これは “おいしい” かもしれない……」と、ゲーム作りを本格的に始めるキッカケにもなりました。
作りはじめた当初は、すべて『N-BASIC』で書いていました。
表示される数字は、得点を含めてすべてPCGで置き換えられたカタカナフォントを使っていたため、単純にPRINT文によって計算結果を表示するわけにはいかないと考えていました。
思い出すだけでも恥ずかしいのですが、何やら複雑な文字列の演算をリアルタイムに行っていたようです。BASICでは遅くなってしまうため、部分的にマシンコードに置き換える必要性を感じました。
Z80の勉強を始めるキッカケになった出来事です。
本来ならば、内部計算はすべて整数の変数を使い、結果を表示する段階で改めてカタカナのキャラクタコードに変換すれば良いものを、経験不足の当時の私には思いつかず、かなり回りくどい書き方をしていたようです。
アセンブラは持っていなかったので、紙と鉛筆を使ってハンドアセンブルしました。
「ロード命令だからこのビット、Aレジスタだからこれとこのビットを……」
という具合に、指を折りながら『Z80』のコードを書いていました。当時のプログラムリストも残っていますが、いやはや、ホント恥ずかしいです。
自分が書いた原稿が初めて活字になる喜びを知ったのもコレが最初です。
YouTubeで動画を見つけました。
雑誌のプログラムリストを打ち込んで(または購入して)遊んでくれた方が本当にいたんだなぁと、今さらながらに嬉しく思いました。
実機のものより音が歪んでいますが雰囲気は伝わると思います。
【追記】おンおンさんからプレイ動画をいただきました!
こちらが本来の音です。
■1983年:PCGディグダグ
ターゲット:PC-8001+PCG
言語:Z80マシン語(DUAD-PCアセンブラ)
公表媒体:2000年当時の自分のWebサイトで配布
公開した自作ゲームの2作目です。
『ディグダグ(DIGDUG)』は、1982年にナムコさんからリリースされたアーケードゲームです。
プレイヤーは地中に穴を掘り、2種類のモンスターを誘導して岩の下敷きにしたり、モリを投げて突き刺し、ポンプで膨らませて破裂させる……という、割と戦略性の高いアクションゲームでした。
ぱっと見、当時のパソコンではありえないタイトル画面のフルカラーっぽいキャラクタデモを作りました。
上の画面は『PC-8001+PCG』で動いています。
この疑似的なキャラクタの色付けを試したことが、次回作『ダスティーワールド』を作るキッカケの一つになりました。
本作は、ナムコさんの同名アーケードゲームを移植したものです。きちんと完成させてI/O誌に投稿して、掲載直前まで話は進んでいました。原稿も書きあがっていました。
しかし、ちょうどこの頃、ソフトウェアの著作権が大きな問題になりまして、「オリジナルに似ているので掲載(販売)できなくなりました」という連絡をいただきました(1981年:米国でソフトウェア保護の著作権法施行~1986年:日本でプログラム保護を目的とする著作権法改正)。
上の写真は、名前やキャラクタ、音楽を変えて何度か再投稿した原稿ですが、結局全部ボツになりました。
まぁ「似ている」とは言ってもPC-8001での移植でしたから、たかが知れていますが……今思えば、当時パソコン版のソフトも販売していたナムコさんに直接持ち込んでいれば、“もしかしたら”世に出ていたかもしれません。
あと2~3ヶ月早く発表していれば……と非常に悔しい思いでした。
仕方がないので、PC-8001ユーザーの親しい仲間だけに配布しました。
みんなとても気に入って遊んでくれたことが、せめてもの救いです。
その後、2000年代に開設していた自分のWebサイトで、エミュレータ用のイメージを公開しておりました。
『ディグダグ』は、ナムコゲームの中で最もお気に入りのゲームでした。
学校帰りに毎日ゲームセンターに通っては100円玉をつぎ込んでいました。
で、どうしても自分のPC-8001で作って遊んでみたくなったのですね。
PC-8001版の『ディグダグ』は、すでに何種類か販売されていました。
大好きなゲームですから当然買いに走ります。
しかし、そのどれもが自分では満足できないものでした。
何故かと言うと、PC-8001版のどれもが『縦横比』と『解像度』の問題から、穴を掘って作れる通路の数が少なく、また、隣接する通路を掘ると仕切りがなくなってしまうからです。
このゲームは、通路と通路の間の細い壁を通して『銛(もり)』を突いたり、逆に『ファイガー』の火炎攻撃を受けてしまったりと、そういう部分が醍醐味なわけで、これができない『ディグダグ』は、「もはやディグダグではない違うゲーム」になってしまうのです。
当時のパソコンの解像度と色数では、本物のゲーム性を再現することはとても難しいことでした。
でも無いものは作る!
自分が満足できるPC-8001版ディグダグを目指そうと、開発が始まりました。できる限り「もどき」ではなく、ゲーム性を含めて移植したかったのです。
隣の通路を掘っても「空白」にならずに壁ができるようにするには…?
このことばかり考えていました。
160×100というPC-8001のグラフィック解像度では、通路の数を少なくするか、壁を諦めるしかありません。
あるとき、PCGを使って実現する方法を思いつきました。
最初は「ベタ」の土のパターンを定義したキャラクタを敷き詰め、穴を掘るとスペース(空白)ではなく、掘った方向別の通路のキャラクタに置き換えるわけです。
縦や横、直角に曲がった時、壁ができている通路を貫通した時など、さまざまなケースに対応するキャラクタ差し替えルールを考え、実装していきました。
プレイヤーとモンスターの移動は、1キャラクタ単位ではなく半キャラクタ単位です。半キャラクタずれたパターンも同時にPCGに定義してあり、交互に切り替えながら「なるべく滑らかに見えるように」注意して作りました。
このゲームの移植には1年もかかってしまいました。
作っている当時は高校2年生。
一所懸命、学業に専念していたものですから……(ウソです)
岩やモンスターの初期配置や穴の形状もオリジナルに忠実に再現しようと思いましたので、ゲームがうまい友人にお金を渡してプレイしてもらったり、ゲームセンターにカセットレコーダーを持ち込んで音楽を録音したりと、かなり気合いが入っていました。
各ステージで「穴の初期配置」を壊さないようにプレイしてもらいました。
ノートに書き写す間、最後の一匹をずっとポンプで膨らまし続けてもらいました。今なら携帯カメラを使って一瞬で済むことですが、当時は涙ぐましい努力をしていました。
左が私が作ったもの、右が本物です。
並べてみて気付きましたが、左の岩の位置が1マスずれていますね。
右下の通路も1マス短い……。
同じように掘り進めても、微妙にタイミングが違うようです。
まあこれは許してほしい……。目コピですし!
ドット絵も自分で描きました。
BGMを録音したカセットテープは家に持ち帰り、妹のエレクトーンを借りて耳コピで楽譜に直しました。
電波新聞社のマイコンBASICマガジン別冊『ナムコ・ゲームのすべて』とか『ナムコ・ビデオゲーム・ミュージック・プログラム大全集』が発売されたのは、ずっと後の1985年ですから、当時は耳コピするしか手段がなかったのです。
PCGには単音(後期バージョンは3音)のサウンド回路が付いていましたから、これで音楽を鳴らそうとするわけですが、ディグダグってBGMもコミカルでかわいいんですよね。
メロディー・ラインとベース・ラインのハーモニーも捨てがたい……。
というわけで、PCG用のサウンド・ドライバを書いて、メロディーとベースを交互に鳴らすことによって、疑似的に2重奏に聞こえるようにしました。
音楽は耳コピ、キャラクタの動きは目コピ。
常にそれらをPC-8001で実現する方法を考えていました。
授業中に思いついたことをノートにメモしながら……。
本作の動画です。
四半世紀前に公開したプログラムをダウンロードして遊んで下さった方をYouTubeで見つけて大喜びしました。この動画は、自作ゲーム部分だけ切り取ったものです。
元動画を上げていた方はXのフォロワーさんでしたので、後にいろいろやり取りしてお世話になっております。
以上、簡単な紹介でしたが、当時の思い入れが少しでも伝わりましたでしょうか?
とにかく『ディグダグ』大好きなんですよ。
あ、そうそう、タイトル画面からゲームスタートしたとき、下の「namco」という表示が私の名前に変わるんですよ(笑)
■1984年:ザ・ダスティ・ワールド
ターゲット:PC-8001+PCG
言語:Z80マシン語(DUAD-PCアセンブラ)
公表媒体:pio 1984年10月号掲載
自作ゲームの3作目は『THE DUSTY WORLD』というオリジナルゲームです。タイトルは「ホコリだらけの世界」という意味です。
高校3年生の頃に作っていたゲームですが、掲載された1984年10月には大学生になっています。
プレイヤーは水色のホコリ星人(という設定)です。
敵キャラは一台の掃除機です。
プレイヤーが通った所には水色のホコリが置かれます。
それを敵キャラである掃除機が吸い取ってしまいます。
プレイヤーはホコリ(星人)を操作し、掃除機に吸い取られる前に一定面積以上をホコリで埋めつくさなければなりません。
『逆ドットイート型ゲーム』で通じるでしょうか?
掃除機は、一定数のホコリを吸い込むと、画面中央のダストボックスに捨てに行かない限り新しいホコリを吸い取れなくなります。
このときがチャンスです。
プレイヤーは、掃除機に捕まるとホコリの毛皮が剥がされたかのように目だけになってしまいます。このとき、三回までならダストボックスに飛び込み、吸われてしまったホコリを取り戻すことができます。
また、ランダムに移動しているバケツにぶつかると、プレイヤーも掃除機も一定時間動けなくなります。
ダスティワールドの画面は、通常のPC-8001の描画とは少々異なる方法を用いています。1画面を構成するための描画エリアを2枚持っており、それぞれ異なる色とキャラクタパターンを描画し、この2枚を高速に切り替えることによって疑似的にドット単位の色付けや中間色を実現しています。
『PCGディグダグ』のタイトル画面でドット単位の色付けを試したことが本作を作るキッカケの一つになっています。
このゲームは、工学社の『PiO』1984年10月号に掲載されました。
「今月のPiOなゲーム」にも選ばれました。
(何がPiOなのかイマイチ分かっておりませんが!)
前作もそうですが、ペンネームではなく本名で出ています。
16年前の出来事以来、本名が嫌いになってしまい、一時期『しろくま』というペンネームで活動すればよかったな……と後悔していましたが、今は色々吹っ切れて、本名での活動を増やしています。
ここ『note』でも本名を含んだ名前にしています。
GoogleのAIモードで「dusty world 8001」を検索したとき、開発者の項目を見てのけぞりました。「本名とXアカウントが紐付けされてるぞ…💦」と。
少々技術的なことにも触れておきます。
PC-8001は、ドット単位に色を変えるためのグラフィックVRAMを持っていません。テキストVRAMしか搭載されていないのです。本来であれば80文字×25行の半角英数字とカタカナしか表示できないのです。
文字色は1行あたり40バイトのアトリビュートを書き換え、1文字単位でしか切り替えることはできません。さらに40バイトのアトリビュートは、一回のカラー変更につき2バイト(色と桁数の情報)を必要としますので、1行につき20回という制限もありました。
PC-8001のCRTコントローラ(CRTC)は、まずテキストVRAMに書かれた文字コードを読み、コードに対応するビットマップの文字フォントをキャラクタジェネレータROMから取り出し、同期信号に合わせてモニタに送りだしています。
そのCRTCの仕様を調べてみると、このテキストVRAMの場所はメモリの好きな場所に移動できそうです。そこで、もう一組テキストVRAMの領域を作ってしまい、CRTCに与えるVRAMの先頭アドレス情報を高速で切り替えることによる疑似的な二画面合成を試みたわけです。
(1) F300h~FEB8h の 3KB
(F300h+0BB8h = FEB8h)
この二つの領域を高速切り替え
(2) DC00h~E7B8h の 3KB
(DC00h+0BB8h = E7B8h)結果は大成功でした。
単色のキャラクタを色替えして異なる領域に書き込み、それを高速に切り替えることによってドット単位に色が付いているような効果が得られました。ちらつきますけどね。
前作「PCGディグダグ」は、約一年の制作期間がかかりましたが、ダスティワールドは三ヶ月ぐらいで完成しました。
Z80のマシンコードに身体が慣れ、PC-8001をコントロールするためのライブラリを整理したからだと思っています。
『DUAD-PC』というFDベースのアセンブラに慣れたことも大きな要因だと思います。
キャラクタのデザインも私一人で考えたものです。
グラフィックエディタのようなツールはありませんでしたから、方眼紙に描いたドット絵を見ながら直接16進数で打ち込んでいました。
例えば上の掃除機の右眼部分の1行目は、黄色いドットが「11111000」のように並んでいますので、16進数では「F8」になります。
すべてのキャラクタについて、このような地味な変換入力作業をしておりました。
作業が終わる頃には、ドット絵を見ただけで16進数が、逆に16進数の並びを見ただけで絵が浮かんできたほどです。
フローチャートも、ほとんど授業中に内職して書いていました。
四角の枠の中には具体的なコードを書くようになってしまい、流れを考えることを通り越して、頭の中ではすでにこのフローで動いていました。
学校から帰宅して、このまま打ち込むと……一発完動!……しないこともありましたが、だいたい動いていました。
これは画面のレイアウト用紙にデモの動きを記したものです。
実際にはこんな動きをします。
PCGをオンにすると、定義されたグラフィックに変わります。
エミュレータで動かしたときの動画です。
(2023年7月10日に公開したもの)
最後に……
このゲームのダンプリストの中には、本編に関係ないメッセージも含まれていました。入力して下さった方々、どうもすみません。
すべてローマ字で
PC-8001は永遠に不滅なのです。
ユーザーの皆さん頑張りましょう。
1983/12/18と、どこかの野球選手のようなセリフを残していました。
1983年12月、高校3年生の冬ですね。
あれから40年以上の時を経て、今こうしてエミュレータ上で動いているのを見ると、まさに不滅だなーと思っているところです。
あの三津原さんがiPhoneでも動かしてくれました!
オフィスに遊びに行ったときに見せていただき、えらく感動したことを覚えています。
☆PiOなゲームに選ばれて - ヘリコプターのゲーム
『PiO』1984年12月号に「開発こぼれ話」的な原稿執筆を依頼されました。
『ダスティーワールド』や『ディグダグ』に関する制作話のほか、当時取り組んでいた新作ゲームの話などを書かせて頂きました。
(若さゆえ)くそ生意気な文でお恥ずかしい限りですが、最後に「ブルーサンダーみたいなヘリが主役で、アルフォスタイプのスクロールゲーム」を作っていると告知しています。
結局その後は『I/Oエンジンルーム』に入り浸っていたり、大学を中退してゲーム会社に入ったりして完成には至りませんでした。
細かく描いた資料は残っていますので、ここで紹介したいと思います。
自機のヘリコプターです。
プロペラのアニメーションも割とうまく表現できていたと思います。
敵キャラクタのイメージイラスト。
地形のイメージイラスト。
妄想は膨らみます。
ゲーム中の地形データについても、妄想をドット絵に起こしていきます。
1面遊べるくらいまでは出来ていたんですけどね。
スクロールルーチンや重ね合わせ処理は、ゲームアーツの『VEIGUES』というゲームの背景処理として再利用しています。
(この話は下の方で……)
□1985年:TV CM用ゲーム(っぽい)画面制作
ターゲット:PC-8801mk2SR
言語:Z80アセンブリ言語
どんな経緯だったかは忘れてしまったのですが、「テレビCMで使うゲームっぽい映像を作って欲しい」という依頼を受けました。
子役の演技と合成して使うようで、私は背景や敵キャラクタの動きを「それっぽく」作りました。
絵コンテを見ても、詳細を思い出せないのですが……
テレビ(製品)のCMだったと思います。
完成したCMをテレビで目にしたときは、ちょっと「くすぐったい」思いをした記憶があります。
今であればコンピュータゲームの開発知識がなくても「それっぽい」映像なんて誰でも作ることができる時代ですが、当時はまだコンピュータで作業するというのは特殊な技能だったのかもしれません。
■1986年:走れ!(7th)SKYLINE
ターゲット:PC-8801mk2SR
言語:Z80アセンブリ言語
公表媒体:I/O 1986年2月号掲載 / COMPAC製品化
PC-8001版の同名ドライブゲームの移植版です。
実は、一時期これを作ったことを伏せていたことがあります。なにせ、ゲームとしての出来があまりよろしくない。オリジナル(PC-8001版)が大変良くできていましたから、ちょっと肩身が狭かったですね。
オリジナルの『走れ!SKYLINE』は、『RS』をモチーフにしたものですが、実は私、(当時は)あまりそういうことに関心が無くて、何も考えずに1985年に発売されたばかりの『7thスカイライン(R31)』のデザインを採用したのです。
今考えると、パッケージのデザインは『RS』なのに変ですね。ライバルカーは日産レパードをモチーフにしています。身近に乗っている人間がいたものですから……。
メニュー画面でも『走れ! 7th SKYLINE』と表示しています。
パッケージは『PC-8801mk2SR』版と『FM-7』版共通です。
パッケージやマニュアルの方が先行していましたから、画面写真が開発初期のものなんですよね。
こちらは『PC-8001』版、オリジナルのパッケージです。
原作者の早川さんのサインが入っていますが、これは『80mk2会』に参加したときに撮影しました。
スピード感やゲーム性は、当時のPC-8001ゲームの中でも飛び抜けていました。名作と言っても過言では無いでしょう。
こちらは掲載された『I/O』本誌です。1986年2月号。
表紙にも、小さい画面写真が載っているのが分かります。
本文の原稿も、全部私が書いています。
高校時代から幾度か投稿して掲載され、どういう経緯だったかは忘れてしまいましたが、自然に編集部の方とも馴染みになって、気付いたらスタッフバッジを付けていました。
移植とは言っても、ソースコードやアルゴリズムが提供されたわけではありません。
『PC-8801mk2SR』版は何も無いゼロから作っています。
本編はオールマシン語です。
コレ、入力して遊んでくれた方はいらっしゃるのでしょうか。
開発風景の写真です。
画面をよーく見ると、かすかにスカイラインのリアビューが見えます。
まず紙にイラストを描き、それを基にドット打ちしました。
グラフィックエディタも自家製です。
自分がドットを打ちやすいようにスカイライン専用のグラフィックエディタを作りました。当時はゲームが変わる度にツールも作っていたような気がします。
開発言語は『Z80』アセンブリ言語です。この頃は『DUAD-88』を愛用していました。ですからクロス環境ではなく、88実機でソースコードを書き、88実機でアセンブルして、そのまま実行テストです。
少々プログラムのことも書いてみます。
PC-8801シリーズは、現在のPCのようにハードウェアの助けを借りて3D演算を行うことはできません。しかも、CPUは『Z80』の4MHzですから、いま私がこの文章を書いているPCとは単純にクロック数だけを比べても3桁違います。真面目に3D演算を行えば、ゲームにならない遅さであることは間違いありません。
描画についても、現在の3Dドライブ(レース)ゲームのようにマトリクス演算を行ったポリゴン描画ではありません。(あ、私、業界を離れて15年経ちますが、現在でも3角形ポリゴン使ってますよね?💦)
コースのデータは、コーナーの曲率のみが書かれた2Dのデータを持ち、それを冗長に読み取って積分することにより表示しています。元々のデータが2Dの曲率データだけなので、地形のアップ/ダウンは表現できません。
『PC-8801mk2SR』版は、このコースデータを自由に編集できる仕組みを提供していました。BASICのREM文(コメント文)を使い、オリジナルのスクリプト言語風に仕上げました。
BASIC言語の命令は、編集してReturn(Enter)キーを押した瞬間、中間言語に変換されてしまいますが、REM文を使うと、入力した文字列がそのままの形でメモリにストアされます。このスクリプトは、この仕組みを利用したものです。
蛇足ですが、『VEIGUES』の裏ワザもこの方法を使っています。
作成したコースデータはBASICプログラムとしては動きませんが、REM文だけのBASICソースコードと同じことですから、そのままカセットテープやフロッピーディスクにSAVEすることができます。
作成したコースデータを使うときは、まずBASICエリアにコースデータのソースをロードし、ゲームスタートする度にそれをプリプロセスしてバイナリデータに変換していました(これをメニュー形式で半分自動化するBASICプログラムも付属)。
『PC-8801mk2SR』版スカイラインは、プログラムや表現方法に凝ってしまい、肝心なゲーム性が犠牲になってしまった悪い見本です。今思えば、速度重視に割り切ってPC-8001版のように「名作」と呼ばれたかったですね。
FM-7シリーズ版の『走れ!SKYLINE』の話
88版と同時期に『FM-7/NEW7/77』版もリリースされました(1月号)。
FM-7版は、同じ大学に通っていたお友達が作ったものです。
私が誘って、一緒に工学社(I/Oエンジンルーム)に缶詰めになって作りました。
お互いの実家を行き来し、夕食をごちそうになったり、勝手に部屋に入って本を読んだりゲームしたり……そんな仲でした。
余談ですが、このお友達、根っからの68系人間でした。
数年後にゲームアーツの『FM-77AV』版『シルフィード』のデモプログラムもお願いして作って頂きました。(初公開の情報かもしれません)
もう35年くらい会ってないけれど、Masayoshi君、元気かな?
(名前で検索しても、同姓同名の女性しかヒットしない!)
■1987年:ザ・コックピット SR対応版
ターゲット:PC-8801mk2SR
言語:Z80アセンブリ言語
担当:88SR対応
旅客機を夜の空港に着陸させる、いわゆるナイトランディング・シミュレータです。
この作品に関しては、私はあまり手を加えておりませんが、簡単に紹介だけさせていただきます。
I/Oエンジンルームでアルバイトをしていた頃に関ったため、パッケージに名前も入っていません。
PC-9801版や、FM-16β版などがI/O編集部で動いていたことを覚えています。
冒頭に書いた通り、シミュレーション部分のコードにはほとんど手をつけていません。オリジナルのコードはすでに『Z80』にコンバートされていましたから、ここから『PC-8801mk2SR』になったからと言って、メインプログラムが大きく変わることはありません。
具体的には『PC-8801mk2SR』になって初めて搭載されたFM音源とALUに対応しただけです。しかし、『PC-8801mk2SR』が発売されて、一番最初に関ったプログラムでしたので、個人的には思い出深い作品です。
ここで言うALUとは、SR以降に搭載された「画面(VRAM)制御用の演算回路」のことです。R、G、B、三枚のVRAMプレーンに対し、論理演算や同時スクロール、同時書き込みなどの機能が付いたものです。
ALUに関しては、後に『ラッセル社』から発売された『PC-8801』に関する単行本に執筆しました。
(下の方で紹介しています)
『工学社』さんとは、この仕事が最後になりました。
担当のOさんが『ラッセル社』に移籍するというので、一緒にくっついて行った形です。
☆1986年:Pマガ流『秋葉原案内』
『工学社』に続き、『ラッセル社』でお手伝いしていた頃の話も混ぜておきます。ゲーム開発ではなく、雑誌編集部での活動ですが、いくつかゲームを作ったり、ゲームプログラミングのノウハウ記事を書いて掲載されたことがあります。
あぁ…ここまで書いて思い出しましたが、疑似3Dのシューティングゲームっぽいものも作った記憶が……あれ、どこに掲載されたか忘れてしまいました。
『ラッセル社』から発刊されていた『PCマガジン』という雑誌に関わっていました。
「アキバ100%活用ガイド」などとおこがましい記事も執筆しておりました。
「イムゾアン」なんていう変なペンネームですが、ローマ字で書いて逆から読むと本名になります。
蛇足ですが、「逆から読む」って結構好きみたいです。
お絵描き用のアカウントは「Amukoris」で統一していますが、これも逆から読めばメインアカウントの「Sirokuma」だったりします。
工学社から移籍したOさんと一緒にアキバをブラブラしながら取材しました。
40年前の秋葉原です。
いまのように「萌え」文化が無い「電気街!」という頃の地図ですね。
私はどっちも好きですがね(笑)
『PCマガジン』と言えば、「つるちゃんの何でも相談」というコーナーがありました。毎号かなりハードなQ&Aを扱っていたのが印象的です。
その「つるちゃん」とはいまだにお付き合いがあります。
Oさんと共に私の結婚式に出席していただいたことも……。
雑誌の似顔絵そのまんまの笑顔は今も変わりません。
■1987年:ぎゅわんぶらあ自己中心派
ターゲット:PC-8801mk2SR
言語:Z80アセンブリ言語(社内アセンブラ使用)
担当:メニュー
ここからは、ゲーム会社時代に関わったタイトルを並べてみます。
突然G社に飛び込んで仕事を始めた経緯は、「キャリアの分岐点」のお題に乗っかって書いた記事をご覧ください。
G社での初仕事は『ぎゅわんぶらあ自己中心派』です。
片山まさゆき先生の麻雀マンガをゲーム化したものです。
ゲーム最初に現れるモード選択画面が、私の初仕事になりました。
後に「メイン」として関わる『VEIGUES』の企画書やプログラムを書きながら……。
■1987年:ゼリアード
ターゲット:PC-8801mk2SR
言語:Z80アセンブリ言語(社内アセンブラ使用)
担当:オープニング/エンディングデモ
私は、この作品のメインプログラマではありませんので、そこの所を注意してお読みください。
『ゼリアード』は、ゲームアーツの『ファンタジーアクション』というジャンルに位置づけられたゲームです。
ゲームのメイン画面は、上下左右にスクロールする横から見たデザインのダンジョンを採用しています。
プレイヤーはこの中で戦い、経験を積んで行きます。
アルマスと呼ぶ「お金」に代わるものを集め、武器を買い……と、普通のRPGの要素を盛り込んではいますが、基本はアクションゲームでした。
この頃、私は『ヴェイグス』の製作途中でしたが、『ゼリアード』のFIXが近づいたため、そちらの作業を一時止めて、このゲームのデモプログラムとデバッグを手伝いました。
私が担当したのは、デモ全般のシーケンスプログラムです。
これを使ってオープニングデモを作りました。
『シルフィード』や『ぎゅわん自己』の頃から使われ始めた、『CSMトーキングシステム』と呼ぶFM音源のCSMモードを利用した音声合成もウリの一つでした。
一部では有名な「お姫様」。
実はCSM音声合成でデータ化した場合、周波数によって聞き取りやすい声とそうでない声にハッキリ分かれました。
いろいろ実験を繰り返した結果、社内で一番「通りが良い」声を持っていた事務の女の子がお姫様にキャスティングされました。余談ですが、起動直後の社名ロゴで喋る「Presented by GAME ARTS」の声もお姫様と同じ人です。
サブプログラマとしてスタッフロールに名前が出ています。
最近Xのフォロワーさん(たまじゃ氏)が打ち込んだゼリアードのメドレーを拝聴しました。
Zeriard music - World of Wonder, Gold, Ice, and Opening Remix!
最高にカッコイイアレンジです!
■1988年:ヴェイグス
ターゲット:PC-8801mk2SRシリーズ
言語:Z80アセンブリ言語
担当:企画 / ゲームデザイン / システム設計 / メインプログラム
正式名称は『Tactical Gladiator Veigues』。
強制横スクロール型のロボットアクションゲームです。
武器は左腕のフィールドパンチ、右腕のビームガン、そして胸部オプティカルバルカンの三種類。
それらを状況に応じて使い分け、ロボット型のプレイヤー機を操作して、3ミッション全15面+2面を戦います。
紹介に入る前に……
G社のPCゲームの音楽を集めたサウンドトラックCDというものがありまして、これには『VEIGUES』の楽曲も収録されています。
そのライナーノーツでは「くま氏のサイトではメイキング・エピソードが掲載されているので、ご一読を」と紹介されています。
URLも記されておりますが、これこそが冒頭で紹介した私の「四半世紀前に公開していたWebサイト」です。
現在は閉鎖してしまいましたが、そのサイトに書かれていた内容を復元し、さらに加筆したものが当記事になります。
写真や図も、いくつか追加しました。
『PC-8801mk2SR』版の『VEIGUES』は、5インチ2Dフロッピーディスク4枚組です。この頃は、ゲーム本編だけでなく、オープニングや中デモなど、演出に力を入れ始めた時代でしょうか。
1枚あたり320KBのフロッピーディスク容量が少なく感じられましたが、枚数を増やすと原価が上がるため、データ圧縮には苦労しました。特殊なフォーマットでディスク容量を増やすこともやりました。
私は、このゲームの企画(ゲームデザイン)、演出、メインプログラマを担当しました。「NAO MORIKUMA」というのが私です。
ゲームの紹介に戻りましょう。
面をクリアすると、図のようなパネルが表示されます。
敵を破壊すると、そのパーツを基にパワーユニットが作られ、面クリア時に武器等のパワーアップができるという設定です。
撃破した敵の数に応じて、パワーアップできます。したがって、多くの敵を破壊すれば、それだけ早い段階でパワーアップできます。
ゲームは強制横スクロールで進行します。
敵を倒しても倒さなくても、一定区間を過ぎれば面クリアになります。
前後に移動するほか、バーニアを使って短時間のジャンプができます。
転回している間は、敵の弾を含む一切の攻撃を回避できます。
ヴェイグスの醍醐味は、敵の攻撃を転回によってかわし、やり過ごした直後にパンチで撃破するところでしょうか。
メインの武器はパンチ。ビーム類は補助という位置づけです。
ヴェイグスが被弾したときの処理も、かなりこだわって作りました。
一体しか無いヴェイグスです。
リアリティが薄れるため、残機数制度はダメです。
やはり被弾したら壊れて、壊れて、壊れて……大破。
これがやりたかったんですよね。
敵キャラの個性にも、いろいろ気を配りました。プレイヤー機であるヴェイグスが大きいので、ただデカいだけのボスではダメ。
処理速度が遅いマシンであるため、1フレーム中で同時に動かす部分を少なくしながらも、なるべく広範囲で動いているように見せる工夫をしました。
話が前後しますが、『VEIGUES』は『MECANO ASSOCIATES』さんによる、悲壮感漂うオープニングサウンドから始まります。
デモテープが届いた時、一回聞いただけで気に入ってしまい、すぐにO.K.!
その曲をバックに、ヴェイグスのスペックが明らかになって行くデモです。
インターネットが普及した現在、動画サイトなどで紹介していただくことも多くなりましたね。
ありがたいことです🙏
Making of VEIGUES
『VEIGUES』は、実は私が学生時代から温めていた作品です。
もちろんタイトル名やロボットのデザインは後で決まりましたから、イメージは大まかなものです。
開発中に『VEIGUES』が公になったのは、おそらく『月刊ログイン(1987年No.10 P244)』に、開発コードネーム「クマさんのゲーム」と紹介されたのが最初だと思います。
会社でも「くまさん」と呼ばれていたので、取材に来た人の耳に入って、それがそのままコードネームになってしまったのですね。
それから「NAO MORIKUMA」という名前で作業をしていました。
「NAO」は本名から、「MORIKUMA」は「森のくまさん」からです。
話を戻して、『VEIGUES』の構想を練っていたのは大学時代でした。
小さい頃からロボットもののアニメーションが大好きで……
古くは『マジンガーZ』
中学時代には1979年放送の『機動戦士ガンダム(ファースト)』
高校時代には1982年放送の『超時空要塞マクロス』に出てきた『バルキリー』に惚れました。
上のガンダムと同じポーズだ……。
『VEIGUES』は、1983年放送の『装甲騎兵ボトムズ』や
1985年の『蒼き流星SPTレイズナー』などの作品から影響を受けています。
また、『VEIGUES』のデザインを担当したグラフィックデザイナーの安住氏によれば……
「士郎正宗氏の『アップルシード』に登場する『ブリアレオス』の影響を受けています」とのこと。
オープニングや各種デモ、そして敵キャラの一部を除くグラフィックデザイン全般&ドット打ちは安住氏によるものです。
私自身、かなりリアル指向な趣きがありましたので、設定が細かい作品を好んで見ていました。
特に好きだったのがボトムズの「ローラーダッシュ」です。これは絶対に取り入れたい機構でした。
上のイラストは、私が頭の中でイメージしていた戦闘中の『VEIGUES』を、一番的確に表現しています。
リアル指向と書きましたが、具体的に書くと次のようになります。
細かい作業をするロボットではないので、マニピュレータ部分(手首から先)は必要ない。
華奢なボディでは戦闘できない。敵の体当たりにも耐えられるような装甲の厚みが欲しい(重量感が欲しい)。
戦闘ロボットに目や鼻や口は必要無い。モニター用のカメラが主張していた方がいい。
でも、なるべくカッコよく……
何がなんでもローラーダッシュ!
こんな私の要望を取り入れて、グラフィックデザイナーの安住氏がデザインしてくれたのが『VEIGUES』です。
それを基に、イラストレーターの「末弥 純」氏によって描き起こされたパッケージ用のイラストがこちら。
話は少しだけさかのぼります。
1987年1月の寒い日。
私は『ぎゅわんぶらあ自己中心派』や『ゼリアード』の手伝いをしながら『VEIGUES』の企画書を書いていました。それと同時に、高速横スクロールを目指した『Z80』のルーチンを組み、負荷テストをしていました。カッコいいロボットがローラーダッシュで走り回っている絵をイメージしながら……。
間もなくグラフィックデザイナーの安住氏を迎えました。
一緒に組んで『VEIGUES』のデザインを担当してもらうことになりました。ここから先の『VEIGUES』は、同期で入社した安住氏との共同作業になります。
私のイメージを伝えて形にしてもらう経緯は先に書いた通りです。
彼はアニメーションが本職でドット絵の天才。
私の目からはそんな風に見えました。
『VEIGUES』の最初のデザインが画面に表示されました。
すでにグラフィックエディタ上で描かれたドット絵です。
私も含めた社内のほぼ全員は、「それ」を「デモ等のイメージ画」ぐらいに考えていました。キャラクタがデカくて緻密だったからです。
「いいねー、いいねー、カッコイイよ」
と、無責任に煽っている社長を横目に、私は少し焦っていました。
他の絵を数点、次々と表示させながら説明する安住氏の話は、どう聞いても
「ゲーム中に動くキャラクタである」
としか聞こえなかったからです。
「すまん…安住どん。キャラクタのサイズ指定してなかったね…」
(心の声)
アーケード畑から来た安住氏が、ごく普通に動かせると思って描いた『VEIGUES』は、当時の『Z80』4MHzのCPUを使った『PC-8801mk2SR』で表示するには、あまりにも大きなプレイヤー機です。
スプライト等、今では当たり前の機能は当時のPCにはありません。
1ピクセル1ビットのベタなビットマップ画面が3プレーン(赤、緑、青)しか無いのです。
画面は『VEIGUES』のプロトタイプです。
こちらは製品版の『VEIGUES』です。
ビームとパンチが左右逆になったことを除けば、メインキャラクタのデザインは開発初期からFIXしていたことになります。
なぜ左右を逆にしたのか、話せば少々長くなるのですが……もう一度上のプロトタイプ画面をご覧ください。
確かに左腕(画面奥側)にビームガンを装着しています。この写真では『VEIGUES』がたまたま右を向いていますが、開発初期の『VEIGUES』は強制横スクロールではなく、左にも自由にスクロール移動できました。そしてミッションは、自由に移動できるフィールドの中で作戦を遂行するような、シミュレーション要素を取り入れたアクションゲームになる予定でした。
左に向かってスクロール移動できたため、ビームガンがどちらの腕に付いていてもゲーム性やデザイン的には何も問題ありませんでした。
しかし1987年。『VEIGUES』のゲームシステムに影響を与えるPC-9801用のロボットゲームが登場しました。
遊んでみると……、なんと『VEIGUES』でやる予定だったことがすべて盛り込まれています。これは非常にマズイです!
ゲームシステムの大幅変更が必要になりました。
こうしてシミュレーション要素を無くし、強制横スクロールにし、純粋にアクションゲームとして開発が続けられることになりました。私自身はゲーム性が多少変わってもやりたいことに変わりはありませんでした。むしろ、アクションに割り切って作ることができたので良かったと思っています。
ところでビームガンを装着する腕の話ですが、ゲームシステムが変わっても『VEIGUES』本体は左を向いて攻撃することができます。しかし、右を向いている時間が圧倒的に多くなります。デザイン的に、いつも手前に表示されている腕にビームガンがあった方が良いだろうと……、まぁ、そういうわけなんです。
ここからはプログラム寄りの話をしてみます。
『VEIGUES』開発風景のひとコマです。不鮮明ですが雰囲気だけでも紹介します。鮮明過ぎてもアレですし……ね。
開発機の構成は、『PC-8801mk2SR』がターゲット用とグラフィックエディタ用で2台、ICE用の『MR』が1台、コーディング用の『PC-9801』が1台です。アセンブラは自社製のクロスアセンブラです。
初めに書いた通り、安住氏が描いた『VEIGUES』がデカいのです。
64×96ドットです。
今となっては大したことありませんが、88には現在のゲーム機のようにハードウェアで1枚絵(スプライト)を描画してくれるような機能はありませんから、背景との重ね合わせ処理も含めて、すべてソフトウェアで処理しなければなりませんでした。
当時の環境にピンと来ない方は、640×200ピクセルの画像ファイル1枚の中で重ね合わせをしてスクロールさせて登場キャラクタを動かすプログラムを組むことをイメージしてみてください。
何度も書いている通り、CPUはZ-80 4MHzでメモリ空間は64KB。
現在のPCとは処理速度が桁違い……メモリ容量なんて6桁違います。
この環境の中で、三重構造の二重マップスクロールを実現し、安住氏のデカい『VEIGUES』を動かさねばなりません。
少々苦労しました。
描画ルーチンなど速度を要求する部分は、当然のようにマシンサイクルを数えて組みました。
前回のフレームから変化がある部分だけを抽出する部分では、近景、中景、遠景のスクロールによる書き換え差分と、『VEIGUES』や敵キャラクタのアニメーションや移動による書き換え差分を抽出する5重構造の仮想スクリーンで一括フラグ管理し、今回のフレームで変化した部分のみを無駄なく描画するエンジンを作りました。
プロトタイプ版では背景を1プレーン単色で表現していましたが、製品版では2プレーン4色にグレードアップしました。
なるべくパレットのみで重ね合わせできるような配色とプレーンを割り当て、バルカンや弾の一部はグラフィックプレーンを使わず、テキストグラフィックを用いた部分もあります。
処理速度の他にはメモリとの戦いがありました。
64KBという少ないメモリ空間の中に、プログラムやワークエリア、そしてグラフィックやマップなど、ゲームシーンで用いるすべてのデータを収めなければなりません。64KBというのは、上で紹介したプロトタイプの画像のファイルサイズがだいたいそのくらいです。
一つだけ具体的な数字を紹介してみます。
『VEIGUES』の二重マップスクロールを処理するためのメモリ領域はたったの512バイトでした。これは256バイト×2のダブルバッファ構造です。
マップ描画ルーチンで256バイトのマップデータを使っている間に、もう片方の256バイトには続きのマップデータをフロッピーディスクからリアルタイムローディングしていました。ロードが終わるとリードバッファと描画バッファを入れ換えるわけです。
『VEIGUES』を実際に見たことがある方は、ゲーム中は絶えずディスクアクセスしていたことを覚えているかもしれませんね。データのリアルタイムロードは、マップだけでなく、敵キャラの差し替えや『VEIGUES』の爆発シーンでも使っています。特に敵キャラではデータだけでなく、プログラムも途中で差し替えている部分があります。
『VEIGUES』完成記念撮影です。
一番右は名物社長さん。隣が私。その隣で頭にタオルをかぶっているのがグラフィックの安住氏です。
(これも雰囲気だけ…というわけで一部顔を伏せさせて頂きました)
『VEIGUES』のディスク2をドライブ1、シルフィードのディスク2をドライブ2に入れてリセットすると、上のような裏コマンドマニュアルが表示されます。
『マイコンBASICマガジン』という雑誌がありました。
小中学生の頃に愛読していた『ラジオの製作』から枝分かれした雑誌です。
1989年5月号の中で、山下章氏の連載記事の取材を受けたことがあります。
先日の『80mk2会』で山下さんと再会できるかも……と思っていましたがタイミングが合いませんでした。そのうちまたお会いできるでしょう。
あちらは私のことなんて覚えていないと思いますけどね(笑)
取材時に撮影された36年前の私(右)と安住氏です。
24歳の頃か……
これは、つい最近レトロゲーム開発者の仲間うちで呑み会を開いたときに撮影した写真です。
これが現在の私と安住氏。お互い年を取りましたな。
PCエンジン版の開発
『PC-8801mk2SR』版のリリースから2年後、『PCエンジン』版がリリースされました。
『PCエンジン』版は、ビクター音楽産業さんから発売されましたが、開発はBits Laboratoryです。他の記事でB社と書いているところです。
後に自分の職場になるのですが、当時はゲームアーツから出向して手伝っていました。
写真は向かって左がPCエンジン版のメインプログラマ中村氏、右で立っているのが私です。
PCエンジン版のスタッフロールにも名前が入っています。
B社での開発は楽しかった想い出しかありません。
ピザを取ってバカ食いしたり高い焼肉ゴチになったり……いやいや食い物ネタばかりじゃなくて、エアガン撃ったりドローンのようなおもちゃを開発室で飛ばしたりティッシュペーパーの投げ合いをしたり……いやいやちゃんと開発もしていましたよ。
M社長とはウマが合うのか今でも付き合いがあります。
最後に……
『VEIGUES』はハッピーエンドです。
『LIGHTNING ATTACKERS ALEF』
実は、『VEIGUES』のゲームエンジンを用いたシューティングゲームの開発がスタートしていました。
三重スクロールの背景システムがそのまま使用され、戦闘機を操作する宇宙物の横スクロールシューティングでした。
タイトルも決まって製品版のロゴもできていました。
チームは『VEIGUES』と同じで、デザインは安住氏。
デザインだけでなく、実はゲームもできていました。
3面まで遊べる状態で、敵キャラやボスキャラも完成していました。
プレイヤー機は、アイテムのように飛んでくる交換パーツを組み替えて武器をチェンジするシステムでした。もちろん、これも完成していました。
おもしろくなりそうだったんですけどね。
ゲーム画面を撮影した動画もあるので、8mmテープから吸い出せればお見せできるのですが……。
探せば『PC-8801mk2SR』で実行可能なディスクもあるかもしれません。
なぜ世に出なかったか……
時代の流れから、PC-8801のゲームから撤退し、コンシューマゲーム機に移行するために開発中止になったのです。
具体的にはSEGAの『メガドライブ』へ…。
メガドラはパソコンに近いアーキテクチャを持っていたため、今までPCゲームを作っていたスタッフが移行しやすいんじゃなかろうか……という上の判断です。
正直、環境に馴染めばどれも一緒だとは思いますけどね。
開発打ち切りになったゲームに代わり、ターゲットをメガドライブに移し、同じスタッフによって『アリシアドラグーン』の開発が始まりました。
☆1990年:雑誌/単行本執筆
在籍していた編集部との付き合いが無くなったわけではありません。
『便利な短いプログラム88版』用の原稿を書いてくれないか?
という話がありましてね。
ちょうど『VEIGUES』の開発も終わって一息ついているタイミングだったので……
オフレコでお願いします(笑)
「連載記事も書いてー」と。
えー 仕方ないな……
「製品で使われている技術ネタは出せないっすよ」
「誰でも知ってるような話しか書きませんよ!」
というわけで、こんなこともやってました……💦
■1992年:アリシアドラグーン
ターゲット:SEGA メガドライブ
言語:MC68000アセンブリ言語 / Ketchup!
担当:システム設計 / メインプログラム
『PC-8801mk2SR』シリーズでのゲーム開発を中止し、ターゲットをSEGAさんの『メガドライブ』に切り替えた最初の作品です。
ゲーム内容は……私が説明するよりWikipediaなどを見ていただいた方が良いと思いますので割愛。
メガドラが選ばれた理由は、コンシューマーゲーム機の中では比較的PCに近いアーキテクチャを持っていたため、今までPCゲームを作っていたスタッフが移行しやすいんじゃないか……という理由でした。
メインCPUは『MC68000』。はじめまして。
まずはコレに慣れようと『X68000』で動く簡単なゲームを1本、アセンブリ言語で作りました。
インベーダーゲームのようなシューティングゲームを午前中の数時間で作り、午後はそれをメガドラに移植してみることから始めました。
キャラクタや音声などは思いっきり内輪ネタ。
『サムゲーム』と名付けられていたような気がします。
『MC68000』の扱いやすさに感動しながら開発が始まりました。
私はメインプログラマとして参加しました。
ツール類の整備からメインキャラクタの動き、地形処理の仕様などを含めたシステム設計と実装は私が自由に進めることができたので作りやすかったです。
特にツールに関しては『Ketchup!』と呼ぶ統合開発環境を作るところから始めることができたので、モチベーションを高い位置で維持しながら楽しく開発することができました。
『Ketchup!』については次の項目で詳しく触れたいと思います。
幡池裕行氏のイラストや(今は無き)ガイナックスさんとの協力でも一部で話題になりました。
岡田さんが社長だった頃ですね。
打ち合わせにも同席してお会いした記憶は少しだけ残っていますが、ガイナックスさんと関りがあったのは主にデザインやストーリー設定のスタッフでしたから、実際の開発に携わっていた我々とはあまり接点がありません。
自動照準の稲妻攻撃が目立つためか「女テグザー」と呼ばれることもあるようです。
私も過去に「テグザーを継承した」という表現で紹介したことがありますが、システムはゼロから作っていますし、ゲームの構成もだいぶ違うと思っています。
アリシア、かわいいですよね。
そのうち私も描いてみたいキャラクタです。
ところで、この写真のシーンを作っているときの映像も残っています。
真夜中のG社で『Ketchup!』使いのプログラマと2人で騒ぎながら撮った映像が……。
上の方で紹介した『LIGHTNING ATTACKERS ALEF』の映像と同じく8mmテープで撮影したので、いまだに吸い出せずにいます。
オプションモンスターは、国内より海外の方が評判が良かったイメージ。
メインキャラクタや、この画面の絵は『VEIGUES』でも一緒だった安住氏が担当しています。
この敵キャラのドット絵を描いたMちゃんとは、いまだに旦那さんも一緒に食事をするようなお付き合いをしています。
1面については「ゲーム性」に関していろいろ問題が多く、大幅に作り替えたことを思い出します。最初はもっと冗長な構成で間が伸びたような作りでした。
プレイしていてもどうも面白くない……というわけで3つに分割して変化を付けたのでした。「STAGE 1」だけ3部構成なのはそういう経緯があったんです。
海外版アリシアの想い出
『アリシアドラグーン』は日本国内より先に北米で発売されました。
日本版と海外版のパッケージの比較ですが、だいぶ違いますよね。
今は海外でも日本の「萌え文化」が広まっていることでしょうし、こんないかついキャラクタデザインにはならない……んですかね?
毎年ラスベガスで開かれる『Winter CES』には出展者として参加していました。幕張メッセや東京ビッグサイトで開かれる東京ゲームショウみたいなものです。(もっと幅広く規模も大きいです)
1992年1月。
成田空港発サンフランシスコ行きの飛行機に乗る2時間前まで池袋の本社で出展用のROM焼きをやっていました。
そしてダッシュで駅に向かいスカイライナーで空港へ。
ラスベガスの会場で、無事お披露目することができました。
グラフィックの安住氏と一緒に大好きなソニックと記念撮影。
展示されているPCも興味深い。
ローカライズ関係のお仕事もやってました(?)
1992年のラスベガス。
泊まったホテルは『エクスカリバー』でしたが……
これはホテルから撮った写真でしょうか。
いま『Google Earth』で見てみましたが……だいぶ変わってますね。
このスクショの中央にある「お城」のようなホテルが『エクスカリバー』です。
個人的には手前のピラミッド型の『ルクソール』のカジノにいたクレオパトラのようなカクテルガールが好きでした。
こちらは『ホテル ニッコー サンフランシスコ』から見た1992年のサンフランシスコの街。
アイレベルが異なりますが、現在の同じ場所を『Google Earth』で見てみました。
『シムシティ』を作った『マクシス』さんを訪問しました。
『シムアント』のプログラマとツーショット。
この方は、当時の私の愛車と同じバイク(FJ1200A)に乗っていたので、バイクの話でも盛り上がりました。
それにしても、私は当時身長178cmで、日本ではそれほど小さくはなかったと思いますが、あちらの方とはぜんぜん体格が違うので見上げて話すことが多かったです。
『スタンフォード大学』も訪問しました。
大学生協のソフトウェアショップを見ていたら、自社製品(ファイヤーホーク)を見つけたので、店員さんと一緒に記念撮影しました。
この頃は何年か続けて渡米していましたが、もう30年以上日本から出ていません。仕事ではなく、のんびり旅行してみたいですね。
というわけで、あまりゲーム内容については触れませんでしたが、『アリシアドラグーン』のお話はこれでおしまい。
当時、ユーザーさんからアリシアのイラストが送られてきました。
その写真をいまでも持っていますが、もし、「私が描いたイラストだ!」という方がいらしたら是非コメントでお知らせください!
今ではインターネットを使ったSNSが浸透しているため、当時のユーザーさんや他社の開発者さんとのやり取りも珍しくありませんが、当時はこうしたハガキやお手紙でしか反応を知ることができませんでしたから、とても嬉しく、励みになりました。
この場を借りて「ありがとうございました!」と伝えたいです。
これは私が軽く描いてみたものですが、そのうちアリシアをモチーフにしたオリジナルのイラストを描いてみたいと思っています。
最近はイラストを描く趣味も増えまして、スローペースながら楽しんでいるところです。下手の横付きレベルですが、おいおい『趣味のはなし』シリーズにも記事を追加する予定です。
最後に、YouTubeで見つけた『アリシアドラグーン』のプレイ動画を紹介します。音楽もステキなので、是非鑑賞してみてください。
アリシアドラグーン (MD) ハードモードクリア (ノーダメージ)
オプションモンスターをここまで使い分けてプレイしている映像は初めて見ました。
□1992年:Ketchup!(統合開発環境)
ターゲット:X68000
言語:MC68000アセンブリ言語
担当:設計 / プログラム
『アリシアドラグーン』の記事で『Ketchup!』と呼ぶ統合開発環境を作ったことに触れました。
『Ketchup!』は、雑誌の取材も受けました。
『BEEP! メガドライブ』1991年3月号です。
『アリシアドラグーン』本編と同時進行で、私一人で設計して実装したプログラムです。誰かに「作れ」と言われたわけでもなく、「こんなツールがあったら楽しいなぁ」という思いで、ほとんど趣味感覚で作り始めました。(…って書くと、やっぱり怒られそうだな)
雑誌記事の中で、『Ketchup!』という名前に「深い意味はない」と書かれている通り、私の好物というだけの話です。「かきフライやコロッケにかけるのはケチャップだよね」という話を普段からしていたものですから、名前を決めるときに周りから「もうケチャップでいいんじゃね」って感じで決まりました。
『X68000』で動くツールで、開発言語もすべてMC68000のアセンブリ言語です。
『Ketchup!』を使う人を「けちゃっぱー」と呼んでいました。
『Ketchup!』は、『アリシアドラグーン』のメインプログラマである私の手間を大幅に軽減させることを目的に開発しました。
言ってみれば、「自分が楽をするための苦労を惜しみなく注ぎ込んだ開発ツール」と言えます。
アニメーションのタイミングを変えたり、敵キャラの移動方法や強さなどのバランス調整、地形の修正やそれに伴う様々な仕掛け、エフェクトの修正などを、すべて「デザイナーやアシスタントプログラマの環境だけで実機テストできる環境」を作りました。
従来の作り方は、何らかの修正や調整を行った場合、そのデータをメインプログラマに渡してビルドして確認することが多かったと思いますが、そのすべての煩わしい手順を省略できるため、メインプログラマはシステムのブラッシュアップに専念できるわけです。
現在のゲーム開発の話は分かりませんが、おそらくそれが当たり前になっているのではないでしょうか。
雑誌では地形エディタや軌道エディタ、アニメーション管理部分など、視覚的に映える部分しか紹介されていませんが、実はこのツールの本領は「汎用インタープリタ」という部分です。
アニメーションや移動データなどの視覚的なものだけでなく、動きのアルゴリズムや、武器や振る舞いの拡張、敵キャラどうしの通信、使うワークエリアの定義に至るまで、メインプログラマの手を介さずに自由に作り出すことができます。
それも一切キーボードに触れることなく、マウスオペレーションだけで。
そのため、プログラミング言語(アリシアの場合はMC68000アセンブリ言語)に明るくなくても、メニュー形式で開く命令をマウスでポチポチ組み合わせるだけで新しいキャラクタを作ることができ、実機に転送して確認することができます。
繰り返しになりますが、ここまでの作業をメインプログラマである私の手を介さずに自由に行うことができます。
マウスで入力した「プログラム」は、中間言語の形でメモリにストアされます。
メインプログラマである私の仕事は、「けちゃっぱー」が入力した敵キャラや地形効果などの「プログラム」を解析するインタープリタを用意することです。
「こんな命令を作って欲しい」という要望にも応え、実戦でどんどん機能拡張していきました。
中には解析処理に時間がかかる「Ketchup!コード」もありましたが、後に作った「Ketchup!コンパイラ」を通し、部分的にネイティブコードで動かすこともありました。
『Ketchup!』効果が社内に知れ渡ってきた頃、「他社に販売しよう」という声もチラっと耳に入ってきましたが、結局その話は進まなかったようです。
『アリシアドラグーン』本編との同時開発で、私は人の何倍も仕事をしてきました。『Ketchup!』効果は、さらに後になってもっと皆が実感できるところまで広まるのですが、それはまた後程。
雑誌の取材にはたまたまこんな格好で受けましたが……
この頃の私は、椅子と机の下の往復しかしていませんでした。
半年ほど家に帰らなかったこともあります。
起きると(朝というわけではない)机の上にユンケルがケースで置いてあったりしてね……。
ずっと会社にいるもんですからタイムカードなんかも押さずにいたら、理不尽にもボーナス削られたっけなぁ……。
もっと評価されても良かったんじゃないかと思っていますよ(笑)
■1992年:ライズ・オブ・ザ・ドラゴン
ターゲット:SEGA メガドライブ
言語:MC68000アセンブリ言語 / Ketchup!
担当:戦闘シーン
このタイトル、あまり覚えていないのですが、『アリシアドラグーン』の「けちゃっぱー(一つ上の項目参照)」と一緒にB社に出向して作業した覚えがあります。
「けちゃっぱー」と言うくらいですから、シーンのすべてが『Ketchup!』で動いています。
私はライズに特化した部分のインタープリタを書きました。
PCエンジン版『VEIGUES』の開発で出向したとき以来ですが、B社はホントに楽しい場所だなー
この頃のB社は『元麻布』に開発室があり、奥の部屋にはアーケードゲームマシンが何台も置いてあって……楽しかったなぁ🤭
■1994年:LUNAR ETERNAL BLUE
ターゲット:SEGA メガCD
言語:MC68000アセンブリ言語 / Ketchup!
担当:システム設計 / メインプログラム
『ルナ2』とも呼ばれる「MEGA-CD最後の超大作」です。
すごいコピーですね。もちろん私が考えたわけではありませんよ。
『LUNAR ETERNAL BLUE』は、アニメーションデモ部分と私が作り込んだ部分を除き、ほぼすべてのシーンが『Ketchup!』と呼ばれる統合開発環境で作られています。
この環境については上のKetchup!記事を参照してください。
「けちゃっぱー」の数は5~6人いたと思います。
街やショップを作る人、村人を作る人、戦闘シーンを作る人……
それぞれが『X68000』で『Ketchup!』を使い、それに接続されたメガCD実機で動作確認しながらシーンを構築していました。
特に「戦闘シーン」を作った「けちゃっぱー」M氏の功績は大きいです。
本人のブログ記事へのリンクを置いておきます。
彼がやりたかったことをすべて叶えたかったので、どんどん『Ketchup!』から使えるライブラリを増やしました。すると喜んで使ってくれる……。それを見て更に喜んでもらおうと機能を追加する……。
そんな相乗効果でどんどんクオリティが上がっていったんじゃないかと思っています。
YouTubeで検索して最初にヒットしたプレイ動画を貼っておきます。
「大作」です!
私は、完成に近づいた頃になってようやく「通し」でプレイしました。
シナリオについては大筋では分かっていましたが、初めから通してプレイしてみると……作っている側がこんなことを言うのも変ですが、いやぁ感動しました。
シナリオ担当の重馬さんの記事へのリンクも置いておきます。
お世話になりました!
Wikipediaで見ると「プログラマ」の名前がK氏になっていますが、スタッフの項目には「システム・プログラム、チーフ・プログラマー:KUMA(本間直純)」と入っていて一安心(笑)
この記事を書くために久しぶりに引っ張りだしてきました。
チビキャラの動きもこだわって作り込んだことを思い出します。
特に『陣形コマンド』を選択すると、チビキャラたちが部屋から設定グリッドにシームレスに動いて配置され、完了するとまたスムーズに部屋に戻る……。そういう細かい部分の「見ていて気持ちイイ動き」にこだわって作りました。
ひとつひとつのシーンに思い入れがありますね。
雑誌の取材を何度か受けました。
「開発スタッフのみなさん」の写真で一番手前にいる黒いTシャツを着ている人間が私です。28歳頃ですね。
『Ketchup!』についても語っていますね。
「アリシアドラグーンでも、バージョンアップしたものを使用していました」とありますが、正しくは「アリシアドラグーンで使っていたものをバージョンアップして使用しています」ですね。
私の一番お気に入りのキャラクタは……
『ジーン』です。
好き♪
そして熱い!
セガサターン版はプレイしたことが無いのですが、ジーンのシーンだけ観たことがあります。いいですねぇ。
セガサターン版『LUNAR ETERNAL BLUE』
「セガサターン版」と言えば、これは当初私が作る予定でした。
というかアニメシーン以外はすべて完成していました。
その頃の私はすでにG社からB社に移籍していましたが、メガCD版からセガサターン版への移植仕事が回ってきたので、B社の開発室で一人で移植作業をしていました。
上の方で「アニメーションデモ部分と私が作り込んだ部分を除き、ほぼすべてのシーンが『Ketchup!』と呼ばれる統合開発環境で作られています」と書きましたが、インタープリティブな言語だからこそできた仕事でした。
街や戦闘などのプログラムはすべて『Ketchup!』の中間言語としてデータ化されていますので、それを解析するプログラムとライブラリなどをMC68000のアセンブリ言語からC言語に書き換えるだけで「メガCD版」の「すべて」がサターンで動きます。
スプライトやBGなどの画面描画に関するプログラムもセガサターン版に書き換える必要がありますが、すべて機械的に変換して実行した瞬間……
このシーンがセガサターンで動き、我ながら感動しました。
セガサターンのメモリ量はメガCDより広いので、フィールドでのエンカウントで戦闘シーンに移行する際にCDシークをせずに、すべてオンメモリで展開しておき、読み込み皆無の快適サクサクな『LUNAR ETERNAL BLUE』が動いていました。
ですが、私が移植した「メガCD版のサターン対応品」は世に出ませんでした。V社がゼロから作り直すという話になったため、私の仕事はココまでです。
正直言うと、当時は「ちぇ……せっかく短期間で移植したのになんだよ……」という心境でしたがね(笑)
リリースされたセガサターン版の『ルナ2 エターナルブルー』も、そのうち遊んでみようと思いながら何年も経ってしまいました。
移植したV社には何度か遊びに行ってますし、社長のSさんとはラスベガスのホテルで同室になったりと、いろいろ想い出もありますので、久しぶりに新横浜のオフィスに遊びに行ってみようかしらん……。
海外版『LUNAR ETERNAL BLUE』
『LUNAR ETERNAL BLUE』にも北米版が存在します。
『アリシアドラグーン』の時と同じようにラスベガスに行ってローカライズを行う会社の方とお会いしましたが、なんとなくその頃の記憶が曖昧です。
例えばこんなシーンは……
こんな感じになります。
先ほどの『ジーン』のシーンは、海外版ではこんな感じになります。
海外版『LUNAR ETERNAL BLUE』のマウスパッドもしばらく使っていました。
改めて振り返ってみると、本当に素晴らしいプロジェクトでした。
こんなステキなタイトルに関わることができて幸せです。
間違いなく私にとっても代表作の一つです。
■1995年:グランディア
ターゲット:セガサターン
言語:C言語
担当:プロトタイプ
当初、私がメインプログラマとしてプロジェクトがスタートしました。
『LUNAR ETERNAL BLUE』のメインプログラマだったからか、なんだか当たり前のようにポジションが決まっていました。
G社在籍中の最後の仕事はコレ……ですが、いろいろあって開発途中でB社に移籍してしまいました。
発売時にG社から製品版が送られてきたので、多少は私のコードが残っているのかも……いや、ないな、それは。
というわけで、私が関わったのは本開発に入る前……「PoC」とでも言いましょうか。そんな感じです。
発売は1997年ですが、私がG社に在籍していたのは1995年7月までなので、タイトルは1995年にしておきます。
■1995年:ぷよぷよ通(SS)
ターゲット:セガサターン
言語:C言語
担当:メニュー / オプション
1995年8月からは「B社」時代です。
「G社」時代に何度か出向して楽しんだ開発室へ!
PCエンジン版『VEIGUES』の頃は『白金台』、『ライズ』の頃は『元麻布』、そして移籍したときは『池袋(要町)』。
B社は引っ越しが多いイメージです。
移籍絡みの詳細は ↓ こちらの記事にあります。
G社からB社に引っ越してすぐにセガサターン版『ぷよぷよ通』のプロジェクトに助っ人として参加しました。
ゲームの本編はほぼ出来上がっていましたので、私はモード選択やオプション、メニュー、ペリフェラル関連を担当しました。
踊るカーくんはめっちゃ気合入れて作った覚えがあります。
VIDEOを選択すると、ライブ映像が流れるのですが、開発中はこの歌が頭から離れませんでしたね。
作業をしながら
「ずっとココに、いーるーよ♪」
と自分のことを歌ってみたりして。
いや、ホント、ずっと会社に寝泊まりしていましたので。
■1995年:結婚前夜
ターゲット:セガサターン
言語:C言語
『ぷよぷよ通』のFIX直後から、こんなタイトルも作りました。
製品版を持っていないので、検索した画面のスクショです。
突然仕事を振られて、よく分からないまま何日か徹夜で作業してた記憶……
『ゼリアード』のメインプログラマ「Sちゃん」が手伝ってくれた記憶……
画面の表示モードが高解像度でインターレースだったんでしたっけ?
小人さんがたくさん仕事してくれたので、記憶があやふやです💦
□1998年:GAME BASIC for SEGASATURN
ターゲット:セガサターン
言語:C言語 / MC68000アセンブリ言語
担当:サウンドシステム全般とMMLの設計&実装
セガの家庭用ゲーム機である『セガサターン』で「BASIC言語」によるプログラミング環境を提供するソフトウェアです。
セガサターンにキーボードを繋いで使うほか、ソフトキーボードによって、キーボードを持っていなくても(かなり大変だと思いますが)パッドで入力することができます。
PCとの接続ケーブルも付属しているので、Windowsが動くPCでプログラムコードを書き、セガサターンに転送して実行することもできます。
私は、「サウンド機能」全般の設計とプログラミングを担当しました。
具体的には『BASIC』の「サウンド関連の命令」全部と『MML(Music Macro Language)』と呼ばれる「音符の並びを文字列で表現する」ための仕組みを作りました。
特に『MML』は、楽譜を忠実に入力できるようにするために「調」を指定したり、小節の区切り記号を使って効果の範囲を『楽典』通りに機能させたりと、かなりこだわって作り込みました。
写真の通り、マニュアルの半分弱がサウンド機能の解説に割かれているほどです。
「楽典仕様」で使わない場合は、従来のパソコン等で使われてきた『MML』と同様に、簡単な音符の記号だけでも楽しめるようになっています。
この仕事を「やってみない?」と打診されたときは、「簡単にドレミが鳴ればいいから」という話でした。
私も最初はそのつもりでした。『PC-8801mk2SR』に搭載された『MML』ぐらい鳴らせればいいかな、と思っていました。
しかし、『セガサターン』が本来持っているサウンド機能を調べているうちに、だんだん欲が出てきました。
「せっかくこんな性能の良いチップが乗っているのに使わないのはもったいない!」という気持ちが強くなってきました。
冒頭にもリンクしたこの記事の通り……
私はもともと『シンセサイザー』や『デジタルシーケンサー』を自作していたくらい電子楽器や音楽が大好きな人間です。
『シンセサイザー』の回路図が目的で購入した「マイコン雑誌」がキッカケで(横道に逸れて!)いつの間にかプログラマになったようなものです。
音楽機能だけでなく、メインCPU側と通信したり、割り込みを制御する命令を追加して、任意のタイミングで音楽を切り替える機能を付けたりと、作っているうちにどんどん仕様が膨れ上がり、やりたいことを全部詰め込んだ「完全に趣味に走った」作りになってしまいました。
上の動画は、製品に「サウンドデモ」として同梱したプログラムの中の『ファイアーホーク』というゲームのBGMを再現したものです。
このゲームをプレイしたことがある方は、シームレスにボス曲に切り替わっていたことを覚えていると思います。
通常のエリア曲の中に、違和感無くボス曲にチェンジできるポイントが数か所設定されており、ボス曲へのチェンジリクエストがかかると、ちょうど良いタイミングで切り替わるようになっています。
私は『MML』でコレをやりたかったんですよね。
何せ『ゲームベーシック』ですから、ゲームのBGMでやりたくなることも実装したかったのです。
上の写真の一番下の行にあるものが「それ」です。
『MML』文字列の中に「!」マークを挿入したところまで演奏すると、メインシステムに割り込みがかけられるようになっており、『ON MMLSTAT GOSUB』命令を使って、BASICで書かれたメインの処理を切り替えることができる仕様です。これにより、「キリの良い部分まで演奏したらボス曲に切り替える」といった処理が可能になっています。
「こんな仕様のMMLをちゃんと使ってくれる人はいるだろうか」と思いながら作っていましたが、実際どうなんでしょうね。
私は何も悪くありません!(笑)
誰にも止められなかったから、細かいところまでこだわって自由に作らせてもらった感じです。
この製品のマニュアルも、全部私が書きました。
だいぶ「走ってしまった」ので、後から読み返すと分かりづらい部分も多いです。
サウンドシステムのブロック図や……
DSPエフェクターの結線図などは、本当は綺麗に描き直してほしかったのですが、私がテキストエディタで描いたものがそのまま使われてしまいました。
特にこだわったのが『FM音源』の機能です。
B社のサウンド担当の人間と雑談していたときに、「セガサターンのハードの仕様上では32個のオペレーターを自由に結線できるんだよねー。それが使えるようになったら凄いなー」と言われました。
だからというわけではありませんが「それ」を実現しました。
ベースはセガさんから提供されたサウンドドライバを使っているのですが、FM音源に関しては仕様通りに鳴らそうと思っても全然思った通りに鳴らなくて参りました。
動作を追いかけてみると、すぐにドライバのバグが見つかりました。
何度かセガさんとやり取りして別のドライバを送ってもらったりしたのですが、こちらの要求通りには動きませんでした。
仕方がないので、本『GAME BASIC』が起動し、セガさんのドライバをMC68000側のメモリに転送したあと、メイン側から直接68000のコードにパッチを当てて、一部私が作り替えたコードを通るように変更しました。
結果、私の仕様通りにバッチリ鳴ってくれました!
こんな話を『X』にポストしたら、プロの方からリプいただきました。
このFM音源の機能をたっぷり使った音楽をYouTubeに上げているとのことで早速試聴を……
めっちゃカッコイイ!
私が作った『MML』&『サウンドシステム』をこちらの想定以上に使いこなしてくれたことに感動しました!
以下、ご本人による紹介文をそのまま引用します。
SEGA SATURNのFM音源YMF292-Fは、32オペレーターの範囲で自由にアルゴリズムを組み合わせる事が出来ます。
そこで、オリジナルのFM音源パートで4オペレーターFM音源を3ch、PSG音源パートを2オペレーターFM音源で再現して、2ch使いました。
PCMドラムパート用に、1オペレーターを4ch使いました。
ベースも、オリジナルではサンプリングなんですけど、今回はYMF292-Fだからこそ可能な、7オペレーターFM音源で再現しました。
なので、ドラム以外はFM音源で鳴っております。
SEGA SATURNの内蔵FM音源の音楽を聴いた事が無い人は、必聴です♪
そして、SEGA SATURNも立派なFM音源マシンなのです!
SEGA SPACE HARRIER "MAIN THEME" from SEGA SATURN BASIC YMF292-F Version♪
分かってくれる方はいるんだなぁ~と嬉しくなりました。
この動画に寄せられたコメントの一部も紹介します。
サターンのFM音源って専用のFM音源チップには敵わないのかな、とも思っていましたが、ここまで出せると知って嬉しくなりました。
How is that possible?! This sounds super close and faithful and perfectly identical to the original arcade version of the song!
感謝感謝です🙏
『セガサターンマガジン』の1998年vol.18 に、『GAME BASIC for SEGASATURN』のインタビュー記事が掲載されました。
「サウンドドライバ担当」として紹介されています。
ちと微妙ですが、まあいいです。
32歳の頃です。
偉そうに語ってしまい申し訳ございません🙏
同時期に『ゲームラボ』の取材も受けていました。
AZ-1の運転席側にいるのが私、助手席側にいるのがB社のM社長です。
『GAME BASIC for SEGASATURN』についても触れられています。
今まで数多くのゲームを作ってきましたが、この仕事が一番楽しかったんです。原点に返った気がします。
「あぁ、自分、こういう仕事がやりたかったんだなー」
と心の底から思いました。
遊んでくれたすべての皆さんに感謝します。
■1998年:ダービースタリオンSS
ターゲット:セガサターン
言語:C言語
担当:牧場シーン / 厩舎シーン / 馬データリスト
『セガサターン』版の『ダービースタリオン』です。
この仕事も突然私に回ってきたんですよね。
『ゼリアード』のメインプログラマ「Sちゃん」から声がかかりましてね。
後から聞いた話ですが、かなりスケジュールがタイトだったようで、「短期間でこの移植仕事ができるのは、いまB社にいるくまさんしかいない」とSちゃんがA社で話したことから会社の枠を超えて私が呼ばれたらしい……。(話あってます?)
私、なんだかものすごく有能なプログラマになった気分でした(笑)
PlayStation版からの移植です。まずはPlayStationについて知らねばなりません。扱ったことがありませんでしたから。
グラフィックのデータ構造や描画のクセのようなものにも初めて触れます。
そこからセガサターンとの共通点を探し、どんな感じで移植していこうか……ということをじっくり考えて、方針が決まったら一気に移植作業にかかります。
当時『世田谷区若林』にあったASCII社の開発室で撮影したものです。
撮影日は1998年10月12日。当時32歳。
こちらはSちゃん。
同い年。
しばらく「住んでいた」A社が入っていたMビルです。
若林と言えば、最初に勤めたG社も入社当時は若林にありました。
世田谷区役所の真ん前に開発室がありました。
世田谷区役所と言えば、このMビルに泊まり込む前日に行ったばかりでした。
「婚姻届」を出しに(!)
私、このビルから2kmほど西にあった病院で生まれまして、こどもの頃はこの近くに住んでいました。本籍地もいまだに世田谷なんですよ。
新婚生活中ですが、いきなり泊まり込みの仕事が始まり、かみさんには色々苦労をかけました。たまに着替えを持ってきてもらったり、ビルの下で一緒にたこ焼きを食べたのは良い?想い出。
私が担当したのは「牧場シーン」と「厩舎シーン」、そして「馬データリスト」です。
10頭ほどの馬をある順番で選択しながらボタンを押すと、「とあるメッセージ」が表示されるよう裏コマンドを仕込んであるのですが、作った本人が忘れてしまいました……。ソースコードを解析しても分からないと思います。
かみさんに感謝……。
このゲームがB社での私の最後の作品になりました。
■2001年:鄭問之三國誌
ターゲット:PlayStation 2
言語:C言語
担当:一騎打ち戦闘
このゲームについては、いろいろ複雑なバックグラウンドがありまして、あまり多くを語りたくないというか語れないというか……。
でも、関わったことは事実なので、紹介だけはしておこうと思います。
G社から発売されましたが、開発の前半はB社、後半はGC社。
私がこのプロジェクトに投入されたのは1999年の後半だったか2000年になってからだったか……感覚的にとても「嫌~」な気分で手伝いに入りました。
私が担当したのは、この「一騎打ち戦闘」のシーンです。
カードゲームですね。
とにかくあまり思い出したくもない過去一番つまらない仕事でした。
理由はたくさんあります。
どこかの誰かが考えた仕様通りに作らなければならない苦痛。見るのも嫌になるほどスパゲッティなメインプログラムに自分のパートのコードを合わせなくちゃいけない苦痛。理不尽な要求に対する精神的な苦痛。
開発途中でB社の分裂騒ぎがあり、B社に残るものと新設のGC社に移るものに分かれたけれど、私はどちらにも付かず個人事業主として新しくスタートすることにしました。
このゲームはB社の分裂後、GC社側が引き継ぐことになり、そこの社長から「月○○万円でどう?」と金額を提示され引き続きやってくれと言われ、あまり乗り気ではなかったけれど最後まで関わった記憶。
なんとなくメイン部分のウィンドウとかにも関わった覚えがあるのですが、ガチで嫌なことは忘れてしまう病気なものでー💦
ホントに覚えていません。
当時の日記を読み返すと、どうやらオープニングやオプションなども私が作ったらしいです……。
□2001年:C言語 / ゲームプログラミング講義
2001年の元旦から個人事業主としてスタートしました。
2008年の3月までの7年間、我ながら頑張ったと思います。
ゲームプログラムも何本か作りましたが、専門学校の講師も比較的大きなウエイトを占めていました。
ひょんなことから声がかかり、ゲームプログラマー/デザイナーの養成校とも言われていた学校に講師として招かれました。
私が担当した講義は『C言語』と『ゲームプログラミング』です。
年度によって前後しますが、週に6~8コマほど受け持っていました。
『C言語』は基本からゲームプログラミングに特化した実践的なところまで教えていました。
講師仲間はどっかで見たことあるような業界の人ばかりでしたね。
私に講師なんて務まるのか?
と最初は思いましたが、不思議なことに何年もやっていると板についてくるものですね。
途中、「R&D」の仕事が忙しくて1年抜けましたが、2001年春から2009年春まで、個人事業主として活動した期間は講師の仕事を続けました。
発表会とか卒業パーティーも楽しかったな!
この学校は、講義用のテキストやプログラムはすべて講師が用意していました。てっきり学校が用意してくれたテキストをなぞりながら教えるのかと思っていました。
私が作ったテキストやサンプルプログラムは、事前に学校側が内容をチェックすることもなく、すべて講師の責任で印刷して配っていました。
事前の準備も大変でした。
何せ『ゲームプログラミング』の講義はゲームを1本作るのと同じ労力が必要です。しかも、「動けばいい」レベルではなく、ゲームプログラマを目指している学生にとって分かりやすく正しいコードを書かねばなりません。
どこを質問されてもきちんと説明できなければなりません。
いきなり実践的過ぎてパニックにならないよう、段階を踏んで何パターンもプログラムを用意したり、コメントも分かりやすく綺麗なソースコードを毎回提供してきたつもりです。
コマ単価の報酬だけじゃ割に合わない気もします(笑)
ここで講師をしたからこそ出会った人たちも多いです。
後の仕事を一緒にやった人もいます。
『ゲームプログラミング』の講義で使用したサンプルプログラムについては、もう少し後、下の方で再び触れたいと思います。
□2002年:DG(R&D)
ターゲット:Windows
言語:C言語
詳細は書けませんが、某巨大企業に潜り込んでR&Dをしていた時期があります。
モノは「3Dネットワーク対戦ゲーム」です。
R&Dなので、公にリリースされていません。
出せる情報はココまで……。
☆2002年:『JAVA PRESS Vol.22』
技術評論社の『JAVA PRESS』という雑誌に
「PS2でJavaしようぜ!」
という記事を執筆しました。
『PS2 Linux』キットでJava VMを動かそうという内容です。
四半世紀前に開設していたWebサイトで、同名の記事を公開していたのですが、それを掲載したいと出版社から申し出がありましてね。
キットの内容はこんな感じ。
キーボードとHDDが付くくらいで、ごく普通のPS2です。
それに『Linux』をインストールして、Webサーバーなどもインストールし、自宅サーバーとして外に公開していました。
「プログラミング環境も構築してみよう」という流れで、Java VMもインストールしたのでした。
ほとんどゲームは起動されず、ただ外部からのリクエストに応えるだけの我が家のPS2でした(笑)
□2002年:レンズ・シミュレーション
ターゲット:Windows
言語:C言語 / DirectX / Cg
某企業からレンズとアルミ蒸着のシミュレーションを行うプログラムを依頼されました。
画面をお見せすることはできませんが、リアルタイムに回転拡縮し、光源から放たれた光を蒸着部分で反射させ、レンズ形状によってどのように拡散収束するかのシミュレートを行うものです。
ビデオカード側の「GPUプログラミング」を始めるキッカケになった仕事でした。
Direct Xのシェーダーや、Cgを使いました。
シェーダーが動くビデオカードもいろいろ差し替えて実験していました。
参考にしていた書籍たちです。
NVIDIAの株を買っておけばよかったな(笑)
■2005年:キョロちゃんパズル城
ターゲット:BREW(Binary Runtime Environment for Wireless)
言語:C言語
BREW携帯で動くパズルゲームです。
『新宿』のN社の案件です。
講師をしていた学校が『新大久保』だったので、学校帰りに新宿に寄って打ち合わせをし、自宅でプログラミングしていました。
作っていて楽しい仕事でした。
ゲームもおもしろいし!
□2006年:Proj-V(専門学校の教材)
ターゲット:Windows
言語:C言語 / DirectX
2006年度版の『ゲームプログラミング』講義用のサンプルゲームです。
マップスクロール、オブジェクトの管理方法、3Dモデルの描画、武器やコリジョン判定……教えることは山ほどありますが、少しずつサンプルを発展させて、毎回目を引く演出も考えて飽きさせない工夫を凝らしたつもりです。
私がこの『ゲームプログラミング』の講義を引き継いだ最初の年は、上のようなグラフィックでした。前任の講師が用意してくださったものをそのまま使わせていただきました。プログラムは自前です。
2Dマップスクロールは、縦スクロール、横スクロール、全方向、マップ回転などのサンプルを用意しました。
三角関数はもちろん、ベクトルの内積や外積、マトリクス演算がどのように使われるのか……など必要最小限の数学の講義も行いました。
円周率「π = 3.14」での誤差の話もしました。「π = 3」にしたり「π = 3.14159265」に設定して、動きがどう変わるかを実際に試したり、敵の方向を調べたり、こちらに向かってくるのか遠ざかっているのかをベクトルの内外積で調べたり、Direct XやOpenGLのライブラリを使わずに三角関数ベタ書きで物体を回転させるコードを書いてみたり、それなりに楽しんでいただけたんじゃないかと思います。
マップは2D、敵のボスキャラ(という設定の母船)は3Dオブジェクトが派手に回転しながら攻撃してくるものを使いインパクトを狙いました。
2D座標で動く自機の攻撃と、3D空間にある敵の砲台との当たり判定を取るための投影サンプルなんかは、自分で作っていても楽しいプログラミングでした。
2006年度からグラフィックを一新し、新たに3Dモデルも追加したため、学生はもちろん講師である私もサンプル作りのモチベーションが上がりました。
グラフィックは、『VEIGUES』や『アリシアドラグーン』でコンビを組んでいた安住氏による描きおろしです。
なんかまた2人で組んでゲーム作ってみたくなりました。
講師時代の私の机です。
テキストを書くために入門書の類もたくさん読みました。
あ、あとですね、講師ですので試験もやります。
この写真は答案を自宅に持ち帰って採点しているところ……を邪魔されているところです(笑)
専門学校は2009年度末をもって廃校になりました。
少子化が原因ですが、「黒字のうちに閉じましょう」という流れでした。
とても良い学校でしたので残念ですが仕方がありません。
長いことお世話になりました!
この後、講師仲間と一緒に会社を作ろうという話になりました。
設立は2008年ですから、会社を作ってから1年間は講師も続けていました。
□2009年:東証有価証券オプションシミュレーター
ターゲット:Webブラウザ(Silverlight)
言語:C#
担当:画面デザイン / メインプログラム
講師仲間と作ったT社での仕事です。
個人だったらまったく縁が無かったようなプログラムをたくさん作りました。ゲームだけでなく、ビジネス系のツールやアプリケーションも作りました。
個別の企業の業務のためのプログラムはココでは書けませんが、このシミュレーターは公に公開され、WebニュースやMicrosoft社のサイトでも紹介されていたものですので、少しだけ紹介したいと思います。
この「有価証券オプションシミュレーター」は、複数のシナリオに沿って株価が上下したり、ニュースやイベントが発生したりと、造りはゲームプログラムと何も変わりません。
マイナビニュースの過去記事で紹介されているのを見つけましたのでリンクしておきます。
このプログラムを作るにあたり、有価証券を専門に扱う企業に出向き、たっぷり講習を受け、作る上で必要最低限の専門的な知識を勉強しました。
プログラマは2人です。
メインプログラムと画面デザインは私。細かい計算部分はもう一人の仲間が担当しました。その仲間というのは、講師仲間でもありドラクエのプログラマでもあります。
開発には『Visual Studio』を使い、使用言語は『C#』です。
画面デザインは『Expression Blend』を使い、私がチマチマ作りました。
『Silverlight』を使ってWebブラウザで実行することができます。
「実用的な『Silverlight』を使ったプログラム」ということで、『Microsoft』さんからお呼ばれして、取材を受けたこともあります。
いま探してみたのですが、見つかりませんねー
その時に掲載された私の写真でも貼っておきます。
■2011年:たんごマスター
ターゲット:iOS / Windows
言語:Objective-C(iOS用)/ C言語(Windows用)
英単語をクロスワードパズルで覚えよう!
ts社からの案件で開発が始まりました。
T社時代に受けた案件ですが、私はこの年の3月にT社の取締役を辞任し、再び個人事業主を始めました。
キッカケは『3.11』です。→ 関連記事
このアプリを開発する権利をT社から買い取り、自宅で開発を続けました。
iPhoneやiPad版をしっかり完成させ、App Storeにも登録し、公開しましたが……数日で削除しました。
この頃の行動を思い出すと、とても悲しくなります。
すべて病気のせいなんです。
精神状態が危うかったので、もうこれ以上プログラマを続けることは無理だと思いました。
T社時代に作ったサンプルCDが、まだ残っていました……
最初のイメージキャラクタは猫でした。
個人事業主になってからはカエルに変わりました。
理由は特にありません。
『たんごマスター』のクロスワードパズルは「自動生成」です。
予めパズルの組み合わせがデータ化されているのではなく、学習状況に応じて選択された英単語を自動的に組み合わせ、画面の範囲内にうまく収まるように生成しています。
T社時代の私の机です。
いや、もちろんPCが使えるデスクもありましたが、アルゴリズムを考えるときは、いつもこの席で紙とペンを使って妄想していました。
若い頃からのクセのようなものです。
広い空を眺めながらボーっとしていると、良いアイデアが浮かぶんです。
あとは散歩ですね。
公園をぐるぐる回りながら考えていると、突然閃いたりします。
こんな環境で「自動生成」の良いアイデアを思いつきました。
実装して気持ちよくパズルが自動生成される様子を見て、思わず「ワタシって天才じゃね!?」と自画自賛していました。
Windows版も作りました。
グラフィックは、安住氏に頼みました。
これも『VEIGUES』と同じ人なんですよ🤭
Windows版は『窓の杜』さんで紹介されました。
『Vector』さんでも紹介され、ココでダウンロードすることもできました。
いま思えば「もったいないことをしたな」と少し後悔の気持ちもあります。
せっかく高いお金を払って開発する権利を買い、App Storeの開発者登録もし、iPhone用のアプリを開発するために『Objective-C』の勉強もし、やっとの思いで完成させて公開したのに、そんなもの全部無駄だった。私がやってきたことはすべて無駄だった……。そんな感情に支配されてすべてを削除してしまいました。
それだけではなく、「もう二度とプログラムなんか組まない!」と思い、過去に作ったプログラムや資料が保存されたHDDを消去し、開発環境もすべてアンインストールしてしまいました。
ここで私のプログラマ人生は幕を下ろしました。
PC-8001を購入し1981年から始まったゲーム制作。
G社の門をたたいた1987年。
B社に移籍した1995年。
個人事業主になった2001年。
T社を起こした2008年。
再び個人事業主なった2011年。
プログラマから足を洗い、まったくの異業種に転職した2012年。
PC-8001を購入してから転職するまでの31年間、たくさんの作品を作ってきました。
XなどのSNSで、「当時遊んだ」とか「大好きなゲーム」などのポジティブなポストを見る度に、「自分がやってきたことは無駄じゃなかったのかもしれないな……」と救われる思いです。
みなさん、ありがとう🙏
□13年ぶりにプログラムを書いた
ターゲット:PC-8001
言語:Z80アセンブリ言語
2025年11月。
2回目の『80mk2会』に参加してから、少しだけ気持ちに変化が現れました。
具体的には上の記事の最後に記した通りです。
転職を機に過去のソースコードや開発環境をすべて捨て去り、「もう2度とプログラムなんか組まない」と思っておりましたが、レトロPCの集まりに参加させていただく機会があり、ちょっと刺激を受けてしまいました。
転職して14年目。その間ホントに一切プログラムを組んでいなかったので、脳ミソが錆びついております! お作法なんか何も覚えていません!
とりあえずコード書いてアセンブルして画面に何か表示するところまでの流れを作ることができれば、なんとかリハビリにはなるだろう……。
というわけで「hello, 80 world」でございます。
「100万年ぶりにZ80のコード書いてPC-8001(mk2)で動かしてみた」
と大袈裟にポストした動画です。
実際には14年ぶりに書いたプログラムですが、高校時代に夢中になった『PC-8001』のプログラムを書いてみて、
「あぁ、やっぱりプログラミングは楽しいかもしれない」
なんて思ってしまいました。
さて、これからどうなるでしょうね。
もう人生の先も見えてきたことですし、レトロPC用のゲームを盆栽いぢり感覚で作って楽しむのも良いかもしれないな……なんて思っているところです。
以上、長々とお付き合いいただきありがとうございました!

