DXライブラリで簡単なゲームは作れるようになったので
2Dゲーム製作用の自分用ライブラリを作ろうかと考えています。
そこで皆様に3点ほど質問があります。
1点目
完全自分用ライブラリの作成は無意味なのでしょうか?
2点目
ライブラリを作る際に画像の描画の仕方でも種類があると思うのですが
どれを選んだほうがよいのでしょうか?
(DirectXの2D描画、WindowsAPIの命令)等
3点目
これだけは絶対必要な関数
(メインループ、画像の読み込み、固定のFPSでまわす)等
基本的なことをお願いします。
ライブラリを作る際の解説サイトなどを教えていただけますと助かります。
お時間のあるときにご回答ください。
ライブラリを作りたいのですが・・・
Re:ライブラリを作りたいのですが・・・
> 完全自分用ライブラリの作成は無意味なのでしょうか?
無意味ではありません。
まず、そのライブラリが有用となれば、後続する自作ゲームの製作にも利用でき、
ゲーム製作時間の大幅な短縮が見込まれます。
また、そうでなかったとしても、どういう書き方がいけなかったのかや、
なぜ使いづらいのかなど、プログラミングとしての知識・技術が自然と身につきます。
> ライブラリを作る際に画像の描画の仕方でも種類があると思うのですが
> どれを選んだほうがよいのでしょうか?
> (DirectXの2D描画、WindowsAPIの命令)等
描画速度を意識しないのであれば、 WindowsAPI での描画関数を使用するという手はありますが、
当然 WindowsAPI の描画の仕組みを知る必要が有ります。
DirectX(OpenGL)は、ゲーム系のリアルタイム描画としては最適ですが、
それぞれ特有の構造、描画を最低限知る必要が有ります。(当然ですが)
> これだけは絶対必要な関数
> (メインループ、画像の読み込み、固定のFPSでまわす)等
> 基本的なことをお願いします。
ゲームの構造上必要なのは、
・起動時の各部分の初期化
・メインループ
・読み込んだデータなどの後始末
となるでしょう。(「固定のFPSでまわす」はメインループに含まれる)
それに加え、
・タスクシステム
・メモリの管理(怠るとメモリリークを起こす)
・データの管理・暗号化(データを非公開とするときに必要)
・セーブデータ管理
などが挙げられます。
> ライブラリを作る際の解説サイトなどを教えていただけますと助かります。
解説ではありませんが、 DXライブラリはソースコードを公開しているはずなので、
DXライブラリがどういった構造をしているかなどの参考のために見てみるといいと思いますよ。
(その状態でライブラリが作成できるということは、それを真似れば出来るということになりますので)
無意味ではありません。
まず、そのライブラリが有用となれば、後続する自作ゲームの製作にも利用でき、
ゲーム製作時間の大幅な短縮が見込まれます。
また、そうでなかったとしても、どういう書き方がいけなかったのかや、
なぜ使いづらいのかなど、プログラミングとしての知識・技術が自然と身につきます。
> ライブラリを作る際に画像の描画の仕方でも種類があると思うのですが
> どれを選んだほうがよいのでしょうか?
> (DirectXの2D描画、WindowsAPIの命令)等
描画速度を意識しないのであれば、 WindowsAPI での描画関数を使用するという手はありますが、
当然 WindowsAPI の描画の仕組みを知る必要が有ります。
DirectX(OpenGL)は、ゲーム系のリアルタイム描画としては最適ですが、
それぞれ特有の構造、描画を最低限知る必要が有ります。(当然ですが)
> これだけは絶対必要な関数
> (メインループ、画像の読み込み、固定のFPSでまわす)等
> 基本的なことをお願いします。
ゲームの構造上必要なのは、
・起動時の各部分の初期化
・メインループ
・読み込んだデータなどの後始末
となるでしょう。(「固定のFPSでまわす」はメインループに含まれる)
それに加え、
・タスクシステム
・メモリの管理(怠るとメモリリークを起こす)
・データの管理・暗号化(データを非公開とするときに必要)
・セーブデータ管理
などが挙げられます。
> ライブラリを作る際の解説サイトなどを教えていただけますと助かります。
解説ではありませんが、 DXライブラリはソースコードを公開しているはずなので、
DXライブラリがどういった構造をしているかなどの参考のために見てみるといいと思いますよ。
(その状態でライブラリが作成できるということは、それを真似れば出来るということになりますので)
Re:ライブラリを作りたいのですが・・・
> 1点目
> 完全自分用ライブラリの作成は無意味なのでしょうか?
無意味ではありません。
> 2点目
> ライブラリを作る際に画像の描画の仕方でも種類があると思うのですが
> どれを選んだほうがよいのでしょうか?
> (DirectXの2D描画、WindowsAPIの命令)等
必要に応じて選択できるようにしておくとよいでしょう。
できれば、両方に同じインタフェースを持たせる方がよいのですが、抽象化しすぎると効率も悪くなるので、落としどころを見つけてください。
> 3点目
> これだけは絶対必要な関数
> (メインループ、画像の読み込み、固定のFPSでまわす)等
> 基本的なことをお願いします。
DXライブラリのアプリケーションとしては、御津凪さんが書かれたようなものになるかと思います。
それ以外に、もっと汎用的なクラスや関数が必要になるはずです。
まずは、WindowsやDirectX関係のほか、C/C++の既存のライブラリを調査することをお勧めします。
> ライブラリを作る際の解説サイトなどを教えていただけますと助かります。
手前味噌&書きかけですが、以下のURLで解説を書いています。
http://www.kijineko.co.jp/tech/how-to-library
> 完全自分用ライブラリの作成は無意味なのでしょうか?
無意味ではありません。
> 2点目
> ライブラリを作る際に画像の描画の仕方でも種類があると思うのですが
> どれを選んだほうがよいのでしょうか?
> (DirectXの2D描画、WindowsAPIの命令)等
必要に応じて選択できるようにしておくとよいでしょう。
できれば、両方に同じインタフェースを持たせる方がよいのですが、抽象化しすぎると効率も悪くなるので、落としどころを見つけてください。
> 3点目
> これだけは絶対必要な関数
> (メインループ、画像の読み込み、固定のFPSでまわす)等
> 基本的なことをお願いします。
DXライブラリのアプリケーションとしては、御津凪さんが書かれたようなものになるかと思います。
それ以外に、もっと汎用的なクラスや関数が必要になるはずです。
まずは、WindowsやDirectX関係のほか、C/C++の既存のライブラリを調査することをお勧めします。
> ライブラリを作る際の解説サイトなどを教えていただけますと助かります。
手前味噌&書きかけですが、以下のURLで解説を書いています。
http://www.kijineko.co.jp/tech/how-to-library