After researching Time.timeScale
, FixedUpdate()
, and EnvironmentStep()
, I found that decision time (Python producing actions) can desynchronize with Academy.EnvironmentStep()
(Unity applying actions), leading to duplicate actions or states. This appears to stem from the non-blocking websocket mechanism for action/state communication. A potential solution is a blocking mechanism to pause rendering until the next action is received, ensuring proper synchronization.
I also observe a significant performance difference when in headless mode and graphics mode and when the timeScale
is high.
Please correct me if I’m wrong, and I’d really appreciate your thoughts!