数か月の間に、現在すべてのプロジェクトに組み込んでいるゲーム開発のための小さなフレームワークを作成しました。
フレームワークは、SFML、LUA、JSONcpp、およびその他のライブラリに依存しています。オーディオ、グラフィック、ネットワーキング、スレッディングを扱います。いくつかの便利なファイルシステムユーティリティとLUAラッピング機能があります。また、文字列解析ヘルパーや数学ユーティリティなど、多くの便利な「ランダム」ユーティリティメソッドがあります。
私のプロジェクトのほとんどはこれらの機能をすべて使用していますが、すべてを使用しているわけではありません。
- ファイルシステムとネットワーク機能のみを使用する自動アップデーターがあります
- ネットワーク機能のないゲームを持っています
- JSONcppを必要としないプロジェクトがあります
- これらの文字列/数学ユーティリティのみが必要なプロジェクトがあります
つまり、SFML / LUA / JSON共有ライブラリは、たとえ使用されていなくても、すべてのプロジェクトに含める必要があります。プロジェクト(非圧縮)のサイズはこのように10MB以上で、そのほとんどは未使用です。
代替策は、フレームワークを多くの小さなライブラリに分割することです。これは、はるかに効果的でエレガントになると思いますが、より多くのDLLファイルとプロジェクトを維持する必要があります。
フレームワークを多数の小さなライブラリに分割する必要があります。
- グラフィックス
- スレッディング
- ネットワーキング
- ファイルシステム
- 小さいユーティリティ
- JSONcpp utils
- LUA utils
これは最良の解決策ですか?