카운터 스트라이크 온라인(이하 카스온라인)은, 2000년 벨브에서 출시한 Half-Life: Counter-Strike(속칭 CS1.6, 쩜육)을 기반으로 만들어져, CS 1.6의 엔진인 골드소스(GoldSrc)엔진을 기반으로 한 게임입니다.
이 엔진은 하프라이프에서 파생되어진 엔진으로, 엔진의 작동방식이 비슷합니다.
앞으로, 카스온라인의 엔진이 작동하는 방식에 대해 다뤄볼까 합니다.
많은 사람들(자칭 고인물)이 카스온라인은 콘솔에서 fps_max 100, fps_max 99.5등, 프레임 설정에 대해 말합니다. 하지만, 그 '고인물'들 중, '왜 프레임을 최댓값으로 높이면 좋은가?'에 대해 정확히 아는 사람은 손에 꼽을 정도로 드뭅니다.
'프레임이 높으면 화면이 자주 최신화되니 좋은것 아니야?' 라는 생각을 하시는 분들도 있으실 겁니다.
물론 그 이유도 있지만, 하프라이프 계열의 게임은 매 프레임마다, 물리엔진을 최신화합니다. 즉, fps(Frames per Second; 초당 프레임 수)가 100이라면, 1초에 100번의 연산을 합니다.
위 링크의 깃은 CS 1.6 엔진중 pm_shared.c 입니다. 이 코드는 카스 내에서의 물리적 작용 (걷거나, 점프, 물 속을 이동하거나 등등)에 대한 코드들 입니다.
이 중, PM_AirAccelerate 즉, 공중에서의 가속량을 결정짓는 코드를 보겠습니다.
이 코드들 중, frametime 이라는 변수가 가속에 영향을 미치는데, frametime은 한 프레임 당 할당된 시간을 의미합니다.
예를 들어, fps_max 100 이라면, frametime은 0.01 (1초/100프레임)이고, fps_max 60 이라면, frametime은 약 0.016 (1초/60프레임)입니다. 카스의 프레임은 단순히, 화면에 표시되는 화면의 수 이외에, 물리 법칙에도 영향을 준다. 라고 이해하시면 됩니다.