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


Demora por TCP interrompe todas as conexões?

3 participantes

Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Sáb 04 Jan 2014, 11:08

Bom, eu sei que fazer jogos online por TCP tem um empecilho: o jogo tem grande perigo de dar lag por perda de pacotes enviados que deveriam ser confirmados, mas que como não houve tal confirmação, são enviados desdo início de novo.

Minha dúvida! Se isso acontecer do servidor para um jogador, os outros jogadores são imediatamente afetados ou aquilo atrapalha apenas aquele jogador?
Ou seja, dá só lag com o socket que tá com problema ou faz parar todas as conexões até obter resposta do jogador de conexão "problemática?"
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por PedroX Sáb 04 Jan 2014, 13:12

Recomendo que leia esse artigo, que está em inglês, mas é ótimo:
http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/

O melhor a se fazer é usar UDP, porque a segurança do TCP é também uma desvantagem. Com uma boa programação, é possível evitar vários bugs do UDP.

Respondendo a sua pergunta: geralmente só afeta o jogador.

Faz de conta que você é o jogador com perda de pacotes. Você se movimenta e isso não é enviado ao servidor. Aí você para e isso não é enviado ao servidor também. O que vai acontecer é que você vai se movimentar atrasado no jogo dos outros.

O problema que pode afetar outros jogadores é que se houver vários pacotes perdidos de vários jogadores, o servidor precisará processar muitos de uma vez, o que pode diminuir a performance dele. Mas geralmente isso não acontece, porque a taxa de perda é de até 5%. Em jogos pequenos, isso não é muito importante.

_________________


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 : Demora por TCP interrompe todas as conexões? 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

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Sáb 04 Jan 2014, 14:08

Se o jogador se movimenta e esse pacote não chega ao servidor, tudo bem, só ele vai congelar a conexão e enviar novamente os dados. Mas se o servidor que não consegue enviar os dados, ele vai esperar uma resposta e só enviar o próximo dado na lista quando o anterior tiver sucesso no envio. Se é o servidor que não obteve resposta, não seria adequado que ele congelasse todas as conexões, já que ele só usa um socket para todos e não tem como o protocolo TCP diferenciar num nível alto assim?
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por PedroX Sáb 04 Jan 2014, 14:22

O que vai acontecer é:

O servidor envia 10 pacotes para o player 1 e 15 para o player 2.

Ao player 1, chegam 9 pacotes e ao player 2 chegam 14.

No próximo step do servidor, ele envia mais 15 para o player e mais 20 para o player 2. Chegam 14 e 18 respectivamente.

Nesse meio tempo, paralelamente, o PC vê que alguns pacotes faltaram, e tenta reenviá-los. Aí chegam os pacotes com sucesso. Só que tem mais pacotes ainda para serem enviados e mais perdas nos próximos.

O que acontece é que o GM trabalha separado da interface de rede. Ao mesmo tempo que ele está enviando certos pacotes, a interface pode estar enviando antigos perdidos e atuais ao mesmo tempo, para corrigir as perdas.

Nesse caso, se boa parte dos membros não receberem pacotes, outros podem ser afetados. Isso porque haverá congestionamento. Se muitos pacotes forem perdidos, muitos terão que ser reenviados.

_________________


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 : Demora por TCP interrompe todas as conexões? 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

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Sáb 04 Jan 2014, 15:11

Não dá pra ser exatamente assim. TCP envia pacotes garantidos.

TCP: envio um pacote, que chega no jogador, o jogador manda de volta um pacote dizendo "eu recebi" e o servidor manda *de novo* um pacote que agora diz "entendi que você recebi"

Um aperto de mão triplo. O segundo e terceiro são automáticos, coisa de TCP.

O problema é se durante esse triplo aperto de mão um dos pacotes não chega. A conexão congela, enviando mais vezes até que finalmente o pacote volte dizendo que foi recebido na terceira vez.

Daí minha dúvida: Se falhar, congela todas as conexões, ou só entre jogador específico e servidor?
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por PedroX Sáb 04 Jan 2014, 15:24

Só entre o jogador e o servidor.

_________________


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 : Demora por TCP interrompe todas as conexões? 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

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Dom 05 Jan 2014, 00:52

Ok... por que diz isso? Qual a lógica de TCP que te faz acreditar nisso?
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por PedroX Dom 05 Jan 2014, 01:11

Mais um artigo recomendado: http://gafferongames.com/networking-for-game-programmers/reliability-and-flow-control/

Eu imagino pelo seguinte: quando os packets são perdidos, eles precisam ser reenviados. Isso seria um problema se o servidor não pudesse enviar vários pacotes ao mesmo tempo. Mas os servidores podem. Então o único afetado é o player, que terá seu movimento atrasado e receberá movimentos atrasados.

Se a taxa de perda fosse grande (o que não é verdade) e acontecesse para vários players (improvável), o problema afetaria não só eles, mas a maioria.

_________________


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 : Demora por TCP interrompe todas as conexões? 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

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Dom 05 Jan 2014, 14:08

Os artigos que você está mandando estão se baseando em UDP. Eu estou mexendo com TCP. Já li essas páginas há alguns dias.

Aqui vai o que eu estou tentando expressar, direto da wikipedia (que não é uma fonte 500%, mas que quebra o galho aqui):

Wikipedia escreveu:Some network transport protocols such as TCP provide for reliable delivery of packets. In the event of packet loss, the receiver asks for retransmission or the sender automatically resends any segments that have not been acknowledged.[7] Although TCP can recover from packet loss, retransmitting missing packets causes the throughput of the connection to decrease. This drop in throughput is due to the sliding window protocols used for acknowledgment of received packets. In certain variants of TCP, if a transmitted packet is lost, it will be re-sent along with every packet that had been sent after it. This retransmission causes the overall throughput of the connection to drop.

EDIT: Fui dar uma relida na página que você me mandou, e ela explica exatamente isso:

Seu artigo escreveu:The problem with TCP is that it abstracts data delivery as a reliable ordered stream. Because of this, if a packet is lost, TCP has to stop and wait for that packet to be resent.
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por Kol Dom 05 Jan 2014, 14:57

é o seguinte amigo o tcp, vai interromper os outros player sim, mas só se tiver em um loop só:

Exemplo:

loop{
Enviando pacotes player 1;
Enviando pacotes player 2;
Enviando pacotes player 3;
}

Se for TCP, e o pacote do player 1 não for enviado, ele para o loop ali, sendo assim se demorar 10s para enviar os outros player irão ficar parados 10s, oque recomendo fazer é usar thread, para cada player e usar udc para comandos basicos, como por exemplo a posição do player, já que você a envia constantemente. Smile
Kol
Kol

Data de inscrição : 11/09/2013
Reputação : 8
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Seg 06 Jan 2014, 07:23

Nas funções nativas do GM:S você sabe se funciona como um loop só? Nele é um evento especial apenas para networking... Não tenho certeza de como é feito lá
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por PedroX Seg 06 Jan 2014, 15:16

O evento existe porque o sistema é assíncrono.
Então fique tranquilo.

_________________


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 : Demora por TCP interrompe todas as conexões? 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

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

Mensagem por felipejoys Seg 06 Jan 2014, 15:49

Eu sei que o TCP fica parado até se recuperar se perder um pacote. Quero saber se há como contornar isso e se o GM:S usa uma variante do TCP que não faz isso.
felipejoys
felipejoys

Data de inscrição : 29/12/2013
Reputação : 1
Número de Mensagens : 56
Prêmios : Demora por TCP interrompe todas as conexões? 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

Ir para o topo Ir para baixo

Demora por TCP interrompe todas as conexões? Empty Re: Demora por TCP interrompe todas as conexões?

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