내가 이해하는 한 대부분의 큰 게임은 고정 된 시간 간격을 사용하여 안정적인 시뮬레이션을합니다.
게임 서버 와 관련하여 어떤 "프레임 속도"가 적용됩니까? 아니면 다른 방법으로 말하면, 그들은 어떤 고정 된 시간 간격을 사용하는 경향이 있습니까?
많은 사람들이 "그들이 도망 갈 수있는 한 빨리"라고 말할 것입니다. 기존 MMORPG에 대한 직접적인 경험이 있다면 그 속도가 얼마나 빠른지 알고 싶습니다.
내가 이해하는 한 대부분의 큰 게임은 고정 된 시간 간격을 사용하여 안정적인 시뮬레이션을합니다.
게임 서버 와 관련하여 어떤 "프레임 속도"가 적용됩니까? 아니면 다른 방법으로 말하면, 그들은 어떤 고정 된 시간 간격을 사용하는 경향이 있습니까?
많은 사람들이 "그들이 도망 갈 수있는 한 빨리"라고 말할 것입니다. 기존 MMORPG에 대한 직접적인 경험이 있다면 그 속도가 얼마나 빠른지 알고 싶습니다.
답변:
Second Life는 Havok을 사용하여 서버 측에서 물리를 구현하고 업데이트를 초당 45 개로 잠급니다.
https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120
2005-2006 년 초의 이전 버전에서는 물리 업데이트가 서버가 허용하는 한도 내에서 많이 떠오를 수 있습니다. 스크립팅 된 객체가 거의없는 복잡하지 않은 영역은 초당 800 번 업데이트 할 수 있습니다. 효율성과 일관성을 개선하기 위해 나중에 45로 고정했습니다.
세컨드 라이프에서 프레임 속도는 각 클라이언트의 CPU 및 그래픽 성능에 따라 다릅니다. 세계 정확도는 네트워크 성능에 따라 다릅니다.
저는 MMO 용 서버를 포함하여 몇 개의 게임 서버에서 작업했습니다.
일반적으로 물리학은 전혀 없습니다. 물리가 필요한 몇 가지 상황 (주로 점핑)에서는 고객이 자신의 물리를 계산하도록 허용하고 너무 외설적 인 것을 거부합니다. 기타).
서버에는 일반적으로 '시간 단계'가 없습니다. 그들은 보통 "초당 프레임"으로 생각하지 않습니다. 대신, 우리는 누군가에게서 마지막으로들은 소식과 그 당시에했던 일을 알고있다가 잠시 후에 다시 듣게되면 우리는 현재하고있는 일에 대한 소식을 듣고 내부 상태를 일치하도록 업데이트합니다. . 서버 측의 모든 것을 엄격하게 시뮬레이션 할 필요는 없습니다. 우리는 고객이 우리에게 말한 것을 기록하고 고객이 말한 것이 우리에게 그럴듯 해 보이도록 몇 가지 점검을 할 수 있습니다.
perTick * ticksSinceLastUpdated
간단하고 효율적입니다.
주어진 다른 좋은 답변 외에도, 일부 물리학은 일반적으로 서버에 의해 구동되거나 서버에 대해 알지 못하고 네트워킹이나 서버에 오버 헤드를 추가하지 않고 세상을 더 부유하게 보이게하는 일반적인 트릭이라는 사실을 추가하고 싶습니다. 측면 처리.
예를 들어, 다른 물체와 상호 작용하는 바람이 불면 땅에서 걷어차거나 날아갈 수있는 잔해가있을 수 있습니다.
물리가 순전히 장식 적이며 어떤 식 으로든 움직임이나 게임 플레이에 영향을 미치지 않으면 클라이언트 측에서 완전히 일어날 수 있습니다.
다른 플레이어는 사물을 다르게 볼 수 있습니다 (예 :지면에서 깡통을 쏘아 날아가는 경우 다른 플레이어는 날아갈 수없는 것을 볼 수 있습니다). 그러나 경험이 중요하지 않은 경우가 많습니다. 모든 플레이어에게 동일하게 적용되며 클라이언트 측 물리 시뮬레이션을 통해 온라인 게임의 모양과 느낌을 향상시킬 수 있습니다.
단일 샤드와 최대 우주 전투에서 최대 수천 명의 플래터가있는 MMO 인 EVE Online은 "데스티니 (Destiny)"진드기라고하는 1Hz 진드기에서 물리학을 실행합니다.
http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/
"Bloodbath of B-R5RB"는 온라인 게임에서 지금까지 발생했던 가장 큰 플레이어 싸움입니다. 한번에 "에 기재된 https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).