Chapter 60

テクニック | Siv3D プログラミング上達ガイドライン

Ryo Suzuki
Ryo Suzuki
2021.12.13に更新

Siv3D の機能をフル活用して、生産的で間違いが少なく、実行時性能に優れたプログラムを書くためのガイドラインです。

1. 一般的なコーディング

標準ライブラリよりも Siv3D の機能を優先しよう

不必要な C++ 標準ライブラリはインクルードしないようにしよう

Siv3D の提供する数学定数を使おう

コンパイラの警告に敏感になろう

フレームレートに依存する処理を作らないようにしよう

読み込みたいファイルを配置するディレクトリを理解しよう

2. アセットを扱う

アセットはポインタで管理する必要が無いことを理解しよう

アセットをグローバル変数で扱わないようにしよう

アセットを static 変数で扱わないようにしよう

縮小表示する画像ファイルは TextureDesc::Mipped を指定しよう

3. 実行時性能

配列や文字列、アセットを関数に渡すときは const 参照渡しを使おう

メインループ内で重いオブジェクトを作成しないようにしよう

Siv3D の関数の呼び出し回数を抑えよう

グリッド上に並ぶ大量の点や正方形を描く場合、Image の使用を検討しよう

内部の Draw コールの回数を抑えよう

4. 開発生産性

再ビルドしなくても良い開発手法を知ろう

  • IDE の機能
    • 最新の Visual Studio では、ホットリロード機能(Visual Studio メニューの 🔥 ボタン)を使うことで、条件を満たす場合、プログラムを再起動することなく数値の変更やコードの追加を実行中のプログラムに反映できます。デフォルトの設定では、Debug ビルトのときに有効です。図形の追加や描画位置の変更、色の変更などの調整作業が捗ります
    • 詳細 → テクニック | 開発生産性の向上
  • スクリプト機能
    • スクリプト機能は、3D 関連などいくつかの機能が未実装ですが、C++ に近い文法でプログラムを記述し、実行時にロードすることができます
    • ManagedScript を使うと、スクリプトのホットリロード機能を簡単に使えます
  • 設定ファイルの活用
    • 調整の多い数値を JSON や INI ファイルに保存し、実行時に読み込むことで、再ビルドのコストを抑制できます