sexta-feira, 9 de agosto de 2013

Game Maker: Criando um jogo em rede: Parte 1 - Um jogo em rede precisa de um servidor

Bem, depois de um longo tempo longe... ok, na verdade, é que não tinha nada de novidade para estar postando aqui, mas enfim, hoje vou começar a explicar como configurar para jogos jogos em rede usando o Game Maker.
Existe diversos tutoriais pela Internet, mas mesmo assim me debati muito por causa da pouca informação para erros ou até mesmo códigos errados. No caso, hoje vamos ver a primeira parte que é como configurar um servidor. Então vamos começar.




Um jogo em rede precisa de um servidor
O código para criar um servidor é o seguinte:

var tipoDeSocket = network_socket_tcp;
var porta = 6510;
var qtdConexao = 2;
servidor = network_create_server(tipoDeSocket, porta, qtdConexao);
while(servidor<0 && porta<65535){
  porta++;
  servidor=network_create_server(tipoDeSocket, porta, qtdConexao);
}
if(servidor<0){
  //Procedimento para quando não for possível criar o servidor
}

Vamos explicar o código. A função em foco aqui é a função network_create_server, que contém três parâmetros:

  • Tipo de Conexão: Atualmente possui dois tipos de conexão: uma conexão TCP (network_socket_tcp) e UDP (network_socket_udp). Ainda não está previsto para ficar pronto, mas já está documentado a conexão por Bluthooth (network_socket_bluetooth);
  • Porta: configura qual é a porta que deseja fazer a conexão;
  • Quantidade de Conexão: Quantas conexões este servidor terá suporte. Sempre lembrar que quantos mais conexões, mais parrudo deve ser o hardware do servidor;
Então, até a primeira parte OK, criei três variáveis, um para cada parâmetro (sendo que a variável tipoDeSocket e qtdConexao, posso fazer direto na função).

Então precisamos verificar se o servidor foi de fato ativado e caso não foi, tente novamente com uma outra porta. O segredo está no retorno da função network_create_server, que retorna um número a partir de 0 caso o servidor foi ativado com sucesso e um número negativo para caso falhe. Portanto, essa estrutura de repetição do código verificará se a ativação do servidor falhou e se ainda tem portas disponíveis para tentar uma conexão. Se ambos forem verdadeiros, então uma nova tentativa em uma outra porta é feita. Isso repetirá até que o servidor seja ativado ou esgota-se as portas disponíveis.

Uma vez que saiu das tentativas de ativar o servidor, então verifica-se se de fato o servidor foi ou não ativado e dando o feedback necessário para o usuário.

Nenhum comentário:

Postar um comentário