2020年01月24日

NEOBRASTERのWindows版を作っていたころのゲームプログラミング事情とMS-DOSの頃の思い出

先日、「NEOBRASTER」がWindows 10で遅いながらも動いたという話を書いたのですが、そのついでで思い出したことを少々。

自分が作った時はそうしなかったけど、この頃に作成されていたDirectXを使ったゲームって、なぜかEscキーを押すとゲームを強制終了してしまうものが結構あった気がします。

ゲームを強制終了というのは「終了しますか?」とご丁寧にダイアログを出して聞いてくれるようなものではなく、無言でプログラムがいきなり終わっちゃうタイプの強制終了のこと。

おそらく、DirectXの参考書籍のサンプルプログラムをそのまま進化させて作っているせいで、そうなっていたんじゃないかと推測していますが、それはさすがにユーザーエクスペリエンスの形としてどうかと思いましたね。

それと、ゲームプログラムを終了させるためのタイトル画面の選択肢が「Windowsへ戻る」になっているものがいくつかあったと思います。

前の世代のMS-DOSの頃ならDOSプロンプトに戻るということで「MS-DOSへ戻る」は理解できなくもないですが、マルチタスクOSで「いつでも他アプリへ切り替えられる」Windowsにおいて、「Windowsへ戻る」はネェだろうと思ったもんです。
さすがに今ではそういうゲームは無くなっているだろうか。


そのMS-DOSの頃だと、ゲームプログラムが終了してコマンドプロンプトに戻ることを前提としていないものもあったと記憶しています。

ディスクを入れたらMS-DOSが起動し、AUTOEXEC.BATからゲームプログラムが直接実行され、ゲームプログラムを終了したいときは、電源ボタンを直接押して終了すべし、みたいな感じの。

ファミコン的なスタイルの動作方法だと思えば、なじみがあるかもしれません。

ただ、SMARTDRV(ディスクキャッシュ)が動いている環境でこれをやられてしまうと、

  • ゲームデータがディスクキャッシュのせいでディスクに書き込まれない。
  • ゲームを終了してCOMMAND.COM上でSTOPキーを押せばディスクキャッシュが書き込まれるのだが、ゲームプログラムが終了してくれない。

みたいな状況が生じて詰む、なんてことがありましたっけ。
ゲームを動かしたいときは、SMARTDRVは切るか、書き込みはキャッシュしないタイプのディスクキャッシュを使うかしないといけないというのを知らないと、そんなことになりました。


posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | PC
この記事へのコメント

この記事へのトラックバック