Most game source code I've seen has exhibited this "poorly designed" trait. Some because it was originally written in a single-threaded context and continued to provide shareholder value, and others because it didn't have high enough performance needs to utilize parallelism.
I think that will slowly change over time though, especially for big-budget titles that want to scale with performance better. Architectures like Unity's Job System and the specs package in Rust[1] with a stronger emphasis on staged data processing can help with utilizing cores and cache.
I think that will slowly change over time though, especially for big-budget titles that want to scale with performance better. Architectures like Unity's Job System and the specs package in Rust[1] with a stronger emphasis on staged data processing can help with utilizing cores and cache.
[1] https://github.com/slide-rs/specs