커뮤니티 카페에 답변을 한 내용 중 다뤄볼 만한 내용이 있어 가져왔다.
이전에 틱과 프레임 관계에 대한 포스트를 작성했었다 (http://jk1m.com/65).
그러한 관점을 가지게 된 배경을 설명하진 않아서 오해가 있을지도 모르겠다는 생각은 했었는데,
기회가 되어 그것에 대한 언급을 할 수 있었다.
틱과 프레임 관계 설명은 정확한 정의가 아닌 쉽게 이해하자는 목적의 말이라 곧이곧대로만 볼 것이 아니다.
예를 들어서 '64tick 서버는 64프레임만 처리하는 서버'라는 표현은
상대적으로 적은 프레임을 처리한다는 말이지 정확하게 64프레임 딱 떨어지게 처리한다는 말이 아니다.
(그런데 실제로는 얼추 64프레임대가 맞다..;;)
※ 실제로 글옵은 sv 프레임과 tick 수치를 일치 시키면서 구분을 없앴다. (이전 시리즈도 그런지는 모르겠다)
내꺼인듯 내꺼아닌 내꺼같은 너. 다른 개념인데 그냥 같은 개념으로 묶어버리게 된다.
Q. 틱과 핑의 차이점을 알려주세요.
A.
핑은 서버와 거리가 멀거나 자신의 네트웤 상태가 안좋거나 등등의 이유로 높아지게 됩니다.
정의는 컴퓨터가 올바르게 인터넷에 연결되었나 상태를 체크 작업을 말하고 처리 속도로 표시합니다.
높으면 높을 수록 체크하는데 (데이터 주고 받는데) 오래 걸린다는 말입니다.
높으면 대게' 렉 탄다'고들 하죠.
네트워크 렉은 보이는 것과 판정 사이에 딜레이가 늘어나게 되고 맞췄는데
반응이 한참 뒤에 오는 등의 문제가 생깁니다.
또 상대방 케릭터를 보는 시점이 훨씬 앞서 일어난 일을 출력 받다보니
상대를 보면 내 캐릭터는 누워있는 일이 생기기도 하고요.
(적을 보기 이전에 적 케릭터는 이미 등장해서 내 케릭터 눕힌 상황)
높은 것도 안좋지만, 핑이 자주 변하는 것도 안좋습니다. '핑 튄다'라고 말하는 게 이런 상황이고요.
차라리 유지되면 일정감으로 하면 되는데 튀면 답이 안나옵니다.
서버 틱은 틱레이트(tickrate)라고 해서
서버가 처리할 수 있는 데이터의 양을 나타낸다고 생각하시면 됩니다.
글옵은 기본적으로는 최소 64와 최고 128 tick 서버가 있는데,
이 사이에 어떤 tickrate로도 설정이 가능하긴합니다.
음... 처리할 수 있는 데이터의 양이라고 표현했는데,
뭐 다 아실 거 없고 처리하는 프레임이라고 보셔도 무방합니다.
뭐 정확한 표현이 아닙니다.
처리 속도, 움직임 등 데이터 양 등을 초당 처리(업데이트)하는 개념인데,
어차피 우리가 알 수 있고 드러나는 부분은
결국 모니터에 출력으로 나타나는 부분이기 때문에 그 개념으로 말한겁니다.
64는 거의 300fps/ 128은 600fps까지 처리한다고 생각하시면 됩니다.
둘다 어마어마하게 처리하는거라 의미가 없다 보일 수도 있지만,
서버가 담고 있는 정보/인원들 상태 등 많은 요소들로 인해 손실이 일어나기 때문에
높은 틱 서버가 보다 더 부드러운 출력을 얻을 수 있습니다 (더 많은 처리를 했기 때문에).
잔인한 말이지만, 출력 받는 유저가 고사양 시스템이 아니면 128tick에서 아무런 이득이 없습니다.
본인 모니터가 고작 초당 60장 처리하는데 서버가 처리하는 수준을 출력하고 체감할 수 있다고요?
거짓말이죠. (플라시보 제대로 느끼시는 분이시거나)
여기서 모니터 출력 개념이 끼어들면 tickrate는 출력하는 '프레임'이라고 표현해도 무방해진다는 겁니다.
128tick 서버를 커버할 수 있는 모니터는 재생빈도 120hz 이상이 되어야만 한다는 말이되지요.
그런 의미로 tick=fps(프레임) 으로 생각해도 상관은 없습니다.
그래서 고전부터서 tickrate/cmdrate/updaterate, 그리고 fps_max를 동일한 값 주는게
가장 이상적인 셋팅으로 여겨져 왔지요.
(말 그대로 이상입니다. 판타지. Lan파티에서나 써먹을 법한. 내것일 수 없기에. 남의 떡)
※ 원래 정의만 보면, 64tick으로도 120 프레임 이상 커버되는 걸로 보이지만
실제로는 sv 프레임대를 tickrate 수치와 동일하게 자동 조절된다.
이 탓에 64tick 서버는 64 프레임 이상을 처리할 수가 없다.
이는 꼼수에 해당되지만, 서버 부하를 생각하면 이해가 되는 부분이기도 하다.
틱이 높은게 무조건 좋은 건 아닙니다.
아무래도 서버가 처리하는 양이 많다는 건 서버에 부담을 준다는 것이기에
대규모 인원 수용하는 공섭이나 개인서버는 64tick으로 설정하는 게 실용적입니다.
서버 부담이 높아지면 역으로 성능 하락이 나타나고, 핑이 더 솟구치거든요.
생각해보세요. 600 프레임을 처리하려면 얼마나 많은 리소스를 쳐먹게 되는지. (cpu 터질지도)
반면 소규모 인원 (16인 이하) 수용이나 5v5 오리지널 팀매 서버는 128tick을 유지해주는 게 일반적입니다.
고급 사양의 유저도 아우러야 하니까요. 잘해보자고 장비 구입하신 분들인데.
아무리 64tick으로도 떡을 친다지만,
팀매칭 서버라고 하면 최고의 환경을 만들어놔야하는 의무라는 게 있습니다.
(뭐, 서로간의 합의가 있다면 64tick 서버 구동도 좋습니다. 사실 64tick으로도 떡을 칩니다. 두번 칩니다)
해외에서 64tick에 대해서 너무 비관적으로 과대해서 비난하는 애들이 많더라고요.
국내는 해외서 그러고 있으니 그런갑다하고 있고. 위에서 보듯이 300프레임대를 처리합니다.
최대 300은 출력 못한다고 해서 그게 저들이 말하는 것처럼 망할 정도는 결코 아닙니다.
(일단 100hz 이상 모니터에 고프레임 출력할 고사양 아닌 유저들은 징징거릴 자격도 없다는 말)
전혀 다른 두 개념이라 차이라고 갔다 댈 건덕지도 없어서 따로 정의만 설명했네요.
엄... 그리고 겟롸가 뭘 1로 셋팅한다는거죠? 이해가 안되네요.
tick은 위에서 말했듯 저런 수치이고 1은 안 나오고요.
핑이 1 유지하게 설정한다면 참 좋은 거죠.
본인 서버에서 최적화 이후 접속하거나 Lan 환경에서나 나올 수 있는 수치고요.
온라인 상황에서 rate 최적 작업으로 핑 낮추는 거에 대해서 전에 글 올린 게 있습니다.