• ベストアンサー
  • 暇なときにでも

DirectXやWin32API (2Dゲーム作りたいです)

こんにちは,私は2D(最終的には3D(メインは2D))のゲームを C++,DirectX を利用して作りたいと思っています.  今のところ,プログラミングはC,C++は入門+α, ゲーム関係は『ゲームプログラマになる前に覚えておきたい技術』という本の2D分野を読み実習しました.このゲームの本はDirectXやWin32APIなどを利用せずに,なにやらライブラリなどを用意していてそれを利用する形でした. -- 質問 --  DirectX や Win32API を全然わからないという このくらいの知識の人が本格的に2Dゲームをだんだんと作って行きたいのですが,このそれぞれに対してなにかよい参考書はないでしょうか,またその理由などもいただきたいです. --気になること-- 以下あいまいな知識の質問です. ・最近(DirectX7以降かな)はDirectXは2D描写と3D描写の機能が合体したと聞きました,DirectXの参考書は3Dのばかりで3Dも学べていいのですが,2Dゲームが作れるDirectXの内容も詳しく含んだ参考書が欲しいです. ・Win32APIはゲーム製作にどう影響してくるんですか?まだよくわかっていません.ゲームウィンドウなどを表示するのは必用そうですが,, サウンドやグラフィックを読み込むのに必須なのだろうか, でもそれはDirectXでもできませんか?関係がよくわかりません. --まとめ-- できれば 気になること の回答など簡単にしていただきたいです.  長文ここまで読んでいただきありがとうございました. よろしくお願いします.

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1640
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • gungnir7
  • ベストアンサー率43% (1109/2548)

>でも現在は同じような情報が大量にあり >ネット上ではその情報の真偽が信頼できるものであるか少しばかり不安でした その気持ちはよく分かりますよ。 特に何も分からない手探りの状態はそういう気分になります。 確かにCDソース付きの本を1冊購入した方が大きな武器になることは考えられます。 私も初めての分野はそれが手っ取り早く効果的だった経験があります。 ただ、本の推薦は私は経験がないので、良書の推薦はできません。 >DirectXで代用するのかなというイメージ 代用というよりゲーム用に強力にして新登場させたというイメージです。 DirectXをもう少し詳しく言いますと、マイクロソフトが中心になって、 ビデオカードのメーカを中心にDirectX対応の回路を提唱します。 ハードウェアレベルでの回路を義務づけたDirectXはマイクロソフトの戦略でもあったのです。 Windows32 API にもBitBltやLineToなどの描画のコマンドはありますが、 それはあくまでパソコン本体のGPUで計算します。 当時の非力な環境もありますが、それで3Dのポリゴンを描画したら遅くて仕方がなかったのです。 そこで3Dゲームの到来に備えてハードレベルでの環境を実現したのがDirectXです。 現在ではWin32APIだけでも軽量の3Dゲームは動きますから、2DでDirectXを使う 必要性もないような気がしますが、将来の布石もありますからここでは言及しません。 なお、オンボードのビデオアクセラレータなんかではそのような回路がありません。 そのときはWindowsがDirectXの描画を行います。OSが行いますから極端に遅くなります。 つまり、DirectX対応の回路を持った高価なビデオを持ってこそ、DirectXが威力を発揮することになります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

こんにちは,2度もご回答ありがとうございました. なるほど,CDソース付きの本を探して購入し実際に経験しながら,DirectXなどを習得していきたいと思います. 詳しくご説明ありがとうございます. この質問をして,具体的にいえませんが,少し視野が広がったと思います. いつかよいゲームが作れるように努力していきたいと思います. ありがとうございました.

関連するQ&A

  • C,C++,Win32APIだけでSFCレベルのゲーム

    この言語だけでSFCレベルのゲームは作れるのでしょうか? (具体的に言うとスーパーマリオワールドの1ステージくらい) それとも、やはりDirectXやOpenGLなどを使わないと無理なのでしょうか? 教えていただけると有難いです。 またDirectXを使う場合、Win32APIの知識はどれくらいあれば足りますか?よく参考書とかに載っているテトリスを作れるくらいで足りるでしょうか?

  • Win32APIのゲームやアニメーションについての書籍

     Win32APIでゲーム(もぐらたたき)を作りたいのですが、Win32APIでゲームを扱っている書籍が少ないような気がします。(テトリスは多いですが)  もう一つ、DirectXでは画像やアニメーションの本はたくさんありますが、Win32APIではアニメーションの作り方について、多数しかも手取り足取り載っているのが見当たらないです。特にビットマップエディタの使い方がよく分からなくて困っています。Visual Studio 2005のVisual C++を使っています。  ちなみに今まで「Windowsゲームプログラミング 赤坂玲音著」で勉強して、ちょこちょこサイトでアニメーションを勉強しましたが、自分でアニメーションを作ろうと思うとあまりに情報不足な状態です。  Win32APIのゲームやアニメーションについての書籍やサイトがあれば教えていただけたら嬉しいです。

  • C、C++でもぐらたたき

     C→C++を少し→Win32APIと学習してきました。 もぐらたたき(2D)を作りたいのですがWinAPIでも作れるのでしょうか?それともDirectXなどを使わないといけないでしょうか? いまいち分からないのですが、Win32APIで作れるゲームとDirectXで作れるゲームにはどんな違いがあるのでしょうか?3Dが作れることだけでしょうか?教えていただければ嬉しいです。

