우주 전투 시뮬레이션에서 빛 정보 전파의 모델링 속도


29

나는 상대적으로 광대 한 지역 (약 20 광분의 공간 큐브)에서 일어나고 (주로) 현실적인 물리를 사용하는 우주 전투 시뮬레이션을 진행하고 있습니다. 내가 모델링하고 싶은 주요 요소 중 하나는 전장에서 정보의 전파 속도입니다. 즉, 플레이어 A가 전장 한쪽에서 메인 드라이브를 사용하면 플레이어 B가 그것을보고 20 분 전에 지연되고 그것에 반응 할 수있다

비교적 작은 전투 공간에서도 속도가 관련된 중요한 요소입니다. 30kps를 수행하는 500m 길이의 함선은 1/60 초 만에 전체 길이만큼 움직일 것입니다.

나는 이것을 전에 본 적이 없으며 이것을 모델링하는 모범 사례가 있는지 궁금합니다. 지금은 각 이벤트에 타임 스탬프를 찍고 위치를 표시하여 대기열에 넣은 다음 게임 세계의 개체가 라이트 콘 의 가장자리에 새로 추가되어 이벤트를 추가 하는지 확인하는 각 틱 그들의 센서 대기열에. 나는 그것을 감지 할 수있는 모든 객체에 의해 이미 감지 된 모든 이벤트를 제거하여 그것을 최적화 할 것입니다 (그러나 아직하지는 않았습니다). 그러나 여전히 이것이 귀찮은 것을 빨리 먹고 많이 먹을 것이라고 생각합니다 수백 개의 감지 물체가 작동하는 경우 (이것은 매우 일상적인) 사이클입니다.

내가 확인해야 할 이것에 더 적합한 데이터 모델이 있습니까?


7
대답은 Dunno이지만, 나는 얼마나 깔끔한 질문인지 말할 것입니다!
Tim Holt

우와! 게임은 주로 시각화에 관한 것입니다. 픽셀이 너무 클 때 상대방을 시각화하려면 어떻게 계획해야합니까? 간단한 HUD 지표? 텍스트 모드 어드벤처 게임? 깨달아주세요!
Jonas Byström

1
모델이 물리적으로 정확하다고 말합니다. 뉴턴 식인가 아니면 상대론 적인가? 그것은 그러한 규모에 큰 차이를 만들 수 있습니다.
MSalters

1
그것은 질문에 대한 답이 아니지만, 느린 속도의 빛 을 보면 몇 가지 아이디어를 줄 것입니다.
Michael Pankov

@ JonasByström-장거리보기는 꽤 복잡하며 정리하려고합니다. 기본적으로, 나는 가벼운 지연과 목표 컴퓨터의 목표 최대 델타 -v 추정치에 기초하여 목표가 미래에 어디에 있을지에 대한 확률 적 관점이되기를 희망합니다. 지금은 :)하지만, 그보다는 덜 끝내
존 Biesnecker

답변:


9

여기서 브레인 스토밍 ...

흥미롭게도이 경우 네트워크 지연이 당신의 친구입니다. 당신과 마찬가지로 적어도 일부 데이터 패킷에 대해서는 지연이 발생할 수 있습니다. 그러나 각 플레이어는 일반적으로 네트워크 속도만으로 영향을받는 모든 데이터 패킷에 대해 기본 지연 대신 광 속도 지연을 기반으로 각 플레이어에 각 이벤트에 대해 특정 지연을 적용해야합니다.

일반적으로 서버는 모든 클라이언트에 동시에 업데이트를 전송하지만 필요한 것은 서버가 각 이벤트에 대한 "광 지연"을 계산 한 다음 (뷰어 거리에 따라), 그 때까지 업데이트를 보내지 않는 것입니다. 시각.

따라서 모든 이벤트에 대해 이벤트와 각 플레이어 사이의 시간 지연을 계산 한 다음 지연 시간이 지날 때까지 해당 플레이어에 그리기 위해 해당 이벤트를 큐에 넣지 마십시오.

이벤트가 발생한 후 플레이어의 위치 또는 속도가 변경되는 효과는 다루지 않지만 플레이어 변경에 따라 대기중인 이벤트를 조정할 수 있습니다. 플레이어는 시간이 가까워 질수록 이벤트가 가까워지기 시작합니다. 플레이어는 제자리로 이동합니다.

도플러 이동은 시청자와 이벤트 간의 이동 델타를 기반으로 믹스에 던지는 흥미로운 일이 될 것입니다.


나는 이미 변화하는 위치와 속도를 모델로 삼았습니다. 규모에도 불구하고 게임의 오브젝트는 일반적으로 빛의 속도의 상당한 부분을 차지하지 않으므로 이벤트가 상대적으로 쉽게 추월하지만 수신기가 볼 수있는 영역에 있으면 각 진드기마다 확인이 있습니다. 좋은 클립에서 멀어 지거나 멀어 질 경우 몇 번의 틱으로 영향을 줄 수 있습니다. 그래도 도플러는 흥미로울 것입니다! 살펴볼 것이 있습니다. :-)
John Biesnecker

2
이 방법을 사용하면 패킷을 스캔하는 사람은 정보를 얻을 수 없습니다. 이브 온라인은 은폐 된 배와 비슷한 일을합니다. 어떤 지역에서 선박이 움직일 때 모든 고객에게 통보되지만, 은폐 된 선박이 움직일 때 고객에게 아무 것도 알려주지 않습니다. 그렇지 않으면 클라이언트가 우주선을 보여주지 않아도 패킷은 나타납니다.
Ray Britton

5

문제는 지연된 이미지가 실제로 재생되는 방법에 얼마나 정확해야합니까? 100 % 정확도를 찾으려면 각 진드기마다 맵에있는 모든 객체의 동작 또는 상태를 저장하고 말한대로 거리를 기준으로 지연하여 재생해야합니다. 게임에서 거의 필요하지 않은 정확한 정확도에 대해 신경 쓰지 않으면 간격을두고 상태를 저장하고 지연이 발생할 때 상태를 외삽 할 수 있습니다. 동일한 업데이트를 저장하지 않으면 최적화 할 수 있습니다.

또는 모든 움직임을 벡터화하고 범용 관측기에서 볼 수있는 시작 시간과 함께 각 객체의 경로를 저장할 수 있습니다. 그런 다음 저장 한 경로 노드를 기준으로 현지 시간을 기준으로 현지 시간 카운터를 기준으로 각 관찰자에 대한 객체의 예상 위치를 계산할 수 있습니다. 경로 노드의 타임 스탬프가 모든 관련 객체의 라이트 콘 뒤에 있으면 버립니다.

편집 : 위의 내용은 절대 관찰자를 통해 기본 상대성 이론을 부정한다고 가정합니다 (플레이어라고 가정). 이로 인해 시간 확장의 흥미로운 측면 중 일부를 빼앗을 수 있지만 모델링은 그 자체가 프로젝트 일 것입니다.> _>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.