製作中のフレームワーク的なものについて覚え書き

昨日の記事にも書いたように、ゲームのフレームワーク的なものを製作中です。C++でゲームを作るのは初めてで手探りで作っているのであまり参考にはならないかと思いますが、何かの役に立つかもしれないので紹介します。概略は次の画像のような感じです。説明も何もないのでわかりづらいですが……。

DxSystemというのはDXライブラリを自分好みにラッピングしたクラスで、描画や音声を取り扱ったり、FPSを一定にしたり、ついでにiniファイルの読み書きなどをしたりします。

メインループはGameMasterにあって、そこからSceneBaseを継承したシーンクラスに更新・描画の指示を出します。シーン自体も処理したり描画したりするのですが、独立して動かしたいものはTaskBaseを継承したタスククラスのオブジェクトを生成してやります(いわゆるタスクシステムみたいな感じです)。画面上で動くキャラクターみたいなのは共通部分が多いので、TaskBaseを継承してSpriteBaseクラスとしています。

というかこんな説明じゃ自分にしかわからないですよね……。ほんとに何のために書いたんだか。設計にはSeleneに付属のチュートリアルを大いに参考にしたので、それを見たほうが勉強になるかと。

ちなみに、このライブラリを使ったゲームを完成させたらそれにソースコードを同梱する予定です。8月中に一気に仕上げたいと思っているのですが、予定は未定ということで……。

ここまで作るのは大変でしたが、そのおかげでこれから実際のゲームを作るときはSceneBaseやTaskBaseを継承したクラスの作成を中心にやればよさそうです。といっても実際に作ると必要なのに未実装な機能がちょこちょこ見つかるでしょうけど。