inflearn logo
강의

Course

Instructor

[C# and Unity MMORPG Game Development Series] Part 4: Game Server

Packet Generator #6

패킷 하나의 멤버변수만 바꾸고 싶어도 패킷 전체를 보내야하나요?

249

mun976965280

28 asked

0

예를 들어, 패킷 안에 들어있는 멤버변수 level만 1 증가시키고 싶습니다.

그러면 C_PlayerInfoReq 라는 큰 용량의 패킷을 하나를 보내야하나요? 아니면

send(int packId, int offset, int desired); 처럼

packid만 송신해서 level 주소에 접근하는 방법이 있을까요?

C# unity network

Answer 2

1

Rookiss

네 아주 자주 사용될 것 같은 패킷은 별도로 파야 합니다.
레벨만 바뀌는 경우는 드물고 레벨이 바뀌면 스탯도 바뀌니 조금 상황이 다르겠지만,
정말 '그' 부분만 바뀌고 또 자주 사용된다면 전용 패킷을 파주면 됩니다.
(그런데 실무에서도 이 부분은 늘 딜레마이긴 합니다)

0

mun976965280

감사합니다. 서버랑 클라 창 띄어놓고 디버깅하면서 공부중이에요. 재미있어요. 책보고 독학했으면 진작 포기했을 텐데 어렵지 않게 가르쳐준 루키스님께 너무너무 감사해요. 

0

mun976965280

송수신할 때 보내는 데이터의 최소 단위가 패킷이므로

새로운 패킷을 하나 만들어도 될거같아요.

C_PlayerInfoReq의 level만 변경하는 패킷인 C_PlayerLevelChange처럼요. 

패킷의 종류를 늘리면 할 수 있는 일은 많아지지만, 코드가 조잡해질 수도 있을거같아요 

TLS 질문드립니다.

0

35

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

39

2

Unity Span

0

66

2

XML, Dll 차이점

0

99

2

Session 질문입니다

0

74

1

Write Read 커서 키워드

0

69

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

65

2

네트워크 Send 전담 스레드 배치

0

94

2

UnhandledException 으로 서버 터지는 경우

0

82

2

컨텐츠 단, 엔진 단

0

100

1

질문 있습니다

0

73

2

C# 게임서버 3D MMORPG

0

141

2

유니티6 버전

0

94

2

receive하는 부분과 send하는 부분의 차이

0

128

2

커서의 위치의 중요성

0

99

2

C++ 전혀 모르는데 C# 서버

0

164

2

강의에 질문이 있습니다

0

83

2

멀티스레드 이해도 질문

0

90

1

500 vs 500

0

122

3

OnAcceptHandler 액션 함수

0

57

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

185

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

78

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

100

1

스핀락 질문.

0

104

2