まず、遅くなりましたが、
新年明けましておめでとうございます。
本年もこのサイトをよろしくお願いします。
さて、ずーっとライブラリを弄り回していたので、ひとまず現在の機能を一覧化してみました。
(順不同です)
実装済みの機能
- アーカイブファイルからデータを読み込む「Archive」機能
- XAudio2 を使用し、 Wave・Ogg 形式ファイル再生対応、指定間ループ(回数指定可)と A-B 間再生可能の「Audio」機能
- 大量のフラグの管理を行える「BitField」クラス(指定ビット範囲の値表現も可)
- 頂点・インデックス・定数各バッファの管理を行う「IBuffer」インターフェイス
- 行列定数バッファを扱うように特化した「IMatrixBuffer」インターフェイス
- FPS を一定に保つように調整し、通常動作とフレームスキップ動作の双方に対応した「FPS Counter」機能
- PC 全体の CPU 利用率と、自身の CPU 利用率を算出する「CPU Info」機能
- デバッグ版ではデバッグ出力に、リリース版では明示的に出力指定をしないと出力されない「debugf」関数群
- インスタンス定義のみでインスタンス単位で描画を管理・実行する「ADrawGroup」抽象クラス
- フォントからフォントテクスチャを生成する「IFontTexture」インターフェイス
- フォントテクスチャを利用し、高速文字列描画を行う「IFontText」インターフェイス
- ADV ゲームのような文字送りを行える「IFontTextSender」インターフェイス
- データサイズを適切な単位で表現した文字列を生成する「FormatToBytes」関数
- ボタン入力状態の各種判別ができる「Input」機能
- ボタン入力のリピート入力に対応し、且つキーボートとゲームパッドなどの複数の入力を一つの入力として扱う「IInputManager」インターフェイス
- ムービーをテクスチャに、あるいは画面全体で再生する「Media」機能
- クラスを COM 風に参照カウントを使って管理する「IRefObject」インターフェイスと「RefObject」クラス
- ゲームのシステム設定を行う「System setting」機能
- 各種シェーダーのコンパイルを補佐する「Shader」機能
- 頂点・ピクセル各シェーダーを各種セットとして管理する「IShaderSet」インターフェイス
- 任意構成の2Dスプライトを固定長で高速管理する「ASpriteArray」抽象クラス
- SSE2 拡張命令を使用した、大容量メモリデータのコピー・フィル・クリアを行う「SSEMem」機能
- ブレンドステート・ラスタライザステート・サンプラーステートをセットとして管理する「IStateSet」インターフェイス
- Stelight ライブラリ上での入出力を担当する「IStream」インターフェイス群
- 各種サイズの型に対応した、「TPos・TSize・TRect」テンプレートクラス群
- 一纏めの機能をタスク単位で管理し、フレーム毎に並列実行できるサブタスクラインも持つ「Task」機能
- 各次元のテクスチャの生成・管理を行う「Texture」クラス群
- 指定時間間の推移を 0.0 ~ 1.0 の範囲で表現する「Timer」クラスとそれをフェード用に特化した「FadeTiemr」クラス
- 基本的な 2D 頂点・3D 頂点の構成の入力レイアウトを作成できる「CreateInputLayout」関数群
- シェーダーリソースビューの作成を包括した「CreateShaderResourceView」関数
- 非同期処理を行う「Working」機能
- コルーチン処理を記述・実行できる「Coro」機能
- MD5 と SHA256 を使用したハッシュ値を生成できる「Hash」機能
- メモリ上の DLL データをアタッチして実行・管理する「MDLL」機能
- ゲームデータ一式を一つのファイルに纏める&圧縮する「Packer」機能
- 位置情報やスプライト情報・文字列情報などを外部リソース化して読み込む「ResData」機能
- 設定ファイル等をユーザー領域へ保存する補助を行う「User area saving」機能
実装途中の機能
- i18n(国際化)対応の為のリソースデータ分割に対応した「LocalizeData」機能
- ゲーム上のUIを管理する「GUI」機能
- ゲーム上で日本語入力を可能にする「IME」機能
Todo リスト
- 生成したフォントテクスチャ情報を保存し、読み込む機能
- 3D モデル(モーション付きを含む)データをゲーム用にコンバート、使用する機能(モーフィング対応予定)
・・・多いなぁ。
これが色々欲張った結果ですね。
果たしてこれは期待できるゲームライブラリなのでしょうかね?