눈팅하는 게임개발자 블로그
게임 프로토콜 본문
해당 프로젝트는 자바 채팅 프로그램을 기반으로 이를 뜯어 고쳐서 만들기로 한다.
우선 기존 자바 채팅 프로그램의 프로토콜.
프로토콜 | 용도/내용 | 방향 |
"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 |