その他の回答 (1)

  • 回答No.1
  • gungnir7
  • ベストアンサー率43% (1109/2548)

DirectXは使ったことがないのでお茶濁し程度に・・・ まずは検索することです。開発はもっと色々調べなければなりません。 我々が若い頃は東京の大きな書店まで出かけて1日潰して探し回ったものです。 今ではネットで1時間もあればそれなりの情報は探せます。 DirectX、2Dゲームで検索すれば参考になるサイトはたくさんかかります。 DXライブラリを使えば2Dではかなり手軽にDirectXを扱えます。 Win32は最も基本的なWindows自体のライブラリです。 WindowsはWin32APIの力を借りて動いているので、これがないと大変なことになります。 実際のプログラムでもAPIは煩雑に登場します。 システム情報を得るだとか、アイコンの情報を入手する、プリンタへの出力etc。 ただしWin32APIは万能向きなのでGPUに特化したAPIであるDirectXには敵いません。 (DirectX API自体Win32 API の一部という見方も当然できる) これがDirectXの登場した背景なので、DirectXはほぼゲーム専門といっても差し支えありません。 ただし、Win32APIは今後.NetFrameworkに置き換えられます。 .NetFrameworkについてはさすがに聞いたことがあると思いますが、 これがWin32APIの後継のWindowsライブラリとなります。 Vistaやwindows7ではまだWin32APIが中心のようですが。 http://windowsvista.nomaki.jp/aboutvista/winfx.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます.  そうですね,昔は論文も足で書くといわれてましたから,今はそれに比べればかなり楽に情報を得られるでしょう. でも現在は同じような情報が大量にあり,ネット上ではその情報の真偽が信頼できるものであるか少しばかり不安でした.(というのは言い訳かもですすみません.) 一応独自で色々と調べた上で 抽象的 なイメージが知りたくて質問をいたしました. 今の自分の理解のイメージでは ゲームプログラミング ⊃ Win32API ⊃ DirectX で,ゲームでは,Win32APIの中の一部(グラフィックなど)をWin32APIを基盤にしてDirectXで代用するのかなというイメージです. こういうイメージ的な知識はあまり情報がないので質問させてもらいました.違っているかもしれません.  そして次いで,なにか参考書などがあればそれで勉強していきたいとおもいました. ご回答ありがとうございました.m(_ _)m

