마영전 프레임 개선 및 파티 최적화 팁

http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=29926

 

 

제가 쓴 이 글 이후로 틱레이트에 대해 다른 분이 설명하신 글이 있더군요.

 

http://www.inven.co.kr/board/powerbbs.php?come_idx=2028&l=29973

 

그 분은 초당 얼마나 업데이트 되는지를 틱레이트라고 하셨더군요? 정확한 정의가 아닙니다. 틱레이트는 단위 시간 당 맵의 변화와 유저와 맵의 상호 작용에 대한 업데이트 빈도를 나타내는 수치입니다. 단, 이 개념은 프레임 레이트와는 조금 다릅니다. 프레임 레이트는 각 클라이언트에서의 PC에서 처리되는 단위 시간 당 프레임 수입니다. 

 

따라서 이 틱레이트가 높다면 게임 세션에 대한 변화에 대한 단위 시간 당 업데이트 횟수가 더 늘어나므로 그만큼 유저가 화면상에서 케릭터의 움직임이 더 부드럽고 정확하게 볼 수 있습니다. 하지만 호스트 쪽에서는 이 빈도수가 늘어나는 만큼 네트워크 연산량이 더 늘어나게 되므로 사양이 받혀주지 못하면 호스트 과부하, 호스트 쪽에서의 데이터 병목 및 그로 인한 핑의 불안정이 더 심화될 수 있습니다. 틱레이트가 무조건 높다고 핑이 불안정해지는 것이 아니라, 높은 틱레이트 서버 (소위 고성능 서버: High-performance server)에서는 게임 세션에 대한 데이터 처리가 호스트 쪽에서 지연 및 병목이 생김으로 인해 핑의 불안정이 생기는 것입니다.

 

반면에 틱레이트가 낮을 경우 게임 세션의 변화에 대한 단위 시간 당 업데이트 횟수는 더 낮아지므로 호스트 부담은 줄어들고 게임 세션에 대한 안정성은 개선되는 반면 클라이언트 쪽에서 플레이할 때는 케릭터의 움직임이 오히려 부드럽지 못하고 움직임이 틱틱거리며 부자연스럽고 순간이동 현상도 생길 수 있습니다.

 

따라서 적당한 틱레이트 수치를 주는 것이 좋습니다. 마영전처럼 소스엔진으로 만들어진 카스:소스에서는 일반 데스매치 및 오리지널 서버, 소규모 서버는 틱레이트를 66으로 주로 설정되어 있고 이 것이 카스:소스 서버의 디폴트 값입니다. 그리고 버니합 서버, 서프 서버, 좀비 서버, 64인 서버같은 경우는 틱레이트가 100~128인 경우가 많았습니다. 하지만 카스:소스가 오렌지박스 소스엔진으로 업데이트되고 그 이후 게임들은 소스엔진 2013으로 출시됨에 따라 강제로 벨브에서 만든 게임들은 틱레이트가 66 (15Hz)으로 고정되었습니다. 소스엔진 2007 (오렌지박스) 이후 서버 명령어에는 tickrate 명령어가 삭제되어 더이상 존재하지 않습니다. 최신 카스:소스에도 없고 심지어 카스:글옵에도 없습니다.

 

소스엔진을 사용하는 게임들은 대부분 서버의 틱레이트 디폴트 값이 66입니다. 하지만 알아두셔야 하는게 소스엔진을 사용했던 게임들은 기본 컨텐츠가 대부분 소규모 맵(더스트1, 더스트2 수준의 맵 규모)에 소규모 플레이어(최대 32명, 평균 24명)을 기준으로 틱레이트 디폴트 값을 잡은 것입니다. 

 

마영전은 일단 교전 시에 이펙트가 화려하고, 시즌2 같은 경우는 잡몹(BOT, BOT도 호스트에서 인공지능 엔진으로 조작하는 유저의 개념으로 볼 수 있습니다.)이 대규모로 나오고 맵이 넓다는 점을 감안하였을 때, 시즌1 일반 던전 호스트로만 할 경우는 틱레이트는 100 미만으로 주어도 되지만, 시즌1 시즌2 레이드, 시즌2 일반 던전을 플레이 할 경우에는 틱레이트는 100 이상 (100~200 사이의 값)으로 주어져야 조작감에 문제가 없습니다. 소스엔진에서는 틱레이트가 100 이상이면 대략 20Hz 이상의 높은 틱 업데이트가 가능해집니다.

 

마영전에서 틱레이트 바꾸는 것이 체감할만하는가? 마영전에서 틱레이트 제한이 안걸려있나? 직접 틱레이트를 조절해보시면 예민하신 분들은 특히나 매우 쉽게 느끼실 수 있습니다. 마영전은 소스엔진 2007 이전의 구형 엔진 기반 게임이고 아직까지 개발자가 별도로 틱레이트 락을 걸지 않았습니다.

 

소스엔진 이야기는 아니지만, 배틀필드4같은 경우 초기에 서버마다 이 틱레이트 수치가 낮아서 케릭터들이 순간 이동하고 앞으로 갔는데 다시 뒤에 있는 증상, 히트 박스 판정이 모호함으로 인해 유저의 화면에서는 피격 당하지 않은 것으로 보이는데 서버에서 피격 당하는 것으로 처리되는 문제, 케릭터 움직임이 매끄럽지 못한 문제 등이 많이 나타났습니다. 최근에는 서버의 틱레이트를 올려주는 업데이트를 진행해서 이 문제가 많이 해결되었습니다. 이를 소위 넷코드(NET-CODE) 문제라고 합니다.

 

소스엔진 2013 변형 엔진으로 제작되어 DX11과 64비트 지원, 소스엔진 게임 치고는 이례적으로 넓은 규모의 맵과 교전 시 화려한 이펙트를 보여주는 타이탄폴(Titanfall)에서도 이 넷코드 문제가 지적되었습니다.

 

결론은 틱레이트는 낮은 것이 좋은게 아니라 성능이 허락하는 범위 내에서 높게 잡는 것이 바람직합니다. 그 수치는 스스로 테스트해보면서 알아내는 것이 좋은 것입니다. 그 바로메터는 프레임이 극악으로 잘 안나오는 빵테움과 황혼의 사막 (특히 지하 던전 구간)이 될 것입니다.