communication between the client and the server is asynchronous and multiple commands can be sent in parallel. inside the game core a critical section is implemented using a semaphore to ensure resource and game consistency (e.g. an item cannot be picked up by more than one person).