0
0
前提
今までunityを3年間使用してゲーム作成を行って来たものです。
ローレベルな階層のプログラミングから知識を入れておきたいため、このような質問をさせて頂いております。
発生している問題・エラーメッセージ
DirectXの情報に疎く、下調べはしたのですが、現在初学者が勉強すべきなのがDirectX9-11-12のどれが良いのかいまいちピンと来ていない状態です。
おすすめのバージョンや書籍やサイトを教えて頂けると幸いです。
補足情報
オープンソースのフレームワークを利用してゲーム作成しながらフレームワークを追うのも良いのかなと考えていたのですが、それはどうなのか、また良ければおすすめ教えて貰えると助かります。
大変恐縮ですが、知恵を貸していただけると助かります
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答10件
#1
総合スコア4646
投稿2023/02/24 20:27
自分自身はゲーム開発用のフレームワークやエンジンの開発はしたことがないのでご参考まで。
DirectX9-11-12のどれが良いのか
難易度で言ったら学習のしやすさは DirectX9 ですが、20年以上前の API でだいぶ古いので、
今やるなら DirectX11 か DirectX12 でしょう。
個人的には DirectX11 を理解してから DirectX12 に進めるのが良いのでは、と思います。
DirectX12 をお勧めしたいところですが、覚えることが多く、初学者にはだいぶ難しいと思います。
以下は簡単にですが DirectX9/11/12 を比較した表になります。
比較項目 | DirectX9 | DirectX11 | DirectX12 |
---|---|---|---|
難易度 | 初級 | 中級 | 上級 |
登場時期 | 2002年 | 2008年 | 2015年 |
主な対応OS | Windows 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 Version | Pixel Shader | Vertex Shader | Geometry Shader | Hull Shader | Domain Shader | Compute Shader |
---|---|---|---|---|---|---|
9.0c | 3.0 | 3.0 | - | - | - | - |
10.0 | 4.0 | 4.0 | 4.0 | - | - | 4.0 |
11.3 | 5.1 | 5.1 | 5.1 | 5.1 | 5.1 | 5.1 |
12 | 6.0 | 6.0 | 6.0 | 6.0 | 6.0 | 6.0 |
DirectXのバージョンが上がるにつれて使えるシェーダの種類も増え、よりローレベルな GPU 制御が可能になります。GPU を最大限に生かすプログラミングがしたいということであれば、DirectX12 を使うことになると思います。
オープンソースのフレームワークを利用してゲーム作成しながらフレームワークを追うのも良いのかな
良いと思います。何もないところから一から作るのは難しいですからね。
何ができるのか、できないのか、自分ならこうしたいのに、と思うようになれば、新しいゲームエンジンのアイデアになるのでは、と思います。
#2
総合スコア5291
投稿2023/03/02 03:56
DirectX9-11-12のどれが良いのか
9はないです。魔導書が出ている最新がいいかな?
書籍やサイト
ゲームエンジンを「作る」なら 3D から始めるより、とりあえず Transform と GameObject を作ってまずは 2D からでも始めた方がいいんじゃないかと思います。というわけでおすすめ書籍はこちらです。
オープンソースのフレームワークを利用してゲーム作成しながらフレームワークを追うのも良いのかなと考えていたのですが、それはどうなのか、また良ければおすすめ教えて貰えると助かります。
いいと思います。OpenSiv3D を使ってゲームエンジンを作るというのがいろんな意味でいいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア4646
投稿2023/03/23 03:22
directx自体には触れたことがあるのでしょうか?
書籍やサンプルコードをコンパイルして実行したくらいです。本格的な開発等はしたことはありません。
11,12に触れていた場合所感
DirectX12はDirectX11を熟知した人が、もっと効率よくメモリを扱いたい、高度なことがしたいといった、ハードウェアより(ドライバより)のプログラミングがしたい人向けのライブラリかな、と思います。初学者向けではないと思います。
悩むのであれば、DirectX12を試してみたら良いと思います。そして、難しそうに感じたらDirectX11に戻れば良いと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア5291
投稿2023/03/23 08:20
opensiv3dをおすすめする理由等ありますでしょうか?
dxlib に比べて使いやすいから。開発が現在進行形で進められているから。開発者から使い方を直接教えてもらえるから。その気があれば開発に参加することもできるから。
また12をおすすめされてるかと思うのですが、ご経験があればなのですが11と12の所感と初学者でも12を今進めた方が良いという理由があれば教えて頂けると助かります。
本が出てるから。挫折ポイントが同じだから、どっちでやってもダメな人はダメだしできる人はできるから。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア0
投稿2023/03/23 12:56
編集2023/03/23 13:24ありがとうございます!非常に参考になります!
【書籍:アーキテクチャ】
【書籍:魔導書】
【opensiv3dを用いたゲーム制作】
【その他】
これらのものが現状挙げられましたが
bboydaisukeさんであれば取り組む順番の目安をお聞きしても良いでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#9
総合スコア5291
投稿2023/03/23 14:35
私はグラフィックスプログラミングに興味がなく、ゲームプログラミングに興味があるので DirectX はやりません。仕事で触っていた程度です。
OpenSiv3D も別にこれでゲームが一通り作れる程度以上は自分ではやりません。別に OpenSiv3D だけがゲームプログラミングではないので。
私は自分の目的に応じて使うものを選んでいるだけで、あなたと私は目的が違います。あなたはあなた自身の目的を元にあなたの行動を決めたらいいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。