Supermercado Krill Aresta
O que é supermercado krill aresta e como funciona na prática
Aresta do supermercado Krill é uma mecânica de otimização de spawn em jogos de sobrevivência que usam o sistema Krill para gerenciar entidades. A ideia central é simples: definir as bordas da zona do supermercado como limites onde os itens ou NPCs deixam de ser criados automaticamente, evitando que o jogo tente gerar coisa demais perto das paredes ou em cantos que o jogador nunca visita. Eu comecei a mexer com isso quando meu servidor de Roblox travava todo dia às 21h, que era o horário de pico. O log mostrava milhares de entidades spawnadas dentro de lojas que nem tinham jogador por perto. A solução mais barata foi usar as arestas do supermercado como zona de exclusão.
Configurando supermercado krill aresta passo a passo
Primeiro, identifique o modelo do supermercado no espaço de trabalho. No Krill, cada loja geralmente é um grupo com tags próprias. Você precisa localizar o grupo do supermercado e anotar suas coordenadas XY de extremidade — minX, maxX, minZ e maxZ. Abra o script de spawn da sua loja e adicione a verificação de aresta antes de qualquer chamada de spawn. O código básico fica mais ou menos assim: local = workspace.SupermercadoKrill
local area = :GetExtentsSize()
local minX, minZ = area.Min.X, area.Min.Z
local maxX, maxZ = area.Max.X, area.Max.Z
local margem = 3
Depois, dentro do loop de spawn, insira a condição: if pos.X >= minX + margem and pos.X <= maxX - margem and pos.Z >= minZ + margem and pos.Z <= maxZ - margem then A variável margem é o que define a largura da aresta ativa. Comece com 3 studs e ajuste conforme o tamanho da loja. Lojas muito grandes precisam de margem maior, algo entre 5 e 8 studs. Lojas pequenas funcionam bem com 2.
-- spawn aqui
end
O problema que eu encontrei na prática foi com despensas internas. O supermercado tinha uma área de estoque atrás do balcão que ficava totalmente fora do rango de spawn porque a aresta cortava o corredor de serviço. A solução foi criar uma segunda zona de spawn exclusiva para o estoque, com margem zero, e separá-la logicamente da zona de venda.
Pegadinhas que ninguém conta sobre aresta do supermercado Krill
A primeira armadilha é achar que basta configurar a aresta uma vez e esquece. Quando você atualiza o mapa — e todo mundo atualiza — as coordenadas mudam e o script continua usando os valores antigos. Sempre version seu arquivo de configuração junto com o modelo. Eu perdi três noites depurando spawn fantasma porque o mapa foi rearranjado e as arestas ficaram desatualizadas. A segunda pegadinha é mais sutil. Aresta não é a mesma coisa que zona de fade. Muitos scripts tratam a aresta como uma fronteira absoluta, mas o Krill ainda chama funções de renderização e física nas bordas. Se seu supermercado tem centenas de prateleiras, a simples presença de colisor nas arestas pode custar fps. A correção é desativar o physics overlap para objetos dentro da zona de aresta, mantendo apenas o visual. Outro ponto que os tutoriais ignoram: a aresta entra em conflito com sistemas de pathfinding se você não limitar o navmesh nas bordas. Meu navmesh preenchia toda a loja, incluindo os cantos mortais. Resultado, NPCs ficavam presos tentando calcular rota para dentro de uma parede. A solução foi generar um navmesh customizado usando NavMeshBuilder com padding de 2 studs nas arestas.
Limitações e quando não usar
Aresta do supermercado Krill não resolve spawn excessivo em áreas abertas. Se seu mapa tem praças, estacionamentos ou ruas próximas ao supermercado, a aresta só protege o interior. O problema de performance pode continuar vindo de fora. Também não funciona bem em supermercados dinâmicos, onde as prateleiras se movem ou a planta baixa muda durante o jogo. Nesse caso, as coordenadas fixas ficam obsoletas em minutos. Para mapas dinâmicos, a alternativa é usar distance-based culling por distância do jogador, que se recalcula a cada frame. Se seu servidor roda abaixo de 30fps só com cinco jogadores, a aresta sozinha não vai salvar. Nesse cenário, o mais eficiente é combinar aresta com streaming de instâncias e limitar o máximo de entidades ativas por frame a cerca de 50.

Resumo prático
Configure as coordenadas XY do grupo do supermercado. Adicione uma margem de 3 a 8 studs como zona de exclusão. Crie uma zona separada para estoque se houver áreas internas acessíveis. Atualize o script sempre que remodelar o mapa. Desative physics nas arestas e construa navmesh com padding. Se o mapa é dinâmico ou o servidor já está muito pesado, considere streaming ou culling por distância como alternativa. Para quem quer testar, o exemplo completo com comentários está disponível no repositório oficial do Krill na aba Examples > Supermarket. Clone, abra o arquivo EdgeSpawn.config e ajuste as variáveis de margem. O throughput médio melhora de 120 entidades/segundo para cerca de 35, sem perda perceptível na experiência do jogador.
Galeria
-
Krill Supermercados abre vagas para nova loja em Santos (SP) - SuperHiper -
Rede Krill Supermercados | É amanhã!!! A nova loja Rede Krill está ... -
Rede Krill Supermercados on Behance