伝説のDirectX

私は、伝説のWindowsGDI“BitBlt”の時代の頃から「メモリ上の画面を用意→そこをクリアしてから全部描く→スクリーンにコピー(Flip)」だけしか使ってないです。描く回数が多くなって重くなるという不自由は、当時は、描く量を減らすのとDirectXを使うことで解決しました。
マップタイルの描画は、昔WinGLらへんが脚光を浴びはじめたかどうかの頃は、確かに「背景」用のメモリ画面を用意してスクロールシステムを実装するのが主流だったようです。が、今の(私の)環境では自作のゲームが重くなるという事態が全く起きません。なので2Dのゲームで例えばタイルの描画速度が気になることもなくなってしまいました。重い場合はどうにか軽くするけど、そもそも重くならない。とりあえず「見た目がちゃんと動けばそれがちゃんとしたコードだろ」とか思います。ノドモト過ぎてます。古いマシンのテスト環境はあったほうがいいですね。
mg1(http://hp.vector.co.jp/authors/VA018250/games01.html )を「WindowsGDIで」作ってたときは、背景のブロック(表示されるタイル)を一マスずつBitBltで描くと、描くブロックが多い場合に速度が非常に遅くなってしまうという問題がありました。
この速度低下を解決するために私が使ったのが、DirectX(2か3)です*1。昔です。CPUが133mhz、メモリ16MB、グラフィック系は知らん、という環境*2ではDirectXの本分である高速描画が役に立ったのです。
DirectXの使い方は一応ヘルプファイルやサンプルもありますが専門書にも手を出してしまいました。Googleは無かった。でも勉強する気力はあった。
マジジェノのDirectX化の副作用として高速なフルスクリーンモードも使えました。別の副作用として、かなり多くの環境でフルスクリーンにチェンジできなくて起動できないという問題も出ました。ちゃんとウィンドウモードも用意されてるんだけど、readme読んでないのかよと。
あと何回でも言っておきたいことがあるんですが、マジジェノが入ってるフリーソフトゲーム集がググるとヒットするんですけど、私は全く印税などを貰ってません。フリーソフトだし。一冊あたり1円もらってたら今頃うまい棒が2本は買えるほど儲かっていたのではと思います。見本誌やサンプルをブッ☆オフに売ってればうまい棒が4本は買えたのではとも思います。
こないだゲーム屋でくじ引いたら割引券とうまい棒1本を貰ったんですよ。「うまい棒です」っていう店員の言葉がちょっと面白かった。
なんの話だっけ。

*1:ちなみにAllegroのWindowsポートは内部的にDirectXを使ってます

*2:そんな環境でもDiabloはフロア生成とネットのラグ以外はサクサク