3.設計方針と構造

BaseCrossにはシンプルバージョンフルバージョンという2つのバージョンを実装しようと考えてます。

フルバージョンは「DxBase2016」の後継です。ステージ、コンポーネントの考え方が実装され、衝突判定や重力の追加など、コンポーネントを実装し、いくつかのパラメータを設定するだけであまりコードを書かなくてもゲーム制作を進めることができます。
フルバージョンはまさに「クロスプラットフォーム」を目標とします。共有化された一つのゲームコンテンツソースで、複数のプラットフォームへの対応できるよう試みます。
それに対してシンプルバージョンは、フルバージョンのようなサービス的な機能は持っていません。共有化される部分はごくわずかで、描画処理もプラットフォームに合わせ、別々に記述する形になります。
ではなぜ2つのバージョンを作成するのでしょうか?

フルバージョンによる制作は、ゲーム制作において「プログラミング」というよりは「パラメータの設定」という作業が多く含まれます。例えば、行列や三角関数の知識があまりなくても、制作を進めることができます。アクセラレータの存在も考える必要がありません。

しかし、しっかりとしたゲームをチーム制作などでじっくり作る場合など、どうしても「フレームワークの機能では物足りない」部分が出てきます。それはある意味ではフレームワークの不備なのかもしれません。しかし、どこまでも、一般化、抽象化、をめざすフレームワークに対して、実際のゲーム制作はそのゲームに合わせた、個別化、具体化、な作業になります。どこかでその考え方がぶつかります。
そんな時、シンプルバージョンの存在が役立ちます。シンプルバージョンは、メッシュの作成やシェーダの作成もゲーム側で行う必要があります。サンプルもそのようなものが多く含まれます。フルバージョンからでも頂点を作成したり、描画処理をゲーム側で行うことが可能です。ですから、あるオブジェクトに限って特殊な処理をする、ような記述が必要な場合、シンプルバージョンのサンプルが役に立つでしょう。
また、フルバージョンは、コンポーネントを採用しています。これはUnityなどほかのフレームワークでも採用している、今流行りの方法ですが、この方式に違和感を感じた方、あるいは独自のデータ形式や独自のオブジェクト管理を行いたい場合などは、フルバージョンを使わずにシンプルバージョンで制作を始めてください。「クロスプラットフォーム」な部分は、ほぼなくなりますが、その代りフレームワークの境界を簡単に超えられます。また、シンプルバージョンから、独自のフレームワーク(独自のフルバージョン)を作成することも可能です。シンプルバージョンでも「デバイスの設定やデバイスへのインターフェイス」はフレームワーク側で用意してありますので、一番根っこの部分は記述しなくてもゲーム制作は進められます。BaseCrossのフルバージョンは、シンプルバージョンを利用したフレームワークの一例にすぎません。

以下は、シンプルバージョン並びにフルバージョンのディレクトリや共有部分の構成です。

まず、シンプルバージョン。

00004

そしてフルバージョンです。

00003

色分けされていますが、Dx11、Dx12、それぞれシンプルバージョンとフルバージョン作成しますので、都合4つのパターンの構造が必要になります。

表の見方としては、たとえばDx12のソリューションには「Dx11用」のプロジェクトは読み込みません。共有プロジェクトと、それぞれに特有のプロジェクトが分けられているのがわかります。

カテゴリー

ピックアップ記事

  1. 2016092201
    今回は前回のサンプルを少し機能を追加しまして、いろんなオブジェクトを追加しています。FullTuto…
  2. 2016092001
    前回更新から時間がたってしまいましたが、今回はフルバージョンチュートリアル003をアップしました。内…
  3. eyecatch
    前回更新から時間がたってしまいましたが、今回はフルバージョンチュートリアル002で懸案となっていまし…
PAGE TOP