Element data, sincronização e uso de rede
Cada jogador conectado recebe continuamente informações sobre o mundo: posições, veículos, dados de outros jogadores. Quanto mais dados trafegam, maior a chance de lag — no servidor e nos jogadores com internet mais fraca.
De onde vem o tráfego
- Sincronização de elementos: jogadores, veículos, peds e objetos em movimento;
- Element data sincronizada;
- Eventos entre cliente e servidor;
- Downloads de arquivos de resources.
Element data
O maior vilão em muitos servidores. Cada setElementData sincronizado envia a mudança a todos os jogadores.
- Use modos de sincronização restritos (apenas o dono ou inscritos) ou sem sincronização quando possível;
- Não atualize valores a cada frame ou segundo;
- Não guarde tabelas grandes em element data.
Veja "Element data: quando usar e quando evitar".
Eventos
- Envie para quem precisa, não para
root; - Envie só o que mudou;
- Agrupe atualizações frequentes;
- Para grandes volumes, use eventos latentes (
triggerLatentClientEvent), que respeitam um limite de banda.
Sincronização de elementos
- Menos veículos e peds ativos = menos dados;
- Elementos em outras dimensões não são sincronizados para quem não está nelas;
- Remova elementos sem uso.
Configurações do servidor
No mtaserver.conf:
<bandwidth_reduction>medium</bandwidth_reduction>
none: sincronização máxima;medium: reduz o envio de dados de elementos distantes;maximum: reduz ainda mais (pode afetar a precisão de elementos longe).
Os intervalos de sincronização também influenciam: intervalos maiores reduzem tráfego, mas deixam movimentos menos fluidos. Ajuste com testes.
Meça
Use a categoria de uso de pacotes do performancebrowser/ipb para ver quais tipos de pacote mais consomem banda.
Downloads
Otimize arquivos e use um servidor de download dedicado para não competir com a sincronização do jogo.
Hospede seu servidor com a VittHost
No MTASA-BR da VittHost, a conexão de datacenter no Brasil e os downloads acelerados por nginx dedicado ajudam a manter o jogo fluido. Painel Pterodactyl, proteção DDoS, MySQL incluso e teste grátis de 3 dias.