• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

Push 함수

20.10.01 19:38 작성 조회수 178

0

안녕하세요 항상 좋은강의 감사합니다.

Push 함수에서 Flush를 제거하시면서 해당 방식은 반응속도에 손해를 본다고 해주셨는데, 그럼 이때의 장점은 코드의 이해를 쉽게 한다는 것말고는 장점이 없는지 궁금합니다

만약 그렇다면 반응속도 향상을 위해 이전 코드를 사용하고자 합니다~!

답변 2

·

답변을 작성해보세요.

2

네트워크 쪽 질문인줄 알고 답변 드렸는데
우연히 다시 보니 Job 관련 질문이었네요!
강의가 많아지니 정신이 없군요 ㅎㅎ

Job을 기준으로 다시 정정을 드리자면,
어느 정도 비슷하긴 한데
서버의 정책에 따라 살짝 달라집니다.

서버 쪽에서도 클라처럼 프레임의 개념을 두고
일정 시간 (ex. 100ms)마다 한 번씩
연산이 실행되게 하는 경우도 있는데,
그럴 경우라면 바로 Flush하지 않고 주기적으로
외부에서 일감을 실행하게 관리하는 것이 편합니다.

그게 아니라 굳이 고정 틱을 두지 않고
정말 일감이 들어오자마자 실시간으로 처리해도 된다면,
원래 방식처럼 Push하자마자 Flush도 이어서 실행하는 쪽이 연산 자체는 빠르게 처리 되겠죠.

제가 일했던 큰 MMO 프로젝트는 2개가 있는데
각기 전자/후자 방법을 사용했었습니다.

1

장단점이 있습니다.

반응 속도에 손해를 보는게 큰 문제 같지만
FPS게임과 다르게 MMO에서는 반응속도 못지 않게 처리 효율도 중요합니다.
(특히, 많은 유저가 같은 지역에 모일 경우)

따라서 패킷이 어느 정도 쌓이길 기다려서
한 번에 뭉쳐서 보내는 경우가 많은데,
이런 [패킷 모아 보내기]를 구현한다면 Push하자마자 보내기 보다는
다른 누군가가 체크해서 일정시간 경과하거나
일정 패킷량이 쌓이면 보내는 방식도 나쁘지 않습니다.