1. 커넥션 연결
1-1. 게임 서버로 소켓 연결 요청
1-2. 커넥션 연결 성공 메시지 전송
{
"type": "game",
"subtype": "connection_established",
"mode": "online",
"message": "You are now connected!"
}
- 다른 유저를 기다리는 중입니다 (모달 - 빙글빙글)
2. 게임 초기 정보 전송
2-1. 클라이언트로 게임 초기 정보 전송
- 모든 유저 연결이 끝나면 게임 초기 정보 전송
- 매치 초기화 정보
{
"type": "game",
"subtype": "match_init_setting",
"mode": "online",
"message": "",
"match_id": 123,
"data": {
"battle_mode": 1,
"color": {
"paddle": "#FFFFFF",
"background": "#FFFFFF",
"ball": "#FFFFFF"
},
"ball": {
"status": "in",
"x": 0.0,
"y": 0.0,
"radius": 0.04
},
"paddle1": {
"x": -2.8,
"y": 0.0,
"width": 0.1,
"height": 0.5
},
"paddle2": {
"x": 2.8,
"y": 0.0,
"width": 0.1,
"height": 0.5
},
"nickname": {
"player1": "wonyang",
"player2": "jeongmin"
}
}
}
- todo: 현재 유저의 위치 정보 추가하기(좌, 우)
3. 게임(매치) 진행
3-1. 게임 서버로 매치 시작 요청 전송
{
"type": "game",
"subtype": "match_start",
"message": "go!",
"match_id": 123,
"data": {}
}
3-2. 클라이언트로 게임 매치 데이터 전송 (1초 당 60번)
- match_start를 매치 참여자 두명에게 다 받으면 전송 시작
{
"type": "game",
"subtype": "match_run"
"message": "",
**"match_id": 123,**
"data": {
"battle_mode": 1,
"ball": {
**"status": "in",**
"x": 0.0,
"y": 0.0,
},
"paddle1": {
"x": -2.8,
"y": 0.0,
},
"paddle2": {
"x": 2.8,
"y": 0.0,
},
"score": {
"player1": 0,
"player2": 0,
},
},
}
3-3. 게임 서버로 키 입력 정보 전송