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
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


[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 : 6086
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