격투게임 두가지 넷코드 방식에 대한 간단한 설명, Rollback Netcode, 롤백 넷코드 관련
=======================
=======================
=======================
* 게임 플레이 필요정보 모음 관련(기기,번역,시리즈,eSports,성능저하,렉,기타) [Essentials]
- https://godpsj.tistory.com/1175 //정보모음
* 시리즈화 게임 모음 관련
- https://godpsj.tistory.com/1529 //정보링크
* 무료 게임, Free Games, 무료 플레이 게임 관련
- https://godpsj.tistory.com/1978 //정보링크
=======================
=======================
=======================
출처: https://gall.dcinside.com/mgallery/board/view/?id=2d_fightgame&no=759065&page=1
http://ki.infil.net/w02-netcode.html
우선 이 글은 위의 사이트의 글에서 간략한 내용만을 추린 것이고
저 사이트에는 훨씬 자세한 내용과 설명이 있기 때문에
자세히 알고싶은 사람은 번역기를 써서라도 저기서 보는걸 추천함
설명을 시작하자면
양쪽 플레이어가 온라인으로 게임을 플레이할때는
로컬과 달리 서로 입력에 지연이 생기게 되고 이때문에 정상적인 게임이 불가능함
예를들어 서로의 핑이 90ms이라면 격투게임의 1초는 60프레임 1프레임은 약 16ms
핑은 신호가 갔다가 오는 시간이기 때문에 내가 상대방의 입력을 전달받는 시간은 그 절반
즉 45ms로 약 3프레임의 딜레이가 생기게 됨
넷코드가 없다면 이런식으로 2P가 5프레임에 약기본기를 눌렀지만
신호를 주는데 걸린 3프레임때문에 1P 화면에서는 8프레임째에 입력을 받아서 기본기가 나가고
1P와 2P는 점점 전혀 다른 화면에서 게임을 하게 되면서 게임을 하는 의미가 없어지게됨
넷코드는 이런 신호를 주고 받는데서 생기는 지연을 어떻게 처리하는가에 대한 부분임
딜레이 넷코드는 이 문제를 해결하기 위한 가장 심플하고 쉬운 방법인데
상대방의 입력이 오는 시간만큼 내 입력도 딜레이를 시키는것임
위의 짤을 보면 1P는 로컬이지만 3프레임에 받은 기본기입력을
지연시간인 3프레임동안 기다렸다가 6프레임부터 실행하게 됨
1P와 2P가 동시에 기본기를 눌렀다면 이런 결과가 나오게 되는데
2P쪽의 입력신호는 3프레임 늦게 도착했지만
1P쪽의 입력도 자체적으로 딜레이를 시켰기 때문에
1P와 2P가 각자 집에서 보는 화면은 서로 같게 됨
딜레이 넷코드 방식의 장점은 처음 말했듯이 만들기 쉽다는것
단점으로는 입력시 딜레이를 주기 때문에 오프라인과 같은 느낌을 절대 낼수 없음
그리고 핑이 실시간으로 변한다면 딜레이를 주는 시간도 같이 하면서
내가 지금 딜레이 기준으로 제대로 입력하더라도 딜레이가 변하면서 원하는 결과가 나오지 않게 될수도 있는 등
안정적인 플레이를 할수 없게 됨
롤백 넷코드가 작동하는 방식은 위의 짤이 잘 보여주는데
짤을 풀어서 설명하자면
1P와 2P는 1프레임에 동시에 기본기를 입력하지만 1P가 보기에 4프레임까지 2P는 아무것도 하지 않는것으로 보임
하지만 2P쪽의 입력은 3프레임 지연되어 4프레임에 1P쪽에 도달했고
짧은 시간동안 1P의 게임은 2P의 입력이 1프레임에 들어왔을때의 상황을 4프레임까지 시뮬레이션 해서 결과를 얻고
그리고 시뮬레이션의 결과를 지금 플레이하는 화면에 그대로 적용시킴
어느정도 서로 입력 지연이 있더라도
슬로우모션으로 봤을때 3프레임 롤백도 구분하기가 쉽지 않음
롤백 넷코드를 통해 얻는 장점은 플레이어들이 오프라인처럼 빠른 반응을 할수 있게되고
잘 적용된 롤백 넷코드는 마치 서로 딜레이가 전혀 없는것처럼 느낄 수 있음
단점은 만들기 어렵다는것
위에서 말했듯이 롤백 넷코드 방식에서 특이한 점 중 하나는
상대방의 입력이 어떤지 모르는 채로 일단 게임을 진행하고 그 뒤에 롤백으로 수정한다는 것인데
롤백을 할때 내가 보는 화면이 어색하지 않기 위해서는 상대방의 움직임을 '예측' 해야함
이 예측이 잘 실행될수록 롤백이 자연스럽거나 아예 롤백을 할 필요가 없을수도 있음
위의 짤을 보면 5프레임간 입력을 받지 못했지만 입력이 끊기기 전에 앞으로 걸어오는 정보를 바탕으로
앞으로 걸어올것을 예측하는데 성공해서 롤백 없이도 게임이 문제가 없게 되었음
반대로 예측에 실패하면 이런 장면이 나오기도 하는데
상대방 코디가 ex종크너클을 누적입력하는 데이터를 받고있던 1P가
신호를 받지 못한 순간에 버튼 누적을 예측하지 못하고 그대로 ex종크너클이 나간것으로 게임을 진행
실제로는 2P는 종크너클 대신 앞점프를 해서 게임이 롤백된것임
글 작성자는 이런식으로 예측을 잘 못하는게 스파5 넷코드가 구린 이유중 하나라고 함
그리고 스파5 유저들이 자주 겪었을 한쪽만 걸리는 순간이동 렉의 시뮬레이션인데
이건 1P와 2P쪽의 핑이 튀어서 생기는 문제가 아니라
롤백을 시뮬레이션하는 시간의 싱크가 맞지 않았을때 생기는 문제라고 함
이걸 해결하기 위해서는 게임을 1,2프레임 정도 멈췄다가 실행해야 한다는데
일단 스파는 아직 해결하지 못한 문제
여기서 스파5때문에 롤백 넷코드를 싫어하는 사람이 많은데
롤백 넷코드 자체는 오프라인과 비슷한 경험을 줄수있는 훌륭한 넷코드 방식임 스파5가 못만들었을뿐
괜히 요즘 격겜들이 다 롤백 넷코드로 갈아타려는게 아닌것
=======================
=======================
=======================
출처: https://arca.live/b/fightgame/56010468?mode=best&p=1
격겜 뉴비를 위한 '롤백' 설명
'롤백'이란 롤백 넷코드를 줄여서 부르는거임
넷코드 종류는 크게 '딜레이' 와 '롤백' 이 있음
가위바위보로 쉽게 설명하면
반응속도가 매우 느린 사람이랑 가위바위보를 한다고 할 때
'딜레이' 는 내 반응속도를 느린사람 기준으로 느리게 해서 동일한 시점에 손을 내밀게 만듬
'롤백' 은 예측을 통해서 양쪽 손을 내게 만들고 예측이 틀리면 손을 바꾸는 방식임
서로의 장단점이 있긴하지만 어느정도의 차이만 존재할때는 롤백 넷코드가 좀더 쾌적한 환경에서 플레이가 가능함
상대와 내가 지연속도가 일정한 환경일 때
'딜레이'는 수중전을 하는 느낌이고 '롤백'은 가끔 캐릭이 순간이동하는 현상이 생기는 정도
물론 핑이 튀는 와이파이나 vpn써서 구라핑인경우는 롤백 할아버지가 와도 소용없음
그러니 랜선을 꽂고 격투게임을 즐기도록 합시다.
=======================
=======================
=======================
*기타관련링크
=======================
=======================
=======================