inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

JobTimer

Push 함수

해결된 질문

293

sounds good

작성한 질문수 13

0

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

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

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

C# unity

답변 2

2

Rookiss

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

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

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

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

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

1

Rookiss

장단점이 있습니다.

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

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

MessagePack

0

85

1

본인 플레이어 이동 관련 질문

0

49

1

Part7 Part9 질문이 있습니다.

0

72

1

.

0

116

1

.

0

105

2

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

92

1

타일 팔레트 깔았는데도 안돼요

0

116

2

2D로 그냥 만들어도 되나요?

0

81

2

지난 강의와 이어지는게 맞을까요?

0

80

2

순환참조 문제로 인해 발생하는 문제는 없을까요?

0

162

2

유니티 클라와 C++서버연동

0

277

2

멀티플레이 테스트 환경 관련 질문입니다

0

207

3

강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!

0

150

2

코드 관련한 몇 가지 질문입니다!

0

153

2

3d 프로젝트 이동 동기화 관련

0

321

4

파트 7 스트레스 테스트 질문 드립니다.

1

189

2

맵 이동 방식

0

133

0

맵 이동 관련해서 질문드립니다.

0

91

1

안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,

0

201

2

안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!

0

160

1

[팁] 2024년 기준 버전 이슈?

0

455

1

SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?

1

203

1

지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것

0

336

2

PushAfter 사용 질문

0

192

1