Answers from the documentation; checking which model is on duty
Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
multiplayer - Skill - OpenSmartRoute
Skillv1.0.0
multiplayer
Multiplayer game development principles. Architecture, networking, synchronization.
Imported from sickn33/agentic-awesome-skills (skills/game-development/multiplayer/SKILL.md). Install upstream with npx skills add sickn33/agentic-awesome-skills --skill multiplayer. Copyright stays with the author.
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
Architecture
Latency
Cost
Security
Dedicated
Region and load dependent
Hosting dependent
Can enforce server authority
P2P
Topology dependent
Relay costs may apply
Peers require validation
Host-based
Host location dependent
Relay costs may apply
Host remains a trust boundary
2. Synchronization Principles
State vs Input
Approach
Sync What
Best For
State Sync
Game state
Simple, few objects
Input Sync
Player inputs
Action games
Hybrid
Both
Most games
Lag Compensation
Technique
Purpose
Prediction
Client predicts server
Interpolation
Smooth remote players
Reconciliation
Fix mispredictions
Lag compensation
Rewind for hit detection
3. Network Optimization
Bandwidth Reduction
Technique
Savings
Delta compression
Send only changes
Quantization
Reduce precision
Priority
Important data first
Area of interest
Only nearby entities
Update Rates
Type
Rate
Position
20-60 Hz
Health
On change
Inventory
On change
Chat
On 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
Cheat
Prevention
Speed hack
Server validates movement
Aimbot
Validate legal shots; this alone does not detect automated aiming
Item dupe
Server owns inventory
Wall hack
Don't send hidden data
5. Matchmaking
Considerations
Factor
Impact
Skill
Fair matches
Latency
Playable connection
Wait time
Player patience
Party size
Group play
6. Anti-Patterns
❌ 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.
When to Use
Use when selecting multiplayer authority, synchronizing state, testing latency compensation, or preventing inventory duplication.
Limitations
Use this skill only when the task clearly matches the scope described above.
Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Verification
Treat tables as design starting points, not guarantees. Prototype the selected mechanic, test accessibility and recovery paths, and measure frame timing, memory and behavior on target hardware before claiming completion. Store submission and licensing requirements must be checked against current official platform documentation.
Installed into a catalogue, chosen by a router
Install multiplayer and it becomes one more candidate the router can pick - when it fits.
A listing is a routing target with a manifest: what it does, which domains it covers, what it costs and who publishes it. Once installed it sits beside your own models and tools, is scored like any other candidate for each request, and shows up in the trace when it wins. Ratings come from workspaces that installed it, one per account.
When a provider is down or over quota the request moves on; the trace says it did.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
# after Install: the listing is in your workspace's routing pool - a plan picks it for its slotcurl-s-X POST https://osr-api.kindrock-caaab1a2.centralindia.azurecontainerapps.io/api/v1/route -H 'Authorization: Bearer $OSR_API_KEY' -H 'Content-Type: application/json' -d '{"text": "...", "plan": true}'
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.