Home > C言語(Windows) > GDI+でどこまでできるか

GDI+でどこまでできるか

4月に『13歳からはじめる ゼロからのC言語ゲームプログラミング教室 初級編』という新刊が出るのですが、そこではDXライブラリやDirect3Dを使わず、GDI+だけでゲームを作成しています。GDI+を選んだのは、単に「Windows APIの解説書だから」というのが一番の理由なのですが、「カジュアルゲームならGDI+でも大丈夫なんじゃないのか」という読みもありました。

chap6game1 chap6game2

というのは……

カジュアルゲームの実行環境としてもっともメジャーなFlashでは、Direct3Dを使わずに結構派手なゲームが動いているからです(少なくともVer.9までは使っていないはずです)。CPUの性能が上がった今なら、GDI+でもイイ線いくのではないでしょうか?

実際に試した結果が↓です。

http://i-libro.net/game/playroom/showgame.php?gameid=83

この「宇宙戦艦ディフェンスゲーム」は800×600サイズ、12.5fps(タイマー間隔80ミリ秒)で描画していますが、これを倍の25fps(40ミリ秒)に上げるとCore2Duo搭載ノート(3年前のモデルにWin7をインストール)でも画面がちらつきます。タスクマネージャのCPU使用率は半分程度だったので、CPUパワーが足りないというよりはGDI+ではこれ以上速く描けないようです(ただし、ウィンドウサイズを小さくすれば24fpsでも大丈夫です)。

12fpsなら社内でもっとも古いWindows PC(7年前のノート、XP)でもCPU使用率70~85%ぐらいで動くので、サンプルとしてはこれでOKとしましたが、結論としては、GDI+だと800×600、12fpsが限界という結果になりました。それなりには動きますが、やはりDirect3Dにはかないません。

Flashにはもっと高fpsのゲームもありますから、おそらくGDI+よりも軽くて高速な自前の描画エンジンを使っているのでしょう。

少々残念な結果でしたが、GDI+の2D描画の手軽さは捨てがたいものがあります。複雑な曲線や図形、文字も自由に描けますし、そもそも2DのゲームにDirect3Dを使うのは大げさです。ですから、Vista SP2/Win 7に搭載されているDirect2Dに大いに期待しています。リファレンスを見る限りではGDI+にかなり似ているので、移植も簡単にできそうですし。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://i-libro.net/wpmu/blog/archives/384/trackback
Listed below are links to weblogs that reference
GDI+でどこまでできるか from わくわくプログラミング自習室 Blogs

Home > C言語(Windows) > GDI+でどこまでできるか

Amazonリンク

Return to page top