https://youtu.be/_4vnV2Eng7M?t=3802
In Day 11 Casey Answers a question about multi-threading:
"would you always orchestrate how you do threading in the platform layer or does it make sense for the platform layer to also provide a more generic threading job service?"
Casey's Answer, as linked in the video is that he prefers it to be orchestrated by the Platform/OS code.
I really did not get his answer/reasoning though or really what the question was asking? What exactly are the 2 options being debated here. I guess by Job system the questioner meant a ability for the actual game code to specify they wanted a certain operation to be multi-threaded (for example specific parts of a Physics simulation). But, Casey says this is bad because "threading often times in games is directly tied to resource management in a lot of places;" he says threads are often used to "service resource readiness," such as File IO, and thus should be wholly managed by the platform Layer. I do not get what he means by this. It seems like Casey is proposing that all multi-threading code should be entirely in the Platform Layer, but I don't even know how this could be achieved, since wouldn't the game actually be the thing that needs to multi-thread stuff (rendering, physics, etc) + i simply don't get how IO/Resource operations are actually related at all to wanting Thread code in the platform layer.