게임 서버 프로그래밍 입문 (8) - 패킷 메이커
보통 온라인 게임에서는 패킷이 몇 개나 필요할까요?
게임에 따라 다르지만 보통 적게는 300 ~ 2,000개 정도 사용하는 거 같네요.
음…… 즉, 패킷 클래스를 300 ~ 몇천 개 +를 만들어야 하는데…… 이걸 어느 세월에 만들어야 할까요?
이런 단순 반복적인 비생산적인 코딩 작업은 컴퓨터에 대신해주면 좋겠죠?
그래야 단순 반복적인 작업에서 오는 에러를 막을 수 있을 겁니다.
패킷 클래스 cpp, h를 특정 규칙에 따라 만들어주는 프로그램을 짜보도록 합시다.
그리고 관리가 쉽도록 엑셀 파일을 사용해 봅시다.
패킷을 관리해야 하니 당연히 용도에 맞는 작명 법이 필요합니다. 저는 아래와 같은 규칙으로 작성하도록 하겠습니다.
1. C로 시작하는 건 (Client)클라이언트가 보내는 패킷입니다.
2. S로 시작하는 건 (Server)서버가 보내는 패킷입니다.
3. I로 시작하는 건 (Inter)서버들간 주고 받는 내부 패킷입니다.
4. 위의 단어 다음은 패킷의 속성을 기술합니다. REQ는 요청, ANS은 답변, NOTIFY는 전달 등의 의미 입니다.
5. 대문자로 작성하되, 단어 사이에는 스페이스 대신 _(스네이크)를 붙입니다.
6. #이 가장 먼저 나오면 그 행은 주석입니다.
위의 룰에 맞춰 아래와 같이 작성합니다. (시트 명 packetData)
이것만 해도 상관은 없으나, 클래스 구조를 하드코딩으로 소스에 넣으면 나중에 수정하기 힘들어지므로 일정 양식(포멧)을 만들어서 프로그램이 이 포멧을 기반으로 소스를 뽑도록 만들어 봅시다.
위 내용은 제가 집필한 "게임 서버 프로그래밍 입문" 책의 내용중 일부 부분에 대한 내용입니다.
전체 소스 코드와 책 구입에 대해서는 http://rosagigantea.tistory.com/589 에 링크 시켰습니다.