I had this same pain point though when using Rust that was meant to run in the browser (compiles to WASM), i.e. guaranteed to be single-threaded.
Still had to pay the very high price of accessing global state in Rust.
Ended up moving that code to JS instead just to avoid that!
Almost all parallelism in game engines is for very specific parts of the engine and almost none of the gameplay stuff is paralellizable. What people who haven't actually had to go through and solve the problems presented in game engines often times misunderstand is that when your game is running poorly because everything is happening on a single thread, almost all of this speed issue is because of rendering. Then physics. These are very hard problems to solve and it's more complicated than "use an ECS" to solve them.
Thinking parallel is heavy mental load to carry even if rust gives you the tools to make the load lighter.
If one or two threads(game loop & rendering threads) is enough why increase the difficulty by going even more concurrent, for little to no extra payout.
I had this same pain point though when using Rust that was meant to run in the browser (compiles to WASM), i.e. guaranteed to be single-threaded. Still had to pay the very high price of accessing global state in Rust. Ended up moving that code to JS instead just to avoid that!
Did you read the part where they said that they're a two-person indie game studio with a development cycle of 3-12 months max?
That's not an argument against parallelism in game design in general.
Almost all parallelism in game engines is for very specific parts of the engine and almost none of the gameplay stuff is paralellizable. What people who haven't actually had to go through and solve the problems presented in game engines often times misunderstand is that when your game is running poorly because everything is happening on a single thread, almost all of this speed issue is because of rendering. Then physics. These are very hard problems to solve and it's more complicated than "use an ECS" to solve them.
1 reply →
No, but in practice.
Because the type of game you produce in that time frame isn't typically the one that needs to worry about parallelizing multiple compute units.
Thinking parallel is heavy mental load to carry even if rust gives you the tools to make the load lighter.
If one or two threads(game loop & rendering threads) is enough why increase the difficulty by going even more concurrent, for little to no extra payout.