client game logic