度々発生する「なにか作りたい病」が、今のニート生活中ずっと続いてたりします。
で、ゲーム作ろうとするんだけど、ライブラリを色々試してみて途中まで作って止めたりしてます。
そんな訳で、現時点でもっとも実用性の高いと思われるゲーム用ライブラリを紹介。有名だから今更って感じだけど。
DXライブラリ
C言語用。C#用もこっそり公開されてた。非常に取っつきやすい。
DirectXを使うけど、DirectX SDKをインストールしなくてもいいのでお手軽。ランタイムは入ってないとダメよ。
ドキュメントもサンプル付で解りやすく整備されてる。
「ゲームプログラミングの館」での解説も併せて読めば、簡単なゲームならホントにすぐに作れる。
DXライブラリのマニュアルとしてだけではなく、アルゴリズムの勉強にも使えるね。
あまりC++っぽくないっていうか、オブジェクト指向的な使い方に向いてない印象。
2D特化で3Dには弱い・・・って言われていたけど、さっき公式サイトみてみたら3D機能が強化されてた。
といっても、ざっと見た感じ3Dモデルを表示して動かせるくらいのレベルで、今時の3Dゲームに見られるような高度なエフェクトとかは無い。
まぁそれでも前よりは全然進化してるよね。前は板ポリゴンにテクスチャ貼るくらいしかできなかったんだし。
半年前まではDirextX7までの機能しか使わなくて古くさいとか言われてたけど、今はDirectX9を使ってるらしい。
あとで3D機能を試してみよう・・・
Selene
C++用。DXライブラリよりは難しいかも。
DXライブラリ同様、DirectX SDK不要。ランタイムは最新のDirectX (March 2009)以降が必要。
ビルド時にとか実行時にd3dx9なんちゃらdllが足らないって言われたら、DirectXのバージョンが古い。
Seleneに同梱されてるサンプルソースが豊富なので、やりたいことが結構すぐ組み始められる。
でもドキュメント面ではDXライブラリに劣ってるのがキツイ。
C++的オブジェクト指向的な使い方に向いてる。フレームワークとか組みやすい。
3D特化で3Dレンダリング機能は豊富にあるものの、2Dはちょっと苦手っぽい?普通に2D画像の拡大縮小回転くらいは楽々できる。
マルチコア対応してる。
たぶんDXライブラリより高速に動作する。
デバッグ機能もしっかりしてる。
補助ツールも幾つか用意されている(xやfbxのモデルデータにエフェクトやモーションを付けるツールとか、複数ファイルをパックするツールとか)
半年前まではvar1系とvar2系に分かれていたけど、今はvar2系を1として、旧var1は消えた。
おかげで旧var1系で途中まで組んでた奴は捨てるハメになった・・・。
現在も開発継続中。掲示板で要求すれば新機能搭載とかあるかもよ。
YaneuraoGameSDK.NET
略してYaneSDK。.NETが付いていることから解るように、.NET言語・・・というかC#用
公開された2006年には期待したんですが・・・過去の話です。
ロードマップ通りならとっくに3D対応してるはずだけど、そもそも2007年以降バージョンアップしてない。
一応ここに挙げたけど、使う気全くありません。
タスクシステムとかキャッシュシステムとか、フレームワーク組む際のアルゴリズムの参考にはなるかも。
あ、でもそれなら.NETじゃなくてYaneSDK3とか4みたほうがいいか。入手できれば、だけど。
ほかにも幾つかゲームライブラリあるけど、使い勝手の良さと、無料であることと、なにより国産なので日本語ばっちりであることが重要なので上記3つ・・・というかYaneSDKはもうカウントしなくていいから、DXライブラリとSeleneの2択になる。
半年前なら、2DメインならDXライブラリ。3DならSeleneって書いてるトコだけど、DXライブラリが進化してたからちょっと解らなくなった。
処理速度はSelene>DXライブラリのままなんだろうけど・・・。
一方、Seleneの開発者様のblogに興味深い記述が。
そんなわけで2D特化型の別ライブラリ(SeleneよりDXライブラリに近いかも)を用意しています。
もちろん2D描画ができるだけでは意味がないのでシェーダーを利用して各種2DエフェクトやHDRなどのポストエフェクトも関数1つで気軽にかけられ、マルチコアへの最適化も自動でされる2D特化ライブラリになっております。このライブラリには現状では3Dに関する機能は一切ありません。
もしかしたら簡易的にモデルが出るようにはするかもしれませんがあくまでいまどきのPCで派手に2Dゲーム作りたいという層を狙い撃ちしたものです。
Seleneとは違う2D特化ライブラリということで、DXライブラリに近いって書いてあるけど、Seleneの作者だから速度はやっぱりDXライブラリより上だと期待してしまいますね。
簡易的にモデルを出せるくらいの機能がないと、DXライブラリに負けてしまうよ・・・。
実は今現在、Seleneで2Dのゲーム(背景に3D使う、東方みたいな感じの。でも縦STGじゃないよ)開発中だったりするんだけど(ゲーム自体よりもフレームワーク作りばかりやってる)、DXライブラリの3D対応と、2D特化Seleneっていう新しい選択肢が出てきちゃって、また途中で放り投げて最初から作り直しな雰囲気。
私がやろうとしてるゲームの3D部分は背景に3Dモデルが表示できれば良い程度なので(アニメーションも必要ない)、機能的にはDXライブラリで十分っぽい。
エフェクトもフォグがあればいい程度だし。DXライブラリにフォグあるみたいだし。
ライブラリになるべく依存しないようなフレームワークを作るべきなんだろうなぁ・・・でもそうすると無駄なオーバーヘッドとか出やすかったりして色々難しいです。
選択肢が増えるのは嬉しいけど、悩めるね。
こういう比較は本当に助かります。
ありがとうございました。
まさか誰かにコメントいただけるとは思ってなかったので、調子に乗って続き書きました。