[Dúvida] GMS Networking - Servidores

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Dúvida] GMS Networking - Servidores

Mensagem por Davit Quirinus em Sex 29 Nov 2013, 13:40

Olá,

Vi o tópico do tutorial de multiplayer online no GMS do fredcobain: http://gmbr.forumeiros.com/t27638-tutorial-de-multiplayer-networking-nativo-gms

Só que o tópico está trancado, então..

Gostaria de saber como faço para o meu jogo ter mais de um servidor? Eu teria de criar mais de um arquivo .exe de 'Conexao Cliente' (nome sugerido no tutorial)? E como seria para esses servidores terem nomes únicos (algo como Derron ou Lunar, por exemplo) ao aparecer para jogadores irem se conectar?

Outra dúvida: para ficar mais automático, como eu faço para que o(s) servidor(es) do jogo já fique(m) ativo(s), sem precisar que tenha que ativá-lo(s) toda vez ao abrir seu(s) arquivos .exe(s), poupando tempo?

Vlw!

Davit Quirinus

Número de Mensagens : 7
Data de inscrição : 31/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain em Sex 29 Nov 2013, 14:18

Davit, vc pode ter mais de um servidor sim. Mas nunca mais de um na mesma porta (se for a mesma máquina).

Pra ficar automático, basta colocar o código que está no evento de clique do mouse no evento CREATE:

Código:

Servidor=network_create_server(tipo_de_socket,numero_da_porta,numero_maximo_de_clients);
Exemplo de 2 servers na mesma máquina:

Código:

Servidor1=network_create_server(network_socket_tcp,6554,20);
Servidor2=network_create_server(network_socket_tcp,6555,50);
Veja que o servidor 1, irá usar o TCP como protocolo de entrega, vai escutar as conexões na porta 6554 e vai suportar até 20 clientes (jogadores conectados).

Já o servidor 2, irá usar o TCP como protocolo de entrega, vai escutar as conexões na porta 6555 e vai suportar até 50 clientes (jogadores conectados).

Agora, sinceramente, não vejo muita aplicabilidade nisto... o que se quer em 100% dos casos são vários clientes (jogadores) conectados no mesmo server. E não vários servers.

Espero ter ajudado.


fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por Davit Quirinus em Sex 29 Nov 2013, 14:28

Olá,

Ah, certo.

Então, no caso de ser servidores de uma empresa que pague para ter hospedagem e tal, como fica?

Tem alguma forma de fazer com que quando alguém solicite uma conexão com um servidor fechado, faça com que esse mesmo servidor fechado abrir remotamente?

Vlw.

Davit Quirinus

Número de Mensagens : 7
Data de inscrição : 31/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por PedroX em Sex 29 Nov 2013, 14:38

Ter vários servidores na mesma máquina não faz sentido mesmo. Se você tiver mais de uma, então terá que rodar uma cópia do EXE em cada uma.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain em Sex 29 Nov 2013, 14:40

No caso das empresas que fornecem hospedagem, cada "servidor" responde por um IP ou NOME. Logo, imagine que várias instâncias de servidores são criados. A tecnologia utilizada neles (como APACHE, IIS, ETC) permite que várias máquinas respondam por apenas um serviço, numa arquitetura conhecida como Cluster. Infelizmente o GMS ainda não dá suporte a isso (e nem sei se dará um dia).

Para vc verificar se um servidor está fechado e solicitar uma conexão, basta tratar através de troca de mensagens (buffers).

Mas pra isso vc precisa saber o basicão de networking e das funções (e o que elas retornam).

Eu sugiro que vc comece estudando de verdade o meu tutorial, lendo e entendendo cada parte (não só copiando o código). Isso vai fazer vc realmente entender o que está havendo e seguramente vai conseguir fazer essa verificação num próximo passo. Basicamente, quando o server estiver cheio, um código de mensagem vai ser retornado e basta vc tratar o código.

Existe ainda um exemplo mais complexo, veja:
No exemplo abaixo, o autor do tutorial utiliza a checagem de nomes (para ver se existe algum usuário jogando com o mesmo nome do usuário que está tentando se conectar):
Tutorial: http://gmc.yoyogames.com/index.php?showtopic=582029

