In Figure 1, we can see that there is a loop of tasks in the Game Loop block, both on the client side and on the host side.
To allow for this, user input from the client side and process input from the host side, are processed by specific independent threads.