Conectar-se
Quem está conectado
35 usuários online :: 4 usuários cadastrados, Nenhum Invisível e 31 Visitantes

gart30, rafaelviodres1, Thiago_o_programador, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 13/10/2011
Número de Mensagens : 106
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://bigleafeater.tumblr.com/

Como funcionam servidores? (2)

em Seg 19 Mar 2012, 18:26
Depois de muito tempo tentando temporizar inputs do teclado para poder retornar inputs ao cliente mas sem resultados, decidi vir aqui fazer um segundo questionamento(eu já tentei só que não deu certo):

É possível criar um servidor que envia valores de posições sem ter um lag absurdo de 4 segundos mesmo dentro de uma rede lan?


Eu fiz um esquema bem simples que se utiliza de um "for" para não precisar enviar 300 mensagens dependendo do número de players. O esquema é este:

Spoiler:
clearbuffer();
writebyte(msg_sync)
for(a = 0; a <= global.players; a+=1){
with(obj_player){
if idd = other.a{
writebyte(idd);
writeshort(x);
writeshort(y);
writeshort(direction);
}}}
with(obj_controle){
sendmessage(socket)
}


Onde o servidor recebe inputs e retorna posições. O problema é, como eu falei, o lag absurdo (provavelmente pelo congestionamento de informação). Eu tentei de várias formas consertar este erro mas sem solução. (Tentei colocar alarms para diminuir o congestionamento).

Então, venho fazer uma segunda pergunta: É possível mandar posições sem que exista este lag absurdo?

Ps¹: Meu problema não e com o código mas sim com a lógica por traz dele.
ps²: Estou utilizando a 39dll caso isto tenha alguma diferença na lógica.
ps³: Caso não tenham entendido meu problema, eu posso explicar mais detalhadamente.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum