現在dxlibでゲームの作成中で、完成したゲームは販売する予定です。
そうなると気になるのはexeのサイズです。
できる限りサイズが小さくしたいと考えています。
dxlibの場合選択肢は単純にプログラムを工夫すること。
もう一つはdxlibの3Dモデル機能&ソフトウエアレンダリング機能無しパッケージを使う事だと考えています。
そこでふと気になることができました。
コンパイラによっては最適化で未使用関数の削除が行われていると認識しています。
そこでライブラリの中の関数の未使用関数を削除させる方法がないかと考えました。
調べたところ、以下の内容が出てきました。
1.プロジェクトのプロパティで [構成プロパティ] > [C/C++] > [コード生成]の[関数レベルでリンクする]をはいにする。
2.プロジェクトのプロパティで [構成プロパティ] > [リンカー] > [最適化]の[参照」をはいにする。
試しに今製作途中のプログラムは実行可能な状態だったのでdebugのx64のexeですが作成してサイズを比較しました。
なお試した環境はVisualstudio2022でnugetで導入したdxlibです。(バージョンがいくつかはわかりません)
プロパティを変更する前:13220KB
プロパティを変更した後:7103KB
減ったサイズは6117KBとなりました。大体6MBぐらいです。
無事に未使用関数が削除されているのかわかりませんが、3Dモデル機能&ソフトウエアレンダリング機能無しパッケージを使うと2MBサイズが減ることを考えるといい結果かなと考えています。
上記実験をふまえて質問があります。
上記プロパティの変更は問題ないでしょうか。
また、さらにサイズを削除する方法はあるでしょうか。
問題なければ正式に導入したいと思います。