multiplayer

Multiplayer game development principles. Architecture, networking, synchronization.

$ 安裝

git clone https://github.com/xenitV1/claude-code-maestro /tmp/claude-code-maestro && cp -r /tmp/claude-code-maestro/skills/game-development/multiplayer ~/.claude/skills/claude-code-maestro

// tip: Run this command in your terminal to install the skill


name: multiplayer description: Multiplayer game development principles. Architecture, networking, synchronization.

Multiplayer Game Development

Networking architecture and synchronization principles.


1. Architecture Selection

Decision Tree

What type of multiplayer?
│
├── Competitive / Real-time
│   └── Dedicated Server (authoritative)
│
├── Cooperative / Casual
│   └── Host-based (one player is server)
│
├── Turn-based
│   └── Client-server (simple)
│
└── Massive (MMO)
    └── Distributed servers

Comparison

ArchitectureLatencyCostSecurity
DedicatedLowHighStrong
P2PVariableLowWeak
Host-basedMediumLowMedium

2. Synchronization Principles

State vs Input

ApproachSync WhatBest For
State SyncGame stateSimple, few objects
Input SyncPlayer inputsAction games
HybridBothMost games

Lag Compensation

TechniquePurpose
PredictionClient predicts server
InterpolationSmooth remote players
ReconciliationFix mispredictions
Lag compensationRewind for hit detection

3. Network Optimization

Bandwidth Reduction

TechniqueSavings
Delta compressionSend only changes
QuantizationReduce precision
PriorityImportant data first
Area of interestOnly nearby entities

Update Rates

TypeRate
Position20-60 Hz
HealthOn change
InventoryOn change
ChatOn send

4. Security Principles

Server Authority

Client: "I hit the enemy"
Server: Validate → did projectile actually hit?
         → was player in valid state?
         → was timing possible?

Anti-Cheat

CheatPrevention
Speed hackServer validates movement
AimbotServer validates sight line
Item dupeServer owns inventory
Wall hackDon't send hidden data

5. Matchmaking

Considerations

FactorImpact
SkillFair matches
LatencyPlayable connection
Wait timePlayer patience
Party sizeGroup play

6. Anti-Patterns

❌ Don't✅ Do
Trust the clientServer is authority
Send everythingSend only necessary
Ignore latencyDesign for 100-200ms
Sync exact positionsInterpolate/predict

Remember: Never trust the client. The server is the source of truth.