関連するQ&A

  • ゲームにはDirectX?

    VC++を使ってプログラミングをしようと思いました。 今は全然出来ないのですが、最終的には3Dのフライトシミュレーターみたいなものを作りたいと考えています。(いつになるか分かりませんが^_^;) そこで、とりあえずVC++に慣れるために2Dのシューティングゲームを作ろうと思ったのですが、この場合はDirectXを使う方がいいのですよね? そこで質問なのですが、DirectXの7と8どちらを使うべきなのでしょうか? 8からはかなり変わって2Dの表示も3Dを使ってやると聞いたのですが、それは7で2Dのゲームを作るより難しいのでしょうか? 回答よろしくお願いします。

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

  • DirectX&Win32API&C++ ドライブ情報の取得方法について

    Windowsプログラム(Win32API)と、DirectX9(2007January)と、C++を使用してゲームを制作しています。 ですがDirectXは環境によっては動作しないものも多く、 どんな環境では動かないかというのもを手軽に調べるために ゲーム起動前にドライブ情報を表示するようにしたいのです。 (例えば、グラフィックボードだとか、VRAMや、HDD容量や  メインメモリの容量など、DirectX診断ツールのようなもの) それを調べる関数が有りそうな気もしたのですが、 C#やJavaだといくつかありましたが意外と見つからず、 (調べ方が悪いだけかもしれませんが)難儀しています。 もしドライブ情報の取得方法をご存知の方がいらっしゃいましたら どうかアドバイスをお願い致します。

  • C++ API 全般 APIの概要は

    独学にてプログラミングを勉強しているのですが、いきづまってしまったので質問お願いします。 ※Visual Studio 2008 Express Editionsを使用しています。 まだプログラミングに関しての勉強を始めて1ヶ月程度で、最初はVB.NETから始めて、最近C++に乗り換えました。 趣味の範囲でのゲームを作ろうと思っていて、C++とDirectXでの開発を予定しています。(しかし、最終的にはゲームに限らずプログラミングの技術と知識を習得することを目標にしています。)(DirectXに関してはまだ手をつけていません。) まったく1からのスタートで、現在win32コンソールアプリケーションにてコードの勉強をしているところです。 勉強に使っている参考文献は ・VisualC++.NET逆引き大全500の極意 ・ゲームプログラマになる前に覚えて起きたい技術(これを買うには早すぎたようです…。第一章も半分くらいしか理解できません…。) サイトは ・主に「0からのゲームプログラミング」というサイトです。 http://www.plustarnet.com/aspil/Programming/ 本題の質問ですが、APIというものがいまいち理解できません。 (1)上記のような目的で使用するAPIは、標準 Windows APIというものでいいのでしょうか? (2)win32コンソールアプリケーションでは実行できるのに、win32プロジェクトでは実行できないのはなぜでしょうか? #include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL , TEXT("Hello Wold!") , TEXT("メッセージボックス") , MB_OK); return 0; } (3)http://www.plustarnet.com/aspil/Programming/CConsole.htm このURLのコンソールAPIというのは、一般的に使われているものでしょうか?それともこのサイトのオリジナルのものでしょうか?win32コンソールアプリケーションでAPIを使うには、このURLのCConsoleクラスとうものをインクルードしないといけないのでしょうか?#include<windows.h>と宣言することによって気軽に使いたいものを使うことはできないのでしょうか? (4)#include<windows.h> とした場合、作るものが「win32コンソールアプリケーション」だったり「win32プロジェクト」だったり「windowsフォームアプリケーション」だったりで、使用方法などがまったく別になってしまうのでしょうか? (5)そもそも、上記の目的の場合APIを勉強する必要はあるでしょうか? (6)勉強をしたほうが後々に役立つ場合、どのAPIを勉強するのがいいのでしょうか?(APIといっても様々なものがあるんだなと思い質問しました。もし勘違いでAPIというものは一つしかないとしたらすみません。) なぜAPIに関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。 初心者すぎて質問が的外れかもしれませんがよろしくお願いします。

  • VC++ .NETでWin32 APIの関数を呼び出すことは可能なのでしょうか?

    Visual C++ 2003 .NETで、Win32 APIの関数をSystem.Runtime.InteropServices名前空間を利用して呼び出したく、チャレンジしておりますが、C#のやり方でやると記述エラーになります。 Google等で調べても、C#のものばかり出てくるのですが、VC++ .NETではWin32 API関数を呼び出すことはできないのでしょうか?

  • C++とDirectXでゲームのライブラリを作りたい

    こんにちは、私は現在C++とDirectXを使ってゲームを作っています。 この夏に稚拙ながらライブラリをいくつか組んでみたのですがいかんせん経験不足と知識不足からなかなか納得のいくものができません。 インターネットなどでもDirectXの活用方法やC++の文法、デザインパターンなどのHPはよく見つけるのですがライブラリの組み方を説明しているページというのは見たことありません。 フリーのライブラリもいくつか見ましたがどれもレベルが高すぎてあまり参考にならず・・・ ライブラリの作り方を紹介しているHPや参考書などがあれば紹介していただきたいです。

  • C++とWIN32APIとゲームプログラミング

    WINDOWSで動くゲームを作りたくて3日ほど前からC++の勉強を始めました。 (最終的にはグラディウスのような横スクロールシューティングが作りたいです。) そこで質問なんですが 1、Win32APIについて調べるとC言語を使っての入門サイトばかりがヒットします。 Win32APIはC言語で書くものなんでしょうか? そうなってくると今WindowsのGUIアプリを作るのにC++を勉強していますが無駄ってことでしょうか? 例: 猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/index.html Win32API入門 http://wisdom.sakura.ne.jp/system/winapi/win32/index.html ちなみに今学習に利用しているサイトは以下のサイトです。 C++入門 http://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html 2、ポインタの概念について ポインタのイメージですが値を格納している場所みたいな感じで大方あってますでしょうか? 僕は組み込み系をやっているのでアセンブラにどっぷり漬かっています。 なんていうかレジスタの番地がポインタに該当するのかなって思っています。 ↓みたいなイメージで考えています。 ポインタ=データの場所=レジスタ番地 これであってますか? 3、まだGUIには進んでませんがウインドウのメニュー(ファイル、編集等)を作るのにリソースファイルも作るって説明が上記ページ(猫でもわかる)に書いてましたがリソーススクリプトとかヘッダーもプログラム言語とは別に勉強する必要があるんでしょうか? 4、C++のクラス概念について クラスとは複数の関数をひとまとめにしてグループ管理(おおざっぱに言うとサブルーチンの集まり的な)するようなものってイメージであってますか? 5、WindowのGUIアプリのプログラムの概要ですが各オブジェクト(ウインドウやボタン、マウスポインタ等)に対して「クリックされた」とかのアクションに対して動作するプログラムを書くって事でいいんでしょうか? 6、お勧めの参考書籍について 今までアセンブラをはじめPerlやJavaScript、C言語のお勧め入門書をいろんなサイトのレビューを見て買いましたが本よりネットの入門サイトのほうがかなり役にたってきました。それでも入門書を買うのは気持ち的に安心するからなんですが・・・ それを踏まえた上で僕の最終的な目的にあうような本があったら是非教えてください。 7、勉強の進め方や「合わせてこれも勉強しろ」っていう項目があれば教えてください。 現状としては 「C++の基礎(必要ですか?)」→「Win32API」→「DirectX」で行こうと思っています。

  • ゲーム制作に於けるC/C++の学び方について

    簡易な3Dアクションゲーム(TPS)を創る、と決意しました。年単位で、ものすごく長くなるであろうことは、覚悟の上です。その上で質問をします。 ・ツクール系などを使わずに0から始めたいと思っています ・私にはプログラミングの知識やその他技術的知識は全くありません。 所々の知識はネットで得たものです(表記の間違いが多いと思われます) ・一番、回答を頂きたいのは(1)と(2)ですので、全ては答えていただかなくても宜しいです。もし、他の質問も答えていただければ幸いです((3)以降については別のカテゴリに投稿したほうがいいでしょうか?) (1)CとC++:全くプログラミングの知識が無い人間は、どちらを先に学習する方がよいと思われますか?(主に3Dゲーム制作が絡むことになった時です) 違いがあるようですが、どちらを始めるかによってその後に影響はあるのでしょうか (2)技術を得る道順:全くの素人が通る道として、以下の道筋をどう思われますか? プログラミング言語全般やその周辺→DirectXやOpenGL等のAPIについて→その他細かい分類(AI,3Dグラフィック等) (3)ゲームエンジンについて:ゲームを作っていく過程で出来るものですか?それともまずそれ自体を作り、そこからゲームを作っていくのですか? 3Dアクション物となるとそこが肝心であるような気がします (4)スクリプトという物について:これを構築することによって、演出やストーリーを仕立てて行くことが出来るのでしょうか?それとも、そういったものとはまた別物ですか? (5)参考書:かなり大規模なものになるとそれなりの深い知識が必要ですが、その手の分野は和書の参考書より、洋書のそれの方が詳しいような気がします。(AIの構築やレンダリングなど)実際に洋書のものを見てみると、ついそう思ってしまいます。これは思い込みでしょうか?

  • DirectX7とDirectX9の速度の違い

    フリーソフトや市販の3Dゲームで、DirectX7や8で開発されたゲームは割りと 私の非力なPCでもさくさく動くのですが、同じゲームのDirectX9版見つけ、 試しに入れてみると、ものすごく重くなっていました。 実際には試していませんが、仮にC++で開発したとしてDirectX7とDirectX9で 3Dモデルや画像を同じ数同じような条件で沢山表示させたとしてら、 DirectX7の方が動作が軽いのでしょうか? もしそうなるなら恐らくDirectX9の方が機能が多いので標準でより多くのメモリを システムが占有してしまうからだと推測していますが・・。 DierctX10や11など、DirectXのバージョンが上がるほど重くなるものなのでしょうか?

  • 就活に備えてゲームを作りたい!

    将来、ゲームプログラマーになりたいと考えている大学生です。 就活の際にゲームを作って提出したいので少しずつでも勉強したいと思っているのですが、まずはどういう本から勉強したらいいでしょうか? 目標はシューティングゲームの作成ですが、まずは比較的簡単なものからチャレンジしたいと思っています。 言語は大学の授業でC、C++、Javaを習った程度です。 オススメの参考書がありましたら、是非教えてください。 よろしくお願いします。