質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

意見交換

クローズ

10回答

1809閲覧

DirectXを利用して、 ゲーム開発用のフレームワークやエンジンを作成したい。

Kayoh

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

0グッド

0クリップ

投稿2023/02/24 10:18

0

0

前提

今までunityを3年間使用してゲーム作成を行って来たものです。

ローレベルな階層のプログラミングから知識を入れておきたいため、このような質問をさせて頂いております。

発生している問題・エラーメッセージ

DirectXの情報に疎く、下調べはしたのですが、現在初学者が勉強すべきなのがDirectX9-11-12のどれが良いのかいまいちピンと来ていない状態です。

おすすめのバージョンや書籍やサイトを教えて頂けると幸いです。

補足情報

オープンソースのフレームワークを利用してゲーム作成しながらフレームワークを追うのも良いのかなと考えていたのですが、それはどうなのか、また良ければおすすめ教えて貰えると助かります。

大変恐縮ですが、知恵を貸していただけると助かります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答10

#1

cx20

総合スコア4632

投稿2023/02/24 20:27

自分自身はゲーム開発用のフレームワークやエンジンの開発はしたことがないのでご参考まで。

DirectX9-11-12のどれが良いのか

難易度で言ったら学習のしやすさは DirectX9 ですが、20年以上前の API でだいぶ古いので、
今やるなら DirectX11 か DirectX12 でしょう。
個人的には DirectX11 を理解してから DirectX12 に進めるのが良いのでは、と思います。
DirectX12 をお勧めしたいところですが、覚えることが多く、初学者にはだいぶ難しいと思います。

以下は簡単にですが DirectX9/11/12 を比較した表になります。

比較項目DirectX9DirectX11DirectX12
難易度初級中級上級
登場時期2002年2008年2015年
主な対応OSWindows XP以降Windows 7以降Windows 10以降
三角形の描画に必要な行数約160行約320行約450行

※ 三角形の描画に必要な行数については下記のサンプルコードにあるものを数えました。
https://github.com/cx20/hello#native-languages-for-windows

以下は DirectXのバージョンとサポートしているシェーダの一覧になります。

■ HLSL / DirectXバージョンと各シェーダーステージ(Wikipedia より抜粋)
https://ja.wikipedia.org/wiki/High_Level_Shading_Language

DirectX VersionPixel ShaderVertex ShaderGeometry ShaderHull ShaderDomain ShaderCompute Shader
9.0c3.03.0----
10.04.04.04.0--4.0
11.35.15.15.15.15.15.1
126.06.06.06.06.06.0

DirectXのバージョンが上がるにつれて使えるシェーダの種類も増え、よりローレベルな GPU 制御が可能になります。GPU を最大限に生かすプログラミングがしたいということであれば、DirectX12 を使うことになると思います。

オープンソースのフレームワークを利用してゲーム作成しながらフレームワークを追うのも良いのかな

良いと思います。何もないところから一から作るのは難しいですからね。
何ができるのか、できないのか、自分ならこうしたいのに、と思うようになれば、新しいゲームエンジンのアイデアになるのでは、と思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

bboydaisuke

総合スコア5270

投稿2023/03/02 03:56

DirectX9-11-12のどれが良いのか

9はないです。魔導書が出ている最新がいいかな?

書籍やサイト

ゲームエンジンを「作る」なら 3D から始めるより、とりあえず Transform と GameObject を作ってまずは 2D からでも始めた方がいいんじゃないかと思います。というわけでおすすめ書籍はこちらです。

オープンソースのフレームワークを利用してゲーム作成しながらフレームワークを追うのも良いのかなと考えていたのですが、それはどうなのか、また良ければおすすめ教えて貰えると助かります。

いいと思います。OpenSiv3D を使ってゲームエンジンを作るというのがいろんな意味でいいと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

Kayoh

総合スコア0

投稿2023/03/23 02:59

#1
返信遅れてしまい大変申し訳ございません。
ありがとうございます。
表も用意していただいて非常に助かります。

cx20さんはゲームエンジン自体の経験はないとの事ですが、directx自体には触れたことがあるのでしょうか?
回答いただいた内容的にあるかとおもうのですが、11,12に触れていた場合所感をお聞きしたいです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

Kayoh

総合スコア0

投稿2023/03/23 03:03

#2
返信遅れてしまい大変申し訳ございません。
ありがとうございます。

ゲームエンジンに対する目的に対して導入箇所提案して頂いて非常に助かります。参考にさせていただきます。

提示していただいた書籍は所持しているのですがあまり
深く読み進められていないため今1度見たいと思います。

opensiv3dをおすすめする理由等ありますでしょうか?

また12をおすすめされてるかと思うのですが、ご経験があればなのですが11と12の所感と初学者でも12を今進めた方が良いという理由があれば教えて頂けると助かります。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

cx20

総合スコア4632

投稿2023/03/23 03:22

#3

directx自体には触れたことがあるのでしょうか?

書籍やサンプルコードをコンパイルして実行したくらいです。本格的な開発等はしたことはありません。

11,12に触れていた場合所感

DirectX12はDirectX11を熟知した人が、もっと効率よくメモリを扱いたい、高度なことがしたいといった、ハードウェアより(ドライバより)のプログラミングがしたい人向けのライブラリかな、と思います。初学者向けではないと思います。
悩むのであれば、DirectX12を試してみたら良いと思います。そして、難しそうに感じたらDirectX11に戻れば良いと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

bboydaisuke

総合スコア5270

投稿2023/03/23 08:20

opensiv3dをおすすめする理由等ありますでしょうか?

dxlib に比べて使いやすいから。開発が現在進行形で進められているから。開発者から使い方を直接教えてもらえるから。その気があれば開発に参加することもできるから。

また12をおすすめされてるかと思うのですが、ご経験があればなのですが11と12の所感と初学者でも12を今進めた方が良いという理由があれば教えて頂けると助かります。

本が出てるから。挫折ポイントが同じだから、どっちでやってもダメな人はダメだしできる人はできるから。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

Kayoh

総合スコア0

投稿2023/03/23 12:37

#5

悩むのであれば、DirectX12を試してみたら良いと思います。そして、難しそうに感じたらDirectX11に戻れば良いと思います。

ありがとうございますこちらの方向で進行したいと思います!

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#8

Kayoh

総合スコア0

投稿2023/03/23 12:56

編集2023/03/23 13:24

#6

ありがとうございます!非常に参考になります!

【書籍:アーキテクチャ】
【書籍:魔導書】
【opensiv3dを用いたゲーム制作】
【その他】

これらのものが現状挙げられましたが
bboydaisukeさんであれば取り組む順番の目安をお聞きしても良いでしょうか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#9

bboydaisuke

総合スコア5270

投稿2023/03/23 14:35

私はグラフィックスプログラミングに興味がなく、ゲームプログラミングに興味があるので DirectX はやりません。仕事で触っていた程度です。
OpenSiv3D も別にこれでゲームが一通り作れる程度以上は自分ではやりません。別に OpenSiv3D だけがゲームプログラミングではないので。
私は自分の目的に応じて使うものを選んでいるだけで、あなたと私は目的が違います。あなたはあなた自身の目的を元にあなたの行動を決めたらいいと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#10

Kayoh

総合スコア0

投稿2023/03/24 04:52

#9
ありがとうございます。

もしゲームエンジンを作成するということを目的とした時にどのよう順序で踏んでいくかお聞きしたく質問してしまいました。

ご意見ご最もかと思います。
自分自身でその辺精査して取り組んでいこうかと思います。ありがとうございました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問