別人がフォークした奴も見つけた これもうわかんねえな
https://www.mediafire.com/file/ir309o3gvuhteqo/HDT-HSANMARTIN.rar/file

私は数ヶ月前にHDT-SMPのパフォーマンスの問題に遭遇しました(状況によっては最大20fpsの低下がありました)。
そして、Karonar1氏のGitHubを見つけました。私はその「ブランチ」バージョン(最も進んだバージョン)をコンパイルし、個人的に使用するために多くの修正を加えました。

CUDAコードをすべて削除し(他の機能に比べてあまり改善されておらず、いくつかの条件下で動作が遅くなる原因となっていました)、
いくつかの新しいコンソールコマンドを追加し、RESETコマンド(時々ゲームがクラッシュすることがあります)を修正し、弾の計算で消費される量と時間に
基づいて「最大距離」を増減させる動的な計算を追加しました。また、コードをより最適化し、「プログラム全体の最適化」のようなトリックを可能にするために、コードを再編成し、ほとんどの依存関係を統合しました。

私の意見では、Karonar1の最新バージョンで最も改善されたのは「最大距離」です。これは、必要のない計算を大量に除外するものです
(町の反対側にいるNPCのヘアフィジックスなんて誰が気にするんだ!)。作者が提案したように、これを3000または2000に設定するだけで、CPUの消費量が大幅に減少します。

- Visual Studio 2019を使ってください、笑ってもいいですが、より速いコードが生成されます(私のテストに基づく)。

- CUDAは、新しい「maximumDistance」パラメータに比べて、私にはあまり違いがありませんでした。私はそれを落としました。
これで時間を無駄にしないことをお勧めします。コードの中でCUDAやCPUなどを設定するためのポインタを使わなくて済むことで、適用できる最適化があるくらいです。

- 最新のDetoursとBulletのバージョンを使用してください。これらをlibとしてコンパイルし、デフォルトのまま使用することができます。
しかし、コードをhdtSMP64プロジェクトに直接統合すると、パフォーマンスが顕著に向上します(CPU消費量が少なくなります)。
これにより、コンパイラ(Visual Studio)は、そうでない場合には不可能なインライン最適化をかなりの割合で実装することができます。また、VSのUIの外でCMAKEなどを操作する手間も省けます。

- configs.xml内の "maximumDistance "の値を弄ることを絶対に忘れないでください。これはいくら強調しても足りません。
また、異なる値を使用した場合、「最適化の比較」は不可能です。デフォルトの10.000と提案された2.000の値は、このMODの中で最も大きな影響を与えています。

- オリジナルのコードでは、1つまたは2つの構造体に初期化されていない値がありますが、それらに値(場合によっては0またはNULL)を割り当てるだけです。
安定性のために、HDT関連の構造体のほとんどを初期化しました...気のせいかどうかはわかりませんが、非常に高負荷な状態でのいくつかのCTDは、それ以降起こらなくなりました(コンパイルするには、1つを修正するだけでいいのです)。

- SDKのバージョンを変更する必要はありませんが、C++(言語バージョン)だけは変更する必要があります。
元のバージョンは覚えていませんが、VSのデフォルトではC++20を使うようになっているので、ISO C++17 Standard (/std:c++17)に変更する必要がありました。

- 最大限の最適化(Favor Speed)(/O2)、固有関数の有効化(/Oi)、インライン関数の拡張(Any Suitable)(/Ob2)でコンパイルするようにします。
デフォルトで搭載されているかどうかはわかりませんが、プログラム全体の最適化(/GL)も有効にしてください。この最後の機能は、単にライブラリを使用するのではなく、Bulletコードを統合する場合に大きな影響を与えます。)

- 私が始めたものの完成しなかったのが、使われていないBulletコードを削除してDLLサイズを小さくすることでした。
(これをDLLとしてコンパイルすることの短所は、使われていないコードが実際にはバイナリから省かれていないことです)。