눈팅하는 게임개발자 블로그

게임 프로토콜 본문

Project/Network Programming Term Project

게임 프로토콜

Palamore 2020. 11. 8. 17:04

해당 프로젝트는 자바 채팅 프로그램을 기반으로 이를 뜯어 고쳐서 만들기로 한다.

우선 기존 자바 채팅 프로그램의 프로토콜.

프로토콜 용도/내용 방향
"100" 채팅 서버 접속. 로그인 Client -> Server -> Clients
"200" 채팅 메시지 전송.
/sleep, /wakeup, /whisper 등의 기능
Client -> Server -> Clients
또는 Client -> Server
"300" 로그아웃. Client -> Server -> Clients
그 외 수신한 오브젝트를 Broadcast. Client -> Server -> Clients

 

위의 기본적인 채팅 프로토콜에 땅따먹기 게임의 프로토콜을 추가한다.

프로토콜 용도/내용 방향
"100" 게임 서버 로그인 Client -> Server -> Clients(N)
"101" 클라이언트ID 할당 Server -> Client
"102" 게임 준비 (Ready) Client -> Server -> Clients(N)
"103" 게임 시작 방송 Server -> Clients(4)
"200" 채팅 메시지 전송 Client -> Server
"201" 채팅 메시지 방송 Server -> Clients(N)
"300" 자신의 오브젝트 이동 정보 전송 Client -> Server
"301" 다른 유저의 오브젝트 이동 정보 방송 Server -> Clients(4)
"400" 칸 완성(특정 구역 정복) Client -> Server
"401" 해당 구역 정복 정보 방송 Server -> Clients(4)
"402" 부스터 사용(3초간 적용, 최대 3회) Client -> Server
"403" 부스터 사용 방송 Server -> Clients(4)
"404" 아이템 획득(수직, 수평 정복, 폭탄) Client -> Server
"405" 아이템 내용 방송 Server -> Clients(4)
"407" 랜덤 위치에 아이템 생성 방송 Server -> Clients(4)
"501" 시간 경과, 게임 종료 방송 Server -> Clients(4)
"600" 게임 서버 로그 아웃 Client -> Server -> Clients(N)
그 외 무시한다.  

 

 

클라이언트에서 송신하여 서버 측에서 수신하여 처리해야 하는 요청

프로토콜 용도/내용 방향
"100" 게임 서버 로그인 Client -> Server -> Clients(N)
"102" 게임 준비 (Ready) Client -> Server -> Clients(N)
"200" 채팅 메시지 전송 Client -> Server
"300" 자신의 오브젝트 이동 정보 전송 Client -> Server
"400" 칸 완성(특정 구역 정복) Client -> Server
"402" 부스터 사용(3초간 적용, 최대 3회) Client -> Server
"404" 아이템 획득(수직, 수평 정복, 폭탄) Client -> Server
"600" 게임 서버 로그 아웃 Client -> Server -> Clients(N)
그 외 무시한다.  

 

서버에서 송신하여 클라이언트에서 수신하여 처리해야 하는 요청

프로토콜 용도/내용 방향
"101" 클라이언트ID 할당 Server -> Client
"103" 게임 시작 방송 Server -> Clients(4)
"201" 채팅 메시지 방송 Server -> Clients(N)
"301" 다른 유저의 오브젝트 이동 정보 방송 Server -> Clients(4)
"401" 해당 구역 정복 정보 방송 Server -> Clients(4)
"403" 부스터 사용 방송 Server -> Clients(4)
"405" 아이템 내용 방송 Server -> Clients(4)
"407" 랜덤 위치에 아이템 생성 방송 Server -> Clients(4)
"501" 시간 경과, 게임 종료 방송 Server -> Clients(4)
그 외 무시한다.  

 

클라이언트 측에서 읽는 데이터 코드가 짝수일 경우 잘못된 프로토콜이므로 무시.

반대로 서버 측에서 읽는 데이터 코드가 홀수일 경우 잘못된 프로토콜이므로 무시할 수 있다.

'Project > Network Programming Term Project' 카테고리의 다른 글

배틀 땅따먹기 게임  (0) 2020.11.08
네트워크 땅따먹기 게임 개요  (0) 2020.11.08