본문으로 건너뛰기

게임 서버 개요

Connect Base 게임 서버는 실시간 멀티플레이어 게임 백엔드를 제공합니다. WebSocket과 WebTransport를 지원하여 낮은 지연시간의 게임 상태 동기화가 가능합니다.

주요 기능

  • 실시간 상태 동기화: 64 TPS(Ticks Per Second) 기본 지원
  • 룸 기반 아키텍처: 플레이어들을 룸 단위로 그룹화
  • 자동 재연결: 네트워크 끊김 시 자동 복구
  • 델타 압축: 변경된 상태만 전송하여 대역폭 절약
  • 오프라인 모드: 서버 없이 로컬 테스트 가능

아키텍처

클라이언트 A ─┐                    ┌─ 클라이언트 C
              │   ┌───────────┐   │
클라이언트 B ──┼──▶│  게임 룸   │◀──┼── 클라이언트 D
              │   │  (State)  │   │
              │   └───────────┘   │
              └─── WebSocket/WT ──┘

지원 전송 프로토콜

프로토콜설명레이턴시
WebSocket모든 브라우저 지원~50ms
WebTransport최신 브라우저 (Chrome 97+)~20ms

빠른 시작

typescript
import { GameRoom } from 'connectbase-client'

// 게임 클라이언트 생성
const game = new GameRoom({
  appId: 'YOUR_APP_ID',
  clientId: 'player_123',
  publicKey: 'cb_pk_...'
})

// 이벤트 핸들러 등록
game.on('onConnect', () => console.log('연결됨'))
game.on('onStateUpdate', (state) => console.log('상태:', state))
game.on('onPlayerJoined', (player) => console.log('입장:', player))

// 서버에 연결
await game.connect()

// 룸 생성 또는 참가
await game.joinRoom('room-id')

// 게임 액션 전송
game.sendAction({ type: 'move', data: { x: 10, y: 20 } })

SDK 설치

bash
npm install connectbase-client

또는 CDN:

html
<script src="https://objectstorage.ap-chuncheon-1.oraclecloud.com/n/axryec8zhjr9/b/connectbase-sdk/o/v1/connect-base.min.js"></script>