Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor 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
Página 1 de 1
Como funcionam servidores?
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
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
Última edição por Thomaz em Sáb 03 Mar 2012, 13:36, editado 1 vez(es)
Re: Como funcionam servidores?
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
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
Re: Como funcionam servidores?
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.
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)
Re: Como funcionam servidores?
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
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
Re: Como funcionam servidores?
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?
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?
Re: Como funcionam servidores?
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
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
Re: Como funcionam servidores?
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
Flws
Re: Como funcionam servidores?
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:
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.
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);
}
- 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)
Re: Como funcionam servidores?
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?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).
Re: Como funcionam servidores?
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! .
Peço perdão, admito que não li as regras mas lerei agora!
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! .
Peço perdão, admito que não li as regras mas lerei agora!
Re: Como funcionam servidores?
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.vinians escreveu: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?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).
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)
Re: Como funcionam servidores?
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 )
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?
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 )
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)
Re: Como funcionam servidores?
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.
Ou é um bug ou é problema de conexão tanto seu quando dos outros jogadores pois não faz muito sentido se for outra coisa.
Re: Como funcionam servidores?
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!
@Topico
Vou pesquisar aqui se achar alguma coisa eu te passo!
Flws!
Re: Como funcionam servidores?
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.
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.
Re: Como funcionam servidores?
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.
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.
Tópicos semelhantes
» Como funcionam servidores? (2)
» [resolvido]como fazer sprite 2D,como separar algum, como editar algum
» Ajuda com jogo de servidores
» [Dúvida] GMS Networking - Servidores
» [online]Preciso saber sobre servidores
» [resolvido]como fazer sprite 2D,como separar algum, como editar algum
» Ajuda com jogo de servidores
» [Dúvida] GMS Networking - Servidores
» [online]Preciso saber sobre servidores
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|