public Game Create(GameOptionsData options) { // TODO: Prevent duplicates when using server redirector using INodeProvider. var gameCode = GameCode.GenerateCode(6); var gameCodeStr = GameCode.IntToGameName(gameCode); var game = new Game(this, _nodeLocator, _publicIp, gameCode, options); if (_nodeLocator.Find(gameCodeStr) == null && _games.TryAdd(gameCode, game)) { _nodeLocator.Save(gameCodeStr, _publicIp); _logger.LogDebug("Created game with code {0} ({1}).", game.CodeStr, gameCode); return(game); } _logger.LogWarning("Failed to create game."); return(null); }