I think sdfgeoff is talking about the “max” of the logic steps.
I slightly modified your demo file to show the MaxPhysicsFrame and MaxLogicFrame only (rather than setting them). I could not see that physics substeps are accessible via BGE API, so I wasn’t able to verify that as well.
I changed Logic Steps/Max to 1 in “Scene” and to 5 in “Scene.001”. Then I let the scenes switch to the other.
It turns out the settings are used from within the scene the game session started from and does not change when switching to another scene. It does not matter that there are different “world settings” the start-up parameters are used similar to the render settings (Multitexture/GLSL).
Lets look at the semantics.
The logic step - max parameter is used when the game session hits the timing limits (the overall processing exceeds the time available for a single frame). The system automatically reduces the processing time by skipping the render step. When max numbers of frames without render are reached the next frame will get a render (otherwise the user would remain to see the last rendered image until the processing time is reduced or the game session ends). You do not know if a frame exceeds the limit before the frame is completely processed. As far as I remember the BGE looks if the previous frame exceeded the processing time, trying to speed up the current frame.
I do not really know what that means for Physics Steps - max.
Maximum number of physics step per game frame if graphics slows down the game, higher value allows physics to keep up with realtime
I can imagine “game frame” means “a frame of the logic”. But this seams strange as it indicates that the physics would perform 5 frames while logic performs one. That makes not much sense.
I guess “game frame” means “a render frame” similar to the “logic game frame”.
My conclusion:
I still do not see what will happen on lags. Will the minimum of logic steps max and physics steps max take place? Will a physics step be skipped. Will the number of physics substeps be reduced to the max number?
I never changed this settings, therefore I did not thought about this topic that much.
Nevertheless, what would happen if the settings are scene local?
If there is only one scene, it would be fine. You might get a better lag handling in one scene as in the other (with different settings).
If there are multiple scenes (overlay/background), it would be possible to skip the render of a single scene, as they are rendered independent from each other. So yes the settings could be processed by scene. Maybe there are other arguments against it.
To answer sdgeoff’s question. It looks like it is a game session global setting. The settings from the startup scene will take place until they get overridden by python.