입력(Input)
입력은 마우스나 키보드의 명령을 게임에 입력하는 기능입니다. 마우스나 키보드 조작의 통칭이라고 할 수 있겠습니다.
기존의 입력 시스템은 몇 가지 문제를 가지고 있었습니다.
- 강제 프레임 제한 (Upkeep FPS)

전체 부하 중 18% 를 차지하는 부분입니다
이것의 근원은 ‘게임의 발열이 심해서 다운된다’ 라는 것이 시초였습니다. 발열은 주로 CPU나 GPU에서 발생하는 것으로, 사실상 많은 게임들이 CPU와 GPU를 혹사하기 때문에 게임을 위한 하드웨어는 극한의 조건에서 구동되는 것이 일반적이었습니다. 하지만 발열에 의한 시스템 정지는 바람직하지 않은 현상입니다. 그래서 강제로 CPU에 Idle time (쉬는 시간) 을 넣어서 이 문제를 해결하려고 하였습니다.
이 방법은 입력쪽에서 긴 대기시간을 가지게 함으로써, 마우스나 키보드의 입력이 들어올 때까지 긴 시간 대기해 주는 기능이었습니다. 확실히 이렇게 하면 CPU는 대기시간동안 쉴 수 있겠지요. 그리고 이것이 매 초당 수 십번 일어나게 되었고, 이것은 CPU를 쉬게 해 주는 대신 게임을 강제적으로 느리게 해 주는 현상이 일어나고 클라이언트가 무겁게 느껴지게 되었습니다.
그래서 만들어진 것이 UpkeepFPS 개선기능.
즉 입력 체크가 필요 없거나 입력이 이미 들어온 상태 등. 입력을 굳이 기다리지 않아도 될 경우에는 재빨리 입력 대기를 포기하고 게임을 돌리게 만든 것입니다. 이렇게 하면 게임은 확실히 빨라집니다. 물론 CPU의 부하는 더 가게 되서, 발열을 걱정할 수도 있겠습니다마나 다행스럽게도 발열로 다운된 문제는 심각하지 않았습니다. (아마도 다른 개선이 CPU의 부하를 줄인 것도 한 요인이 될 수 있을 것입니다.
현재 적용 내역:
본섭까지 적용되었다가 아래의 2번 문제로 인해 원상태로 돌려질 예정입니다. 곧 다시 수정되어 테섭으로 나갈 예정입니다.이 기능으로 개선될 수 있는 사항:
이 기능을 적용하면 개선될 수 있는 사항은, 시스템 자원이 넉넉한 고사양에서 보다 빠른 처리를 할 수 있으리라는 것입니다.
저사양에서는 큰 기능의 개선이 일어날 수 있지는 않겠지만, 적어도 일정 이상의 고사양에서는 프레임 제한을 풀어버린 효과가 나오게 될 것입니다. 고사양 유저들은 게임의 반응속도가 빨라졌다고 생각하게 될 것입니다. 강제로 묶어놨던 추를 풀어줬달까요.이 기능으로 문제될 수 있는 사항:
- 현재 이 기능으로 유발될 수 있는 문제는 CPU가 부하걸리면서 발열이 증가하거나 하지 않을까 하는 것입니다. 그런데 다행히 아직까지는 문제 보고가 들어오지 않았습니다.
- 하나의 문제는 지금 보고되었습니다. 이 문제는 FPS 제한을 풀면서 FPS가 불규칙하게 됨에 따라, 게임 로직쪽과 동기가 맞지 않는 현상입니다. 증상은 불규칙적인 입력 렉 입니다. 게임 로직은 현재 프레임이 규칙적으로 될 것이라는 가정하에 만들어 진 것이기 때문에, 프레임이 불규칙해 지면 로직쪽과 충돌을 일으킵니다. 그래서 지금은 이 기능을 잠시 내려놓고, 로직쪽에는 규칙적인 데이터를 보내주고, 렌더링은 가변적으로 찍어주는 기능을 제작중입니다.
- 이 기능에 대해 체크할 사항:
기획팀 혹은 테스트 담당 분들께서는, 입력 부분에서 반응이 느리지는 않은지, 불규칙적으로 입력을 무시하지는 않는지,
과도한 발열로 컴퓨터가 뻗어 버리지는 않는지에 대한 보고를 부탁드립니다.