Parte do código:
Código:

net_buff = ds_map_find_value(async_load, "buffer")
buff_info = buffer_read(net_buff , buffer_string )
sock = ds_map_find_value(async_load, "id")


if buff_info="check_name"//check if name exists
    {
    b_name=buffer_read(net_buff , buffer_string )
    count=ds_list_size(clients_name)
    name_exists=0
for(i=0;i<count;i++)
{
if b_name=ds_list_find_value(clients_name, i) name_exists=1
}
buffer_seek(buff, buffer_seek_start, 0) 
buffer_write(buff, buffer_string, "name_exists")
buffer_write(buff, buffer_bool, name_exists)
var buffer_size = buffer_tell(buff);
network_send_packet( sock, buff, buffer_size );
}
Veja que vc consegue fazer quase tudo com buffers... justamente pq vc vai programar o comportamento do SERVER e do CLIENT com mensagens personalizadas dependendo de cada situação.

Mas, AAANNNTESSSS é fundamental vc conhecer bem a linguagem (GML) principalmente a parte de networking (nada como ler o manual do GMS, brincar com as funções, tipos de dados, etc e alguns outros tutoriais que sugiro no meu tutorial).

Boa sorte e bons estudos.

Espero ter ajudado

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por Davit Quirinus em Sex 29 Nov 2013, 15:01

Olá,

Tem como você adaptar o tutorial lá da GMC da sua maneira, fedcobain? Acredito que muitos iriam entender melhor.

E via Javascript ou PHP, é possível estabelecer essas conexões?

E quando disse vários servidores, me referi mais ao que acontece no jogo Platform Racing 2:



Nessa tela, onde tem escrito 'server', clicamos e vemos várias opções de servidores para se conectar.

É possível fazer algo assim no GMS?

Vlw.

Davit Quirinus

Número de Mensagens : 7
Data de inscrição : 31/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain em Sex 29 Nov 2013, 15:07

Se vc pegar os dois pra ver... fazem basicamente a mesma coisa. 90% de semelhança. Até agora não me convenci que vc realmente estudou nenhum dos dois.
Inclusive vc pode baixar os arquivos server e client dele também, comparar os códigos, ENTENDER OS CÓDIGOS, etc.

Sobre as outras perguntas:
- PHP é uma linguagem pra fazer aplicações web, não jogos. Seria um caminho muito mais torto e trabalhoso.
- Javascript é para executar scripts locais (na máquina do usuário), sem chance de chegar a algum lugar.

Sobre o print que vc mandou, se fôssemos adaptar para o GMS, o que temos são várias máquinas diferentes executando o SERVER.EXE (cada uma com IP e NOMES diferentes).

Tá sacando?

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por Davit Quirinus em Sex 29 Nov 2013, 15:18

Olá,

Eu não irei mentir e dizer que já saquei tudo de Networking no GMS, mas como um novato, estou estudando sobre.

Os códigos são fáceis de entender, apesar de mais complexos que muitos outros do GMS.

Sobre Javascript ou PHP: sou novato nessa área online, logo, preciso de dicas, então, vlw.

E sobre o print: entendi sim e até me deu uma idéia de como farei.

Vlw!

Davit Quirinus

Número de Mensagens : 7
Data de inscrição : 31/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain em Sex 29 Nov 2013, 15:54

Tranquilo, tem que ser passo a passo mesmo.

Assim que as dúvidas forem surgindo, vai postando aqui que a gente ajuda.

=)

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por Davit Quirinus em Sex 29 Nov 2013, 16:24

Olá,

Ok, então, com a permissão de vcs, quero que esse tópico permaneça ativo, já que ele tem muito o que tirar dúvidas, por eu ser novato na área e também para não ficar criando mais tópicos do mesmo assunto.

Vlw por toda ajuda de vcs.

Davit Quirinus

Número de Mensagens : 7
Data de inscrição : 31/05/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] GMS Networking - Servidores

Mensagem por Conteúdo patrocinado Hoje à(s) 02:25


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum