GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


[Dúvida] GMS Networking - Servidores

2 participantes

Ir para baixo

[Dúvida] GMS Networking - Servidores Empty [Dúvida] GMS Networking - Servidores

Mensagem por Convidado Sex 29 Nov 2013, 13:40

Olá,

Vi o tópico do tutorial de multiplayer online no GMS do fredcobain: https://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!
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain 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
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [Dúvida] GMS Networking - Servidores Empty

Medalhas x 0 Tutoriais x 3 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por Convidado 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.
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por PedroX 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.

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : [Dúvida] GMS Networking - Servidores Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain 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
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [Dúvida] GMS Networking - Servidores Empty

Medalhas x 0 Tutoriais x 3 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por Convidado 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:

[Dúvida] GMS Networking - Servidores A31jb5

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.
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain 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
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [Dúvida] GMS Networking - Servidores Empty

Medalhas x 0 Tutoriais x 3 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por Convidado 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!
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por fredcobain 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
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : [Dúvida] GMS Networking - Servidores Empty

Medalhas x 0 Tutoriais x 3 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por Convidado 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.
avatar
Convidado
Convidado


Ir para o topo Ir para baixo

[Dúvida] GMS Networking - Servidores Empty Re: [Dúvida] GMS Networking - Servidores

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos