SlideShare a Scribd company logo
1 of 14
Download to read offline
일반적인 동기화
- 클라이언트의 이벤트를 서버에서 모두 모아 계산, 방송
일반적인 동기화
- 서버에서 먼저 진행
- 클라에서 서버를 쫓아감
- 클라이언트가 빠를수록 서버와 격차가 적음
- 서버 / 클라 시간차는 클라이언트에서 Dead Reckoning
Lockstep
- 공산주의 동기화
- 상대 peer 로부터 round의 메시지를 받아 각자 처리
Lockstep
- 클라이언트 한 곳에서 응답이 없으면 전부 다 기다림
Lockstep
- 이벤트에 순서가 매겨지게 되어 예외 발생을 미리 방지
- 실제 시간과 round의 시간 사이에 연관성이 없음
Fixed Time Bucket
- Lockstep은 서로 다른 클라이언트간의 네트워크 딜레이에 의해 정규적
시간으로 진행이 불가
- 클라이언트의 네트워크 딜레이를 측정하여 대략적인 지연 시간을 예측
- Round Trip Time을 이용
- 네트워크 딜레이 보다 쬬금 더 큰 값을 동기화 딜레이로 잡으면 대부분의 경우
- 네트워크 딜레이 < 동기화 딜레이일 것이다.
Fixed Time Bucket
Fixed Time Bucket
- 동기화 딜레이동안 쉬기 때문에 높은 프레임을 얻기 힘들다
Optimistic
- 낙관적으로 처리
- 먼저 시작한 이벤트가 딜레이가 있어 늦게 도착하면 발견하여 수정
- 오버워치 고무줄 현상
Time Warp Syncronization
- 모든 이벤트에 대해 게임의 스넵샷을 저장
-
Time Warp Syncronization
- 매 이벤트마다 스넵샷을 생성, 저장 필요
- 롤백 시점에 스넵샷 복사, 스넵샷 리스트 탐색, 변경 필요
- 롤백 이후 취소해야 할 anti - message가 있음.
- anti message가 또 다른 anti message를 만들 수 있음
- 주기별로 스넵샷을 생성하는 경우 정확한 시점의 스넵샷으로 되돌아 갈 수
없어 롤백이 더욱 힘듬
Optimastic Fixed Time Bucket
- 이벤트가 발생한 시간을 전송 딜레이를 감안하여 의도적으로 뒤늦게 설정하여
이벤트 간의 불일치가 일어나는 것을 방지
- 만약 이벤트가 늦게 도착한다면 해당 버킷 내에서 일어날 수 있는 이벤트를
예측
Trailing state Syncronization
- optimastic하고 다르게 롤백을 해야 하는 상황이면 게임의 snapshot에서
복사하는 것이 아니라
- 현재 시간보다 일정 딜레이가 있는 게임의 복사본에서 state를 복사
190507 synchronization

More Related Content

More from Hyeon-Woo Sa

190121 unfitness get set
190121 unfitness get set190121 unfitness get set
190121 unfitness get setHyeon-Woo Sa
 
190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)Hyeon-Woo Sa
 
Next 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it nowNext 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it nowHyeon-Woo Sa
 
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYaloNEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYaloHyeon-Woo Sa
 

More from Hyeon-Woo Sa (9)

190325 synchro
190325 synchro190325 synchro
190325 synchro
 
190421 coroutine
190421 coroutine190421 coroutine
190421 coroutine
 
190701 c# gram
190701 c# gram190701 c# gram
190701 c# gram
 
190121 unfitness get set
190121 unfitness get set190121 unfitness get set
190121 unfitness get set
 
190821 delphi
190821 delphi190821 delphi
190821 delphi
 
190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)190409 parallel patterns library (ppl)
190409 parallel patterns library (ppl)
 
190909 ambient
190909 ambient190909 ambient
190909 ambient
 
Next 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it nowNext 16 1학기_휴디프_게임_bump it now
Next 16 1학기_휴디프_게임_bump it now
 
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYaloNEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
NEXT INSTITUTE 실전프로젝트 Team Horde YaloYalo
 

190507 synchronization

  • 1. 일반적인 동기화 - 클라이언트의 이벤트를 서버에서 모두 모아 계산, 방송
  • 2. 일반적인 동기화 - 서버에서 먼저 진행 - 클라에서 서버를 쫓아감 - 클라이언트가 빠를수록 서버와 격차가 적음 - 서버 / 클라 시간차는 클라이언트에서 Dead Reckoning
  • 3. Lockstep - 공산주의 동기화 - 상대 peer 로부터 round의 메시지를 받아 각자 처리
  • 4. Lockstep - 클라이언트 한 곳에서 응답이 없으면 전부 다 기다림
  • 5. Lockstep - 이벤트에 순서가 매겨지게 되어 예외 발생을 미리 방지 - 실제 시간과 round의 시간 사이에 연관성이 없음
  • 6. Fixed Time Bucket - Lockstep은 서로 다른 클라이언트간의 네트워크 딜레이에 의해 정규적 시간으로 진행이 불가 - 클라이언트의 네트워크 딜레이를 측정하여 대략적인 지연 시간을 예측 - Round Trip Time을 이용 - 네트워크 딜레이 보다 쬬금 더 큰 값을 동기화 딜레이로 잡으면 대부분의 경우 - 네트워크 딜레이 < 동기화 딜레이일 것이다.
  • 8. Fixed Time Bucket - 동기화 딜레이동안 쉬기 때문에 높은 프레임을 얻기 힘들다
  • 9. Optimistic - 낙관적으로 처리 - 먼저 시작한 이벤트가 딜레이가 있어 늦게 도착하면 발견하여 수정 - 오버워치 고무줄 현상
  • 10. Time Warp Syncronization - 모든 이벤트에 대해 게임의 스넵샷을 저장 -
  • 11. Time Warp Syncronization - 매 이벤트마다 스넵샷을 생성, 저장 필요 - 롤백 시점에 스넵샷 복사, 스넵샷 리스트 탐색, 변경 필요 - 롤백 이후 취소해야 할 anti - message가 있음. - anti message가 또 다른 anti message를 만들 수 있음 - 주기별로 스넵샷을 생성하는 경우 정확한 시점의 스넵샷으로 되돌아 갈 수 없어 롤백이 더욱 힘듬
  • 12. Optimastic Fixed Time Bucket - 이벤트가 발생한 시간을 전송 딜레이를 감안하여 의도적으로 뒤늦게 설정하여 이벤트 간의 불일치가 일어나는 것을 방지 - 만약 이벤트가 늦게 도착한다면 해당 버킷 내에서 일어날 수 있는 이벤트를 예측
  • 13. Trailing state Syncronization - optimastic하고 다르게 롤백을 해야 하는 상황이면 게임의 snapshot에서 복사하는 것이 아니라 - 현재 시간보다 일정 딜레이가 있는 게임의 복사본에서 state를 복사