게임 서버 개요
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>