Estou trabalhando em um simulador de combate espacial que ocorre em áreas relativamente vastas (um cubo de espaço ~ 20 minutos leves para o lado) e usa (principalmente) física realista. Um dos elementos principais que quero modelar é a velocidade de propagação das informações no espaço de batalha - ou seja, se o Jogador A engajar sua unidade principal em um lado do espaço de batalha, haverá um atraso de 20 minutos antes que o Jogador B a veja e pode reagir a isso
Mesmo em espaços de batalha relativamente pequenos, esse é um fator importante, dadas as velocidades envolvidas. Um navio de 500m de comprimento a 30kps se desloca por toda a sua extensão em 1/60 de segundo, portanto, mesmo mirar um oponente a apenas alguns décimos de segundo de luz será afetado por um atraso de luz.
Eu nunca vi isso antes, e estou me perguntando se existem algumas práticas recomendadas para modelar isso. No momento, estou marcando timestamp cada evento e marcando-o com um local, colocando-o em uma fila e, em seguida, cada tick verificando se algum dos objetos no mundo do jogo está recentemente na borda do cone de luz e adicionando o evento para a fila de sensores. Eu irei (mas ainda não o otimizarei) removendo quaisquer eventos que já tenham sido detectados por todos os objetos que possam senti-lo, mas, ainda assim, acho que isso ficará complicado demais rapidamente e comerei muito de ciclos se houver centenas de objetos sensores em jogo (o que é bastante rotineiro).
Existem modelos de dados que seriam mais adequados para isso que eu deveria conferir?