인프런 커뮤니티 질문&답변

tmvldjtm1018님의 프로필 이미지
tmvldjtm1018

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

PacketSession

PacketSession

작성

·

208

0

혹시 PacketSession만들떄 프로토콜같은경우는

게임을 만들다보면 공격, 스킬, 이동, 퀘스트, 물약처리, 말고도 DB처리, AI서버가 있으면 AI관련된 프로토콜도 있을테고 기타 등등 엄청 많아질거 같은데 그러면 처리해야할 모든 프로토콜을
enum class로 처리해서 모든 각각의 서버와 클라가 공용으로 사용을 해야하는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 게임 개발 시, 다양한 기능과 상호작용이 필요하기 때문에 공격, 스킬, 이동, 퀘스트 처리와 같은 다양한 프로토콜이 발생합니다. tmvldjtm1018님이 언급한 대로, 게임 서버와 클라이언트 간의 통신 프로토콜을 정의할 때 enum class를 사용하는 것은 일반적인 접근 방식 중 하나입니다. 이러한 방식을 통해, 서버와 클라이언트가 이해할 수 있는 공통 코드 집합을 만들어 통신 과정에서 어떤 종류의 요청이나 응답이 이루어지는지 명확히 할 수 있습니다.

enum class 사용은 프로토콜 코드를 체계적으로 관리하게 해주며, 코드 내에서 프로토콜 타입을 명확하게 해주어 개발 과정에서의 혼란을 줄여줍니다. 또한, 유지 보수 과정에서 프로토콜을 추가하거나 변경하기가 더 용이합니다.

각각의 서버와 클라이언트가 공용으로 사용하는 것은 통신의 일관성을 유지하고, 상호 운용성을 보장하기 위해 중요합니다. 프로토콜이 증가함에 따라 이를 관리하는 것은 더 도전적일 수 있으나, 서버, 클라이언트, AI 서버 간의 명확한 데이터 교환 규칙과 프로토콜 정의를 통해 이를 해결할 수 있습니다.

따라서, 프로토콜을 enum class로 정의하여 사용하는 것은 게임 개발에서 흔히 채택되는 유효한 방법입니다. 이를 통하여, 개발 과정에서의 복잡성 관리와 프로토콜의 명확한 정의를 달성할 수 있습니다.

tmvldjtm1018님의 프로필 이미지
tmvldjtm1018

작성한 질문수

질문하기