간단한 UDP 게임에는 무엇이 관련되어 있습니까?


17

나는 일주일 만에 UDP를 사용하여 간단한 테스트를 버리기 테스트로 작성하려고했습니다. 끔찍하게 갔다.

나는 그것을 일찍 버렸다. 내가 가진 주된 문제는 모든 플레이어 / 에니메 / 오브젝트의 게임 상태를 오래된 상태로 복원하고 플레이어가 플레이하고있는 시점 (즉, 점프하기 0.5 초 전)으로 게임을 빨리 전달하는 것이 었습니다. 플레이어가 점프를 그리워하게하십시오)

이 방법이 가장 쉬운 방법은 아닐까요? 나는 그것을 의심하지만 처음부터 잘못 설계하고 2 일째 날에 깨달았습니다. (그래서 너무 많이 배우지 않았거나 많은 시간을 낭비했습니다)

나 자신과 다른 사람들에게 간단한 UDP 게임에는 무엇이 포함되며 어떻게 작성합니까? 또는 예측 문제를 올바르게 해결하기 위해 복원하는 예측 문제를 어떻게 해결합니까?

이것을 CW bc로 표시하고 유용한 답변이 많이 있음을 알고 있습니다.

답변:


9

글렌 피들러 (Glenn Fiedler)는 이에 관한 훌륭한 기사 를 썼습니다 .


부동 소수점 결정 기사가 제 머리를 불었습니다. 동기화 상태가 너무 나쁘기 때문에 내가 읽고 싶은 것이기 때문에 완료되지 않았습니다. 부동 소수점 결정론은 많은 질문에 대답합니다.

그 기사의 아무도 그가 요구하는 무슨입니다 상태 동기화에 대한 깊이 갈
대니 Pflughoeft - BlueRaja

3

직접 롤링하는 것은 교육적 일 수 있지만 기존 구현을 활용하거나 적어도 시작부터 시작하면 더 많은 작업을 수행 할 수 있습니다.

나는 ENetRaknet을 모두 사용 했습니다 . 간단한 게임에서만 Enet을 사용했지만 필요한 작업을 수행했습니다. Enet은 Raknet보다 낮은 수준의 API를 사용합니다. Raknet은 더 큰 프로젝트에 사용되었습니다. Raknet은 매우 강력하지만 Raknet의 프레임 워크를 중심으로 게임을 구성하려고합니다.

이넷 :

  • 연결 관리
  • 시퀀싱
  • 채널
  • 신뢰할 수 있음
  • 조각화 및 재 조립
  • 집합
  • 적응성
  • 이식성
  • 자유

라크 넷 :

  • 객체 복제
  • 오토 패처
  • 안전한 연결
  • 강력한 통신 계층 (기본적으로 모든 Enets 기능은 하나의 항목으로 롤업 됨)
  • 원격 프로 시저 호출
  • 음성 커뮤니케이션
  • NAT 펀치 스루

ENet의 경우 +1, 나는 클라이언트를 위해 한동안 사용하고 있으며 좋아합니다.
Len Holgate

그는 상태 동기화에 대해 묻고있다-이 답변은 그것과 아무 관련이 없다
BlueRaja-Danny Pflughoeft

-1, BlueRaja와 같은 이유
Jonathan Dickinson


0

집에 가면 (내가 한 것처럼), 배우고 싶지도 않은 것들에 대해 많은 것을 배울 것입니다. NAT 통과처럼. caspin에 따르면, Enet은 빠져 있지만 대부분의 상황에서 작동하는 오픈 소스 STUN 코드를 항상 찾을 수 있습니다.

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