RTS 네트워크와 같은 게임을 만들기 위해 게임을 완전히 결정 론적으로 만드는 많은 답변을 보았습니다. 그런 다음 사용자의 작업을 서로에게 전달하고 다음 프레임이 렌더링되기 전에 모든 사람의 입력을 "고정"하기 위해 표시되는 내용을 약간 지연시킵니다. 그러면 모든 플레이어의 시뮬레이션이 정확히 동일하기 때문에 유닛의 위치, 건강 등과 같은 것들이 네트워크를 통해 지속적으로 업데이트 될 필요가 없습니다. 나는 또한 재생을 위해 제안 된 것과 같은 것을 들었다.
그러나 부동 소수점 계산은 머신간에, 또는 동일한 머신에서 동일한 프로그램의 서로 다른 컴파일간에 결정적이지 않기 때문에 실제로 가능합니까? 이 사실 이 게임 전반에 파급되는 플레이어 (또는 리플레이) 사이에 작은 차이를 일으키는 것을 어떻게 방지 합니까?
일부 사람들은 부동 소수점 숫자를 모두 피하고 int
분수의 몫을 나타내는 데 사용한다고 제안 했지만 실제로는 들리지 않습니다. 전체 수학 라이브러리를 심각하게 다시 작성해야합니까?
내가 말할 수있는 한 C #에 주로 관심이 있습니다.이 점에서 C ++과 정확히 같은 문제가 있습니다.