public override void onStart() { base.onStart(); if (serverInformation == null) { // we need to run a server var localServerPort = DEFAULT_GAME_PORT; server = new GameServer(new NetworkConnectionProvider(RemoteGameProtocol.instance, new Target(Target.AnyIP, localServerPort), GameServer.MAX_CONNECTIONS)); server.initializeSimulation(); // run the server on a server thread serverThread = new Thread(server.Start); serverThread.Start(); serverInformation = new ServerInformation { ip = Target.LoopbackIP, port = localServerPort }; } // run a client and connect // TODO: locally generate and store RSA client key client = new RemoteGameClient(new NetworkClientConnection(RemoteGameProtocol.instance)); var clientConnectTask = client.ConnectAsync(new Target(serverInformation.ip, serverInformation.port)); clientConnectTask.ContinueWith(x => client.sendMessageAsync(new JoinMessage { ready = true })); // client.onGameInfo = setupOnConnected; client.subscribe <GameInfoMessage>(setupOnConnected); client.subscribe <EmpireFetchMessage>(empireFetch); client.subscribe <WorldUpdateMessage>(worldUpdate); gameState = new RemoteGameState(); }
public GameBoard(RemoteGameState gameState) { this.gameState = gameState; var tileTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/tile"); unknownTileSubtex = new Subtexture(tileTexture, new Rectangle(0, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE)); baseTileSubtex = new Subtexture(tileTexture, new Rectangle(TILE_TEXTURE_SIZE, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE)); propertyTileSubtex = new Subtexture(tileTexture, new Rectangle(0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE)); highlightedTileSubtex = new Subtexture(tileTexture, new Rectangle(TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE)); var tileDisplayTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/tile_display"); tileDisplayActiveSubtex = new Subtexture(tileDisplayTexture, new Rectangle(0, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE)); tileDisplayTargetSubtex = new Subtexture(tileDisplayTexture, new Rectangle(TILE_TEXTURE_SIZE, 0, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE)); var stationsTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/station"); stationSubtexes = Subtexture.subtexturesFromAtlas(stationsTexture, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE); var pawnsTexture = GlintCore.contentSource.Load <Texture2D>("Sprites/Game/pawns"); pawnSubtexes = Subtexture.subtexturesFromAtlas(pawnsTexture, TILE_TEXTURE_SIZE, TILE_TEXTURE_SIZE); }