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
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

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

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

» 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

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


Como funcionam servidores?

4 participantes

Ir para baixo

Como funcionam servidores? Empty Como funcionam servidores?

Mensagem por Thomaz Ter 31 Jan 2012, 19:11

Eu já consegui fazer meu jogo funcionar online só que estou com um pequeno problema de sincronização.

Na minha dúvida eu não preciso de códigos, só preciso saber como que ele funciona:

No meu jogo eu tentei mandar mensagens que identificam quando botões são pressionados. Só que o jogo fica absurdamente não sincronizado.

Tentei mandar mensagens que mandarão posições, só que o jogo dá crash toda vez que entra mais de um player. Além de ter um delay absurdo(pelo fato de mandar mensagens a cada step)

Tentei mandar uma combinação dos dois só que o servidor continua não sincronizado com o cliente.
O meu servidor funciona de boa numa conexão local, só que esse problema de não ser sincronizado surge quando eu vou por uma conexão online.(Só espero que entendam que meu problema não é delay, é que o jogo não recebe as mensagens com o mesmo intervalo que a pessoa clica no outro computador.)

DÚVIDA:
Então eu venho aqui pedir a vocês tutoriais, ideias, matérias ou qualquer coisa que possa me ensinar como funciona REALMENTE um servidor.


Caso não tenha entendido qual o meu problema e queira um explicação melhor para me explicar diretamente qual o meu erro sinta-se livre para dizer que não entendeu eu tentarei explicar melhor. Apesar que meu pedido são materiais de estudo é bem melhor uma explicação mais direta Smile


Última edição por Thomaz em Sáb 03 Mar 2012, 13:36, editado 1 vez(es)
Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por vinians Ter 31 Jan 2012, 20:25

Amigo, já fiz alguns servidores de teste e funciona perfeitamente. A base é o seguinte:
1-Você tem uma aplicação servidora DEDICADA, essa aplicação nao é cliente somente serve e pode ser feita até em Delphi por exemplo pra ficar mais rapido.
2-Os cliente recebe informações de ENTRADA (mouse, teclado, etc) e depois ENVIA para o servidor.
3-O CLIENTE aguarda dados do SERVIDOR
4-O SERVIDOR recebe as informações dos CLIENTES e as envia para TODOS os clientes.
5-Os CLIENTES recebem as informações do SERVIDOR a atualizam as posições de suas instâncias.
6-Volta para 2

Básicamente (eu disse basicamente) seria isso. Não sei como sua aplicação esta desenvolvida por isso fiz um algoritmo genérico.
Flws
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Thomaz Ter 31 Jan 2012, 23:06

Talvez eu esteja pedindo de mais, não sei... você até deu um algorítmo bem genérico só que meu problema está fora disto.

Eu vou tentar detalhar mais para ver se você entende como meu servidor funciona para ver se vc pode me ajudar:



O meu jogo é bem básico, Imagina o seguinte:

Eu comecei programando-o de tal forma que o cliente mandasse para o servidor suas posições e o servidor retornasse para os OUTROS CLIENTES. Qual o problema disto? São muitas informações por segundo, cada step vai ficar lotado de mensagens chegando e tudo o que é necessário são 2 players para que não tenha steps espaço o suficiente para que o programa rode da forma correta.(Nem em um servidor lan)

Então qual foi minha solução? Eu estudei um pouco e vi que poderia enviar e receber as informações para cada tecla pressionada e soltada. Logo em seguida criei uma array e fiz para que cada botão exercesse uma função dentro do player.

Imagina a seguinte array para "W" sendo igual a um e clica sendo 1 para clicado e 0 para soltado: if Clica[1] = 1 (y - = 1);//lembrando que a mensagem do valor do botão pressionado/ou solto são enviadas pelo client.

Qual o problema deste tipo de mensagem? A internet é muito inconstante, o tempo de clicar e soltar não vai ser o mesmo isso vai fazer com o que o player vá mais adiante ou vá mais para trás.
(eu já tentei misturar botões + posições mas ainda assim não dá certo, pois o player acaba saindo muito da distância prevista e acaba saindo um pouco feio).

O meu plano é estudar um pouquinho mais para ver o que fiz de errado e para ver como fazer para que o tempo de clicar e de soltar seja igual ao das mensagens de clicar e soltar.

VEJAM QUE MEU PROBLEMA NÃO É O LAG, E SIM A FALTA DE CONSTÂNCIA ENTRE OS DOIS TEMPOS. Por mais que exista delay eu quero fazer com que estes dois tempos sejam iguais.

É por isto que o que eu quero é apenas SINCRONIA entre o tempo de clicar e soltar E o tempo das mensagens de clicar e soltar.

Caso precisem que eu explique mais uma vez não terei problema, na próxima serei o mais direto e simples possível sobre o que quero.


Última edição por Thomaz em Sáb 04 Fev 2012, 17:20, editado 1 vez(es)
Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por vinians Qua 01 Fev 2012, 13:09

Entendi o seu problema. Bem, na minha opinião, sua abordagem não vai funcionar mesmo pois envolve temporização e realmente você acabaria tendo que enviar algum byte de controle ou criar um sistema de bufferização de mensagens, mas que acabaria por congestionar a rede.
Eu ainda acho que você deve enviar a posição final Absoluta. Entretanto você não precisa enviar o caracteres ASCII. Veja um exemplo:
O player esta na poiscao: 100, 120
Neste caso enviando em ASCII você enviaria 6 bytes certo? Ok, mas se enviar um byte binário você gasta somente 2 bytes e pode enviar valores até -32768 até 32767, gastando assim 4 bytes para os 6 valores. Isso reduz bastante a quantidade final de bytes enviados.
Ou seja, se concentre em valores absolutos e não em temporização pois realmente não daria certo.
Qualquer coisa estamos ai e vamos conversando até que possamos char uma solução melhor.
Flws
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Thomaz Qua 01 Fev 2012, 14:57

Você diz que eu tenho que largar este sistema de ascii e tentar me concentrar em conseguir fazer funcionar um sistema por "posições"?.

Tipo, quando eu envio estes botões dos dois lados (tanto no servidor quanto no client) terão players que interpretarão as mensagens de botões clicados.(Lembrando que eu só mando esta mensagem uma vez).

Deixando de explicar o que eu estou fazendo e passando mais para o que você falou:
Desculpa fazer uma pergunta destas mas um byte binário é enviado de qual forma?(Writebyte?)

E outra coisa, Eu jogo bastante gang garrison e uma coisa que eu acho incríve é que, apesar do lag, o jogo dificilmente para para sincronzar(Em sincronia entenda por mandar posições para que os players se teletransportem para um ponto referêncial do server). A coisa aparenta ser tão boa que parece ser um "Stream" de um vídeo que você está jogando.(digo stream pq claro tem seu lag mas é tudo perfeitamente sincronizado.)

E daí que vem a minha dúvida: Já que a internet é tão inconstante, tem como eu criar um delay constante? Ou você me aconselha desistir destas coisas de botões?
Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Thomaz Sáb 04 Fev 2012, 09:13

Ahh, desculpa só para lembrar que eu utilizo a 39dll.

E só para adicionar uma coisa, a mensagem que eu envio fica desta forma:

clearbuffer();//não preciso explicar, acredito '-'
writebyte(msg_botoes);//indica qual tipo de mensagem que estou mandando;
writeushort(1);//ou qualquer valor entre 1 e 7.*(w = 1, a = 2, s = 3, d = 4)
writeushort(1);//este segundo valor é como um true ou false que indica se foi clicado ou não, ou seja, 0 = não clicado e 1 = clicado.
sendmessage(host);

Esta mensagem eu envio para cada botão clicado. Algum erro você consegue encontrar? Está muito grande a mensagem?

EDIT: lembrando que o servidor lê, executa e envia de volta para o client para, só depois disso, poder executar (até mesmo o próprio player que enviou a mensagem).

Editado por joton
Não post outro recado abaixo do seu anterior, isso é considerado post duplo, sugiro que leias as regras, +5 na barra de alerta
Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por vinians Sáb 04 Fev 2012, 11:23

Amigo, pq vc esta usando o writeshort() para enviar valores entre 1 e 7 ? Isso duplica a quantidade de bytes enviados. Use o writebyte() que envia apenas 1 byte de cada vez. Estou falando isso pq vc tinha dito que estava ficando lento, então este pode ser o problema. Sempre use o minimo de bytes possiveis para enviar suas mensagens.
Flws
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Kaique_Staff Sáb 04 Fev 2012, 13:14

Com hamachi vc pode criar um servidor que é feito usando seu IP.
Kaique_Staff
Kaique_Staff

Games Ranking : Nota E

Notas recebidas : E+E
Data de inscrição : 16/01/2012
Reputação : 3
Número de Mensagens : 206
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://forumshow.blogspot.com

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Kabeção Sáb 04 Fev 2012, 16:30

Se quer um conselho, não envie informação do cliente para o servidor de forma direta. Isso não é seguro.
Jogos online para evitar cheats enviam solicitações (ou chamadas) ao invés de valores.

Por exemplo, o jogador matou um inimigo e a experiência dele tem que subir, não envie o valor total dos pontos de xp para o servidor diretamente, envie uma solicitação para aumenta-los dentro do próprio servidor. Pseudo-código:
Código:
//No cliente:
enviar_jogador_atacou();

//No Servidor
if (jogador_atacou) {
    xp += monstro_xp(monstro_selecionado.id);
}
O mesmo para posições
Código:
// No cliente
acres_pos_x();

// No Servidor
if (solicitou_acres_pos_x) {
    x += velocidade;
}

Valores de velocidade de movimento, o número de ponto que matar um inimigo da, todas essas coisa devem ser definidas no servidor e não no cliente.
O cliente deve ser apenas um meio de mostrar as informações baixadas do servidor para o jogador e enviar solicitações mas nunca para guardar ou enviar valores diretamente (obviamente, apenas valores que você pode evitar enviar, pois, coisas como login e senha são inevitáveis).

Alguns jogos chegam até a enviar apenas o que o jogador clica ou pressiona no teclado sendo que tudo o processamento é no servidor.

Hoje em dia é praticamente impossível fazer hackers que mudam valores em jogos online porque não há envio, só solicitação. Mesmo que mudem o valor no cliente, nada vai acontecer pois o cliente não envia valores, só os mostra.


Última edição por Kabeção em Sáb 04 Fev 2012, 16:49, editado 4 vez(es)
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

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

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por vinians Sáb 04 Fev 2012, 16:41

Kabeção escreveu:Valores de velocidade de movimento, o número de ponto que matar um inimigo da, todas essas coisa devem ser definidas no servidor e não no cliente.
O cliente deve ser apenas um meio de mostrar as informações baixadas do servidor para o jogador e enviar solicitações mas nunca para guardar ou enviar valores diretamente (obviamente, apenas valores que você pode evitar enviar, pois, coisas como login e senha são inevitáveis).
Otima observação Kabeção. Eu ainda não fiz um jogo on line com multiplos clientes, mas tenho alguma idéia de como faze-lo. Isso significa que não se deve checar colizões nos clientes e sim no servidor certo? E depois mandar para cliente uma ordem de deleção de instancia por exemplo ? Ou seja, todo processamento pesado fica com o servidor?
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Thomaz Sáb 04 Fev 2012, 16:44

Kabeção: Eu faço assim mesmo. Eu peço permissão do servidor para poder me movimentar.(Tanto que existe um delay entre o tempo que você clica e o tempo em que você se movimenta) aquilo foi apenas um exemplo mesmo. Mesmo assim, foi de muito valioso a sua dica. Existe muita coisa no meu jogo que esta sendo definido no próprio cliente! Obrigado.

Kaique_Staff: Meu problema não é fazer um servidor é mais para aprender como mandar mensagens.(a forma correta).


Vinians: Desculpa cara, digitei o código errado.(costume de digitar x e y para enviar as posições).

Joton: Que mágico isso, você tem o poder de editar o post dos outros! Laughing.
Peço perdão, admito que não li as regras mas lerei agora!


Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Kabeção Sáb 04 Fev 2012, 17:27

vinians escreveu:
Kabeção escreveu:Valores de velocidade de movimento, o número de ponto que matar um inimigo da, todas essas coisa devem ser definidas no servidor e não no cliente.
O cliente deve ser apenas um meio de mostrar as informações baixadas do servidor para o jogador e enviar solicitações mas nunca para guardar ou enviar valores diretamente (obviamente, apenas valores que você pode evitar enviar, pois, coisas como login e senha são inevitáveis).
Otima observação Kabeção. Eu ainda não fiz um jogo on line com multiplos clientes, mas tenho alguma idéia de como faze-lo. Isso significa que não se deve checar colizões nos clientes e sim no servidor certo? E depois mandar para cliente uma ordem de deleção de instancia por exemplo ? Ou seja, todo processamento pesado fica com o servidor?
Quanto a colisão veja só, o cliente deve processar as colisões também pois o jogo esta sendo mostrado e executado para ele e o jogador vai atravessar paredes se houver lentidão de conexão, ou vai ser estranho eu mando o jogador se mover e não acontecer nada porque o servidor ainda não atualizou meu estado. Fazer o servidor processar colisões multiplicara o trabalho, mas a segurança é mais importante.

Ainda sim existem muitas técnicas, como comparar os vertices próximos ao jogador(no caso de mapas 3D) com uma cópia do mapa no servidor, caso sejam diferente o servidor desconecta o cliente (é a mais comum para evitar dobrar o trabalho).
Ou atém mesmo o jogo ser feito de modo que modificações no mapa não atrapalhem ou beneficie o jogador, como por exemplo as texturas, mudar a textura de um jogo não aumentara o poder ou dará vantagens, então porque preciso checar modificações? Eu posso simplesmente da a volta pela casa, atravessar a parede é mais rápido mas ajuda em algo? É o servidor que defini a posição dos monstros no mapa, então modifica-lo não fará diferença.

Edit:
Ah, você também pode analisar anomalias. Se o jogador se mexer rápido demais de um ponto para o outro se sua velocidade estava normal então algo esta errado, desconecte-o.


Última edição por Kabeção em Sáb 04 Fev 2012, 17:58, editado 3 vez(es)
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

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

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Thomaz Sáb 04 Fev 2012, 17:33

Isso de desconectar o servidor(Desculpa estar me intrometendo '-') isso acontece MUITO no Mario Kart 7.

Sabe quando você está muito longe dos outros competidores e fica esperando eles só para dar a ré de última hora e passar em primeiro? (Sim, eu faço isso Twisted Evil )

Se você fizer isto, eu imagino que o servidor "preveja" que você tenha passado na linha de chegada, só que você não chegou ainda e, para não existir choque de "Ideias", o jogador é desconectado. Isto acontece todas as vezes em que eu jogo.


Só voltando um pouco para o tópico, existe algum material bom que vocês conheçam(Pode ser em inglês mesmo) que possa me ajudar a abrir minha mente no que diz respeito às mensagens?


Última edição por Thomaz em Sáb 04 Fev 2012, 17:46, editado 1 vez(es)
Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Kabeção Sáb 04 Fev 2012, 17:39

Olha, nesse caso é mais provável que seja delay de conexão. Se você demora a responder ou fica sem enviar solicitação de "ainda estou jogando" o servidor te desconecta. Mas mesmo você estando parado no jogo, ele continua baixando informação do servidor e retornando para ele que a informação foi recebida.
Ou é um bug ou é problema de conexão tanto seu quando dos outros jogadores pois não faz muito sentido se for outra coisa. não
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

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

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por vinians Sáb 04 Fev 2012, 18:51

Entendi, mas ainda acho que o servidor deve processa as colisões, mas não usando o sistema normal do GM e sim usando algoritmos de colisão como, por distância ou sobreposição de retangulos. Porque? Simples, porque isso permite que eu faça um servidor em Delphi por exemplo executando código nativo e muito rápido. Isso não daria certo? Alias vou tentar fazer isso pra testar e quando tiver algo eu posto no fórum pra vocês verem .
@Topico
Vou pesquisar aqui se achar alguma coisa eu te passo!
Flws!
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Kabeção Sáb 04 Fev 2012, 19:03

Sim, mas o cliente deve processar colisão por si mesmo o servidor a atualize, imagine o quanto uma resposta atrasado dos controle é irritante para o jogador. Você aperta o botão e nada acontece principalmente em coisas como se mover ou atacar.
O jogo deve funcionar normalmente nesse sentido.

Pode observar que muitas vezes em jogos online sua posição pode estar diferente da que aparece em outro computador pois o cliente processa por se próprio mas isso não quer dizer que o servidor não processa também, isso para evitar o desconforto do jogo responder com atraso aos controles. No entanto caso haja muita diferença entre as posições, o servidor força a atualização da posição com ele.
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

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

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam servidores?

Mensagem por Thomaz Sáb 04 Fev 2012, 19:32

Obrigado, apesar de não ter participado da discussão, foi muito bom aprender sobre o servidor.

Fico na espera Vinians. Enquanto isto eu pesquiso aqui também.


Update: http://www.howtomakeanmmorpg.com/data-management.html (Meio dããããã, mas tem coisas interessantes sobre mandar mensagens). Keep searching. . .

Update2: Achei a source do gang garrison 2, irei começar a estudá-la e direi para vocês se consegui algo.
Thomaz
Thomaz

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 13/10/2011
Reputação : 4
Número de Mensagens : 106
Prêmios : Como funcionam servidores? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://bigleafeater.tumblr.com/

Ir para o topo Ir para baixo

Como funcionam servidores? Empty Re: Como funcionam 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