Skip to content

DevRogues/Camp_WebsocketGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

웹소켓 게임 만들기

.
├── assets                     // 게임 데이터
│   ├── item.json
│   ├── item_unlock.json
│   └── stage.json
├── package-lock.json
├── package.json
├── yarn.json
├── public                     // 프론트엔드
├── readme.md
└── src                        // 서버 코드
    ├── app.js
    ├── constants.js
    ├── handlers               // 비즈니스 로직
    │   ├── game.handler.js
    │   ├── handlerMapping.js
    │   ├── helper.js
    │   ├── item.handler.js
    │   ├── regiser.handler.js
    │   └── stage.handler.js
    ├── init                   // 필수 데이터, 기능 로드 (load)
    │   ├── assets.js
    │   └── socket.js
    ├── models                 // 세션 모델 관리
    │   ├── item.model.js
    │   ├── stage.model.js
    │   └── user.model.js
    └── utils                 // 유틸
        └── redis             // Redis
            └── redis

패킷 구조 설계

  • 패킷 구조 (클라이언트 공통)
필드 명 타입 설명
handlerId int 요청을 처리할 서버 핸들러의 ID
userId int 요청을 보내는 유저의 ID
clientVersion string 현재 클라이언트 버전 ("1.0.0") (고정)
payload JSON 요청 내용

  • 게임 시작 payload (handlerId: 2)
필드 명 타입 설명
timestamp Date 게임 시작 요청 시 클라이언트 시간

  • 게임 종료 payload (handlerId: 3)
필드 명 타입 설명
score float 게임 오버 시 달성한 점수
timestamp Date 게임 오버 시 클라이언트 시간 (마지막 스테이지용)

  • 스테이지 이동 요청 payload (handlerId: 11)
필드 명 타입 설명
currentStage int 현재 스테이지 ID
targetStage int 이동하는 스테이지 ID
score int 현재 점수

  • 아이템 획득 payload (handlerId: 21)
필드 명 타입 설명
itemId int 획득하는 아이템 ID
currentStageId int 현재 스테이지 ID





  • 패킷 구조 (서버 공통)
필드 명 타입 설명
status string 성공 시 'success', 실패 시 'fail'
message string 성공 혹은 실패 원인에 대한 부연 설명

  • 소켓 첫 연결 패킷
필드 명 타입 설명
uuid string 유저의 uuid
highScore int 현재 등록된 최고 점수
assets array 스테이지,아이템,아이템 해금에 대한 게임 기준정보 데이터
  • Broadcast 패킷 (게임오버 시 최고 점수 달성)
필드 명 타입 설명
broadcast boolean broadcast 여부
status string success
message string boradcast 메세지
score float highScore 점수

검증

  • 스테이지 변경

    1. 클라이언트에서 전달 받은 현재 스테이지 정보와 다음 스테이지 정보를 기준정보 데이터와 비교하여 검증
    2. 스테이지 진입 시간과 스테이지 변경 시간을 기준으로 획득 점수 및 획득 아이템 점수까지 계산하여 유효한지 검증
  • 아이템 생성

    1. 아이템 기준정보와 비교하여 검증
    2. 아이템 해금 기준정보와 비교하여 검증
  • 아이템 획득

    1. 아이템 기준정보와 비교하여 검증
    2. 아이템 해금 기준정보와 비교하여 검증
  • 게임 오버

    1. 획득한 총 점수에 대해서 검증

About

Chrome Dino 게임을 Websocket을 이용한 커스텀 게임

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors