見出し画像

『Beep21』内藤寛のDeepな〇〇 ─第6回 あの当時のゲームの開発環境の話─

【おしらせ】ただいまデザインのリニューアル中です。


皆さんこんにちは。へっぽこプログラマーの内藤寬です。

紙のマニュアルって大事ですよね...

 最近の車には様々な運転支援機能がてんこ盛りに付いていますよね。車線変更時に左右後方の警告や車線逸脱警告などは前からありますが、見通しの悪い十字路での車や人の接近警告、バックする際に壁などがある場合のブレーキ抑制、前の車の発信情報、標識を識別してヘッドアップディスプレイに表示、渋滞時にハンドル、アクセル、ブレーキを触らなくとも自動で発信停止を繰り返すなど、とんでもない数の機能が備わっています。

 あらかじめカーブを予測して、車速が速い場合には自動的にブレーキをかけたり、ハンドルを切ったりするお節介せっかいな機能も大量にあります。そしてこれらの機能のオン・オフを設定するのですが、これがまた絶望的に厄介なんです。それぞれの機能に名前が付いてるんですが、これが本当に分かりづらい。設定画面ではアルファベット3文字位で略されているので全然分からない。

[LDA][BSM][PCS][PDA][RCTA][PCD][PKSB][SEA][RSA][DA][OAA]

って何なんですか?

しかも極めつけは、分厚い紙のマニュアルが付属していない!
メーカーのネット上にはありますが、いちいち分からない事をPCで調べ、車で設定し、また分からないとPCで調べる......移動している間に設定方法を忘れてしまいます。車内の大型ディスプレイ上でも取説は見れますが、そもそもその画面で設定するので、取説を見ていると設定できません.......。

 ゲームでは「マニュアルなんて読まなくても遊べる」というスタンスで製作しますが、車の場合はマニュアルは必須ですね。

というわけで最後強引にゲームに絡めての、コラム第6回スタートです!

※本記事はこちらから読むことができます(※下の「2023年間購読版」もかなりお得でオススメです)

◆お得な「年間購読版」でも読むことができます!

※『Beep21』が初めてという方は、こちらの『Beep21』2021〜2022年分 超全部入りお得パックがオススメです!(※ご購入いただくと2021〜2022年に刊行された創刊1号・2号・3号・メガドライブミニ2臨時増刊号すべての記事を読むことができます!)

※初めての方は「シャイダク」についての「内藤寬のDeepな◯◯」を読むことができる「無料お試し10記事パック+α」もぜひご覧ください!

'80年代~'90年代のゲームの作り方って?

 最近僕のYouTubeチャンネル内藤かんチャンの影響か、昔はどうやってプログラムを組んで開発していたのか?という質問を受けることがあります。当然今とは開発の仕方が全然違いますので、今回は’80~’90年代はどのようにゲーム開発が行われていたかを振り返り、当時の開発環境についてお話ししましょう。

 僕がプロになって初めて手がけたソフトは、1981年に発売が開始されたNECのPC-6001という機種で動作するゲームでした。6001は僕の愛機でもあったので、家でプログラムを組むのと全く同じ環境で開発出来ました。所謂『実機開発』というヤツです。6001が一台あれば、それでプログラムを組み→実行→組む→実行...。これを繰り返し、おかしな所やバグがあれば画面上の症状を見て解決していくという手法です。この時代のパソコン(当時はマイコン)でのソフト開発はこの方法がスタンダードでした。市販されなくとも趣味としてプログラムを組んでいた人は多かったのではないでしょうか。

 その次の開発はMSXシャープのX1やPC8801でした。これらのハードは実機での開発も可能ですが、ここから『エミュレーター開発』の時代がやってきました。それぞれのハードのCPUを取り外し、その部分にICE:アイス(In-Circuit Emulator:インサーキット・エミュレータ)と言われるハードをつなぎます。ICEは更にプログラムを組むためのPCに繋げます。

 つまり開発にはターゲットとなるPCと、プログラムを組むためのPCの2台が必要となりますが、この2台は同じ機種である必要はありません。当時はプログラム用のPCはPC8801かPC9801が主流でした。この開発構成のメリットはまさにエミュレーターデバッグで、CPUの代わりにそのCPUと全く同じ動作をICEという機械やソフトがやってくれるのです。

 僕のYouTubeのデバッグ動画でも度々登場する、ブレークポイント。これは特定の条件が満たされた時にCPUを停止してくれて、その時の様々なパラメーターを見ることでどこにバグがあるかを追跡することが出来ます。例えば特定のワークエリアに数値が書き込まれたらブレークポイントとか、戦闘時に敵のHPが100以下になり、主人公のHPが10以下になったらプレークポイントとか、複数の条件を設定することでその場所を特定しやすくなるのです。高速で動くCPUは、画面上でおかしなことが起こった時に人間の手で止めても、遥かにプログラムが進んでしまいます。実機開発では絶対に出来なかった行為がICEによって出来るようになったのです。その他、それまで動いてきたプログラムの履歴を見る『トレース』機能、プログラムを一行ずつ実行する『ステップ』など、ICEは本当に便利な機械なのです。

大事なデータが消えることも...

 そういえばこの頃はまだハードディスク等大容量の記憶媒体はありません。フロッピーディスクが全盛期で、しかもサイズは5インチが主流であり、場合によってはLPレコード位大きな8インチを使ったりしていました。しかも容量がものすごく少ないので、あっという間に満タンになってしまいます。そこで自動的に作成される余計なバックアップファイルをコマンドを打って手作業で消すのです。が、[ERA *.BAK]と打たなければならないのに[ERA *.MAC]と打って実行してしまい、大変な事態になるコトがありました。『バック』と『マック』なので発音は似ていますが、スペルは違います。しかもこのMACというファイルはプログラムのソースファイルなのです! 一番重要な絶対に消してはならないファイルを誤って消してしまうという暴挙を、何故か何度も繰り返してしまいました。きっと徹夜続きで疲れていたのだと思います。

ファミコン時代のゲーム開発

ここから先は

2,788字 / 4画像

この記事が気に入ったらサポートをしてみませんか?