- 2010-03-06 (土) 0:02
- C言語(Windows)
4月に『13歳からはじめる ゼロからのC言語ゲームプログラミング教室 初級編』という新刊が出るのですが、そこではDXライブラリやDirect3Dを使わず、GDI+だけでゲームを作成しています。GDI+を選んだのは、単に「Windows APIの解説書だから」というのが一番の理由なのですが、「カジュアルゲームならGDI+でも大丈夫なんじゃないのか」という読みもありました。
というのは……
カジュアルゲームの実行環境としてもっともメジャーな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+にかなり似ているので、移植も簡単にできそうですし。
- Newer: Direct2Dは凄い
- Older: [ActionScript3]Adobe AIRのドラッグアンドドロップのバグ?
Comments:0
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
