PacketSession
320
작성한 질문수 8
혹시 PacketSession만들떄 프로토콜같은경우는
게임을 만들다보면 공격, 스킬, 이동, 퀘스트, 물약처리, 말고도 DB처리, AI서버가 있으면 AI관련된 프로토콜도 있을테고 기타 등등 엄청 많아질거 같은데 그러면 처리해야할 모든 프로토콜을
enum class로 처리해서 모든 각각의 서버와 클라가 공용으로 사용을 해야하는건가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 게임 개발 시, 다양한 기능과 상호작용이 필요하기 때문에 공격, 스킬, 이동, 퀘스트 처리와 같은 다양한 프로토콜이 발생합니다. tmvldjtm1018님이 언급한 대로, 게임 서버와 클라이언트 간의 통신 프로토콜을 정의할 때 enum class를 사용하는 것은 일반적인 접근 방식 중 하나입니다. 이러한 방식을 통해, 서버와 클라이언트가 이해할 수 있는 공통 코드 집합을 만들어 통신 과정에서 어떤 종류의 요청이나 응답이 이루어지는지 명확히 할 수 있습니다.
enum class 사용은 프로토콜 코드를 체계적으로 관리하게 해주며, 코드 내에서 프로토콜 타입을 명확하게 해주어 개발 과정에서의 혼란을 줄여줍니다. 또한, 유지 보수 과정에서 프로토콜을 추가하거나 변경하기가 더 용이합니다.
각각의 서버와 클라이언트가 공용으로 사용하는 것은 통신의 일관성을 유지하고, 상호 운용성을 보장하기 위해 중요합니다. 프로토콜이 증가함에 따라 이를 관리하는 것은 더 도전적일 수 있으나, 서버, 클라이언트, AI 서버 간의 명확한 데이터 교환 규칙과 프로토콜 정의를 통해 이를 해결할 수 있습니다.
따라서, 프로토콜을 enum class로 정의하여 사용하는 것은 게임 개발에서 흔히 채택되는 유효한 방법입니다. 이를 통하여, 개발 과정에서의 복잡성 관리와 프로토콜의 명확한 정의를 달성할 수 있습니다.
Memory Pool에서 오버플로우 질문입니다.
0
63
2
포토폴리오 및 진로 관련하여 고민입니다.
0
112
1
포토폴리오 관련 고민입니다.
0
62
1
실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.
0
82
2
성능 테스트 결과
0
103
2
게임 서버 Stateful, Stateless 진로 고민
0
121
1
WaitOnAddress와 Sleep의 차이 질문
0
83
1
궁금한거 있습니다.
0
82
2
JobTimer 구동 스레드
0
107
2
TryPop() 동작 관련 질문
0
81
1
로드맵 C#서버 C++서버 방향성 질문
0
148
2
스레드 id를 출력할떄 메인스레드 id도 출력되나요?
0
73
1
생명주기를 위한 의도적 복사
0
86
2
락프리의 실무에서 사용 질문
0
139
2
32bit threadID와 16비트 상위 WriteFlag에 대해
0
101
2
mutex와 sleep 차이점
0
117
1
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
0
152
2
Stomp Allocator의 Release함수에 대한 질문입니다.
0
96
1
공부법 관련해서
0
183
2
MakeShared 함수 관련
0
114
1
지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.
0
144
2
운영체제관련 질문입니다
0
131
1
send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.
0
117
2
메모리 풀 질문있습니다.
0
124
1





