public async Task JoinGame() { var playerEid = await _world.NewEntityId(); _player = GrainFactory.GetGrain <IPlayer>(_world.MakeEntityKey(playerEid)); await _player.SetName(_name); await _player.BindToUser(this); await _world.AttachEntity(_player); _state = UserState.JoinedGame; _keepAliveWaiters = new HashSet <uint>(); _sendKeepAliveTimer = RegisterTimer(OnSendKeepAliveRequests, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); // _worldTimeSyncTimer = RegisterTimer(OnSyncWorldTime, null, TimeSpan.Zero, ) }