Protocol - BaekGeunYoung/agario_clone_backend GitHub Wiki
agario_clone
messages
object
- User
{
"username": String
"id": UUID
"position": {"x": Double, "y": Double}
"radius": Double
}
- Prey
{
"id": UUID
"position": {"x": Double, "y": Double}
"radius": Double
}
connection url
/?id=${id}&username={username}
username์ ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ๊ฐ, id๋ ํด๋ผ์ด์ธํธ๊ฐ UUID๋ก ์์ฑํ์ฌ ์๋ฒ๋ก ๋์ ธ์ค๋ค.
message type
incoming message (์๋ฒ๊ฐ ๋ฐ๋ ๋ฉ์ธ์ง)
- POSITION_CHANGED
- what : user id + current position
{
"type": "POSITION_CHANGED",
"body": {
"position": {"x": ?, "y": ?}
}
}
- MERGE (user๊ฐ user๋ฅผ ๋จน๋ ํ์)
- what : ๋จน๋ ์ฌ๋ id / ๋จนํ๋ ์ฌ๋ id
{
"type": "MERGE",
"body": {
"colony_id": ?
}
}
- EAT (user๊ฐ ๋ฐ๋ฅ์ ๊น๋ ค ์๋ ๋จน์ด๋ฅผ ๋จน๋ ํ์)
- what : ๋จน๋ ์ฌ๋ id / ๋จนํ๋ ๋จน์ด id
{
"type": "EAT",
"body": {
"prey_id": ?
}
}
outgoing message (์๋ฒ๊ฐ ๋ณด๋ด๋ ๋ฉ์ธ์ง)
- JOIN
- who : roo ์์ ๋ชจ๋ ์ ์
- when : ๋งจ ์ฒ์ room์ ์ ์ํ์ ๋
- what : ์๋ก ์์ฑ๋ User ๊ฐ์ฒด
{
"type": "JOIN",
"body": {
"new_user": User
}
}
- OBJECTS
- who : room ์์ ๋ชจ๋ ์ ์
- when : POSITION_CHANGED ๋ฉ์ธ์ง๊ฐ ๋ค์ด์์ ๋
- what : ๋ชจ๋ ์ ์ list + ๋ชจ๋ ๋จน์ด list
{
"type": "OBJECTS",
"body": {
"users": [user1, user2, user3, ...],
"preys": [prey1, prey2, prey3, ...]
}
}
- MERGED
- who : ๋ชจ๋ ์ ์
- when : ๋จน์์ ๋
- what : ๋จน๊ณ ๋์์ ์์น + ์์ ํฌ๊ธฐ
{
"type": "MERGED",
"body": {
"user_after_merge": User,
"colony_id": UUID
}
}
- WAS_MERGED
- who : ๋จนํ ์ ์
- when : ๋จนํ์ ๋
- what : empty
{
"type": "WAS_MERGED",
"body": {}
}
- EATED
- who : ๋ชจ๋ ์ ์
- when : ๋จน์์ ๋
- what : ๋จน๊ณ ๋์์ ์์น + ์์ ํฌ๊ธฐ
{
"type": "EATED",
"body": {
"user_after_eat": User,
"prey_id": UUID
}
}
- SEED
- who : room ์์ ๋ชจ๋ ์ ์
- when : room ์์ ๋จน์ด๊ฐ x๊ฐ ์ดํ๋ก ๋จ์ด์ก์ ๋
- what : ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋จน์ด List
{
"type": "SEED",
"body": {
"new_preys": [prey1, prey2, prey3, ...]
}
}