.github/skills/game-development/multiplayer/SKILL.md
Multiplayer game development principles. Architecture, networking, synchronization.
npx skillsauth add abmbodj/riven-mobile multiplayerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Networking architecture and synchronization principles.
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
| Architecture | Latency | Cost | Security | |--------------|---------|------|----------| | Dedicated | Low | High | Strong | | P2P | Variable | Low | Weak | | Host-based | Medium | Low | Medium |
| Approach | Sync What | Best For | |----------|-----------|----------| | State Sync | Game state | Simple, few objects | | Input Sync | Player inputs | Action games | | Hybrid | Both | Most games |
| Technique | Purpose | |-----------|---------| | Prediction | Client predicts server | | Interpolation | Smooth remote players | | Reconciliation | Fix mispredictions | | Lag compensation | Rewind for hit detection |
| Technique | Savings | |-----------|---------| | Delta compression | Send only changes | | Quantization | Reduce precision | | Priority | Important data first | | Area of interest | Only nearby entities |
| Type | Rate | |------|------| | Position | 20-60 Hz | | Health | On change | | Inventory | On change | | Chat | On send |
Client: "I hit the enemy"
Server: Validate → did projectile actually hit?
→ was player in valid state?
→ was timing possible?
| Cheat | Prevention | |-------|------------| | Speed hack | Server validates movement | | Aimbot | Server validates sight line | | Item dupe | Server owns inventory | | Wall hack | Don't send hidden data |
| Factor | Impact | |--------|--------| | Skill | Fair matches | | Latency | Playable connection | | Wait time | Player patience | | Party size | Group play |
| ❌ Don't | ✅ Do | |----------|-------| | Trust the client | Server is authority | | Send everything | Send only necessary | | Ignore latency | Design for 100-200ms | | Sync exact positions | Interpolate/predict |
Remember: Never trust the client. The server is the source of truth.
development
Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state/action separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.
tools
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
tools
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
tools
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.