Descobrir seu gargalo
Algumas centenas de objetos em movimento não devem ser um problema. No entanto, algumas centenas de objetos em colisão podem estar. Vai levar alguns testes, mas acredito que o gargalo que você tem é a colisão.
A propósito, sobre quantos objetos estamos falando? Qual é a plataforma? Cem objetos para um jogo para celular não é o mesmo que cem para um jogo na web ou cem objetos para um jogo em desktop.
Teste o mesmo jogo, mas com colisões entre os objetos cortados desativados, e veja se o atraso ocorre em quantidades semelhantes de objetos. Se for esse o caso, significa que a grande quantidade de objetos é a causa do problema; caso contrário, as colisões são o problema.
Isso informará sua decisão sobre o que você fará para melhorar o desempenho. Nem todas as idéias abaixo serão aplicadas e você precisará testar de qualquer maneira.
Não falarei sobre otimizar uma grande quantidade de objetos longe do player, pois o problema parece surgir ao interagir com os objetos.
há um problema quando você faz com que eles se movam.
Se o problema ocorrer ao interagir com os objetos, não está claro como a remoção de objetos não visíveis o resolverá ... ainda, presumo que isso possa ajudar.
Vou apenas dizer que se objetos longe do jogador forem um problema, você pode começar com níveis menores ou dividir o jogo em partes que você pode carregar e descarregar dependendo de para onde o jogador está indo.
Fora dos limites
Acredito que, quando se trata de limpar os escombros, a primeira coisa a ser feita é remover objetos que estão fora dos limites. Por exemplo, a peça que caiu em um poço. Se não há como o jogador chegar lá para vê-lo, não há razão para mantê-lo por perto.
Eu voltarei a isso.
Torne-o mais realista (parte 1)
Quando você corta madeira com uma serra, machado ou ferramenta similar, haverá perda de material (serragem, aparas, etc.). Mesmo se você cortar com um laser, o laser queima um pouco de madeira. Além disso, para coisas que não são de madeira, geralmente haverá deformação ao redor do corte, desintegração etc.
O que estou dizendo é que o corte não é perfeito e que algum material será perdido. Você pode modelar isso no seu jogo. Aquele corte mágico vermelho tem espessura. Remova essa espessura dos objetos (adicione efeitos de partículas se você se sentir muito culpado).
Isso significa que você não poderá cortar nada que seja menor que essa espessura; na verdade, tentar fazer isso irá removê-lo do jogo. Isso é bom! Isso significa que há um limite superior para a quantidade de escombros que haverá, e há uma maneira mecanicamente sólida de limpá-lo no jogo.
Mudar de marcha para objetos pequenos
Isso funcionará melhor se o problema for colisão.
Uma vez que um objeto é muito pequeno, os detalhes dos diferentes ângulos que ele possui são menos relevantes. Você pode mudar para um mecânico de colisão menos preciso. Por exemplo, você pode usar coletores de círculo.
Você pode tratar objetos ainda menores sem colisão entre si; considere apenas a colisão entre eles e os objetos do agente (como o avatar do jogador ou os personagens controlados pela IA).
Finalmente, objetos muito pequenos podem se transformar em poeira (efeitos de partículas).
Torne-o mais realista (parte 2)
Isso funcionará melhor se o problema for colisão.
O material se deforma e quebra sob pressão. Se você acabar com objetos longos com muito pouca espessura, divida-os em objetos menores para que eles possam tirar proveito da solução acima.
Podemos fingir que tinha pouca espessura que se desintegra e quebra quando você o atinge.
Mesclar objetos
Isso funcionará melhor se o número de objetos for o problema.
Um truque comum que muitos jogos usam para lidar com grandes quantidades de quedas que podem prejudicar o desempenho é agrupar quedas.
Você pode tentar algo semelhante para objetos pequenos próximos um do outro. Faça com que eles se tornem um único objeto. No entanto, não pretendo juntar as peças. Eu pretendo criar um único objeto para lidar com a física deles; você ainda pode representar as peças individuais que compuseram o objeto, talvez usando técnicas semelhantes aos efeitos de partículas.
Torne-o mais realista (parte 3)
Você já ouviu falar do vento? Há vento no mundo real.
Use o vento para afastar pequenos objetos.
Eu sei que isso pode parecer contra-intuitivo, porque significa que pequenos objetos não descansam, pelo menos não imediatamente. Leia abaixo antes de fazer seu julgamento.
Você pode usar o vento para empurrar objetos pequenos antes - ou assim que - eles começam a se acumular. O que funcionará melhor se você estiver usando otimizações para objetos pequenos (como combiná-los ou remover colisões entre eles).
Além disso, se você puder usar o vento para empurrar os itens para fora dos limites ou de outro modo fora dos limites, poderá usar como desculpa para remover os itens. Eu te disse que voltaria a isso. Mesmo se não o fizer, pode servir como desculpa para remover pequenos objetos muito distantes do jogador, apenas finja que o vento os livrou enquanto o jogador não estava olhando.
Você pode remover alguns objetos enquanto o jogador não está olhando, você tem a minha bênção.
Além disso, agora você tem uma desculpa para adicionar vento, que pode ser adicionado como parte de outras mecânicas ou obstáculos do jogo. Você pode até adicionar à narrativa o espírito do vento que tenta manter as coisas limpas, se você é tão inclinado.
Nota : Você não precisa necessariamente acionar o vento quando houver entulho para limpar (embora isso funcione), provavelmente o vento pode ocorrer em intervalos aleatórios.
Castores!
Um castor irritante aparece e rouba sua madeira!
Agora você tem um tipo de inimigo!
Além disso, é claro, eles removem madeira enquanto você não estava olhando. Você pode até projetá-lo para voltar a ver um castor fugindo com um pedaço de madeira onde costumava ser uma pilha. Isso tornaria um momento memorável, explicará por que a madeira desapareceu e resolverá alguns dos problemas de desempenho que você enfrenta, de uma só vez.
São todas as compensações
Existem limitações da plataforma ou das ferramentas que você escolheu, mesmo o tempo e o orçamento que você precisa para desenvolver o jogo são uma limitação. Você não pode fazer uma simulação perfeita da realidade, ainda . Ninguém pode .
Todo desenvolvedor trabalha dentro das limitações que sua plataforma de destino e as ferramentas que eles tinham no momento lhes impunham, e os melhores jogos tinham que fazer trocas para tornar o jogo divertido e envolvente ... mesmo que isso signifique menos realismo, na verdade, muitas vezes são divertidos e envolventes porque não são realistas.
Deixe a criatividade vir dessas limitações.
No entanto, você também pode tornar seu jogo mais realista , escolhendo as partes da realidade que são convenientes para o seu desenvolvimento. Considere que, às vezes, remover objetos que estão longe do jogador é parte do custo de criar um jogo divertido.