Como adicionar grandes mapas sem travar o servidor
Uma ilha nova, uma cidade inteira, uma base militar gigante: mapas grandes animam a comunidade, mas mal preparados causam FPS baixo, objetos sumindo e até travamentos na inicialização.
1. Audite antes de adicionar
- Quantos objetos o mapa tem?
- Quantas remoções (
RemoveBuildingForPlayer)? - Usa custom models? Qual o tamanho total?
- Há objetos duplicados ou escondidos?
Mapas baixados da internet frequentemente têm centenas de objetos inúteis.
2. Otimize
Aplique as técnicas do post "Otimizando mapas": peças maiores, texturas, remoção do invisível, distâncias de stream adequadas.
3. Use o Streamer, sempre
Nada de CreateObject nativo para mapas grandes. Use CreateDynamicObject com mundo e interior corretos.
4. Pense em densidade, não só em total
O problema não é o servidor ter 30 mil objetos no total. É o jogador ter muitos objetos ao redor ao mesmo tempo. Espalhe a decoração e evite pontos com densidade extrema.
5. Carregamento na inicialização
Milhares de chamadas em OnGameModeInit deixam a inicialização mais lenta, o que é normal, mas não devem travar o servidor em funcionamento. Se o mapa é carregado de arquivo ou banco, faça isso uma vez, na inicialização.
6. Teste com carga
- Teste com vários jogadores na área nova;
- Veja FPS em computadores modestos;
- Acompanhe CPU e memória do servidor no painel.
7. Libere aos poucos
Uma estratégia segura: abrir a área nova num evento de inauguração, acompanhar os relatos dos jogadores e ajustar nos dias seguintes.
8. Monitore depois
Depois de alguns dias, verifique:
- Reclamações de objetos piscando ou colisões falhando;
- Consumo de memória do servidor;
- Tempo de inicialização.
Recursos do servidor
Mapas grandes com Streamer aumentam o uso de memória e de CPU do servidor. Se o servidor já está perto do limite, considere um plano com mais RAM e vCores.
Hospede seu servidor com a VittHost
Os planos OPENMP-BR da VittHost vão de 2 GB a 16 GB de RAM e de 1 a 8 vCores, com servidores no Brasil, painel Pterodactyl, proteção DDoS, MySQL incluso, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.