Pracuję nad symulacją walki kosmicznej, która rozgrywa się na stosunkowo dużych obszarach (sześcian przestrzeni ~ 20 minut świetlnych w bok) i wykorzystuje (głównie) realistyczną fizykę. Jednym z kluczowych elementów, który chcę wymodelować, jest prędkość rozprzestrzeniania się informacji w przestrzeni bitwy - to znaczy, jeśli gracz A włączy swój główny napęd po jednej stronie przestrzeni bitwy, gracz B zobaczy 20 minut opóźnienia i może na to zareagować
Nawet w przypadku stosunkowo niewielkich przestrzeni bojowych jest to ważny czynnik, biorąc pod uwagę zaangażowane prędkości. Statek o długości 500 m, pracujący z prędkością 30 kps, przemieści się na całej swojej długości w 1/60 sekundy, więc nawet celowanie w przeciwnika w odległości zaledwie kilku dziesiątych sekundy świetlnej będzie miało wpływ na opóźnienie.
Nie widziałem tego wcześniej i zastanawiam się, czy istnieją najlepsze praktyki modelowania tego. W tej chwili oznaczam czasowo każde zdarzenie i zaznaczam je lokalizacją, umieszczam w kolejce, a następnie sprawdzam, czy którykolwiek z obiektów w świecie gry znajduje się na krawędzi lekkiego stożka i dodaje wydarzenie do kolejki czujników. Zoptymalizuję go (ale jeszcze tego nie zrobiłem), usuwając wszelkie zdarzenia, które zostały już wykryte przez wszystkie obiekty, które mogą to wyczuć, ale myślę, że to szybko stanie się niewygodne i zje dużo cykli, jeśli w grze są setki obiektów wykrywających (co jest dość rutynowe).
Czy istnieją modele danych, które lepiej by do tego pasowały, które powinienem sprawdzić?