Года два назад написал физику для игры на языке C# которую можно использовать одновременно и на сервере и на клиенте. И вот пришло время достать ее из долгого ящика, и попутно из прототипа превратить уже в финальный алгоритм.
Не видел исходников, но сразу 2 момента (на стороне C#) - выделение происходит на куче, как я понял? может на стек перенести? И второй, может использовать небезопасный код с указателями для хотя бы какого повышения производительности?
А что хранить в стеке?
Небезопасный код похерит детерминизм.
достаточно было просто переиспользовать аллоцированную один раз память при инициализации солвера