Multi-Physics & Hybrid Composition (secondary_providers)
Rules for composing primary and secondary physics solvers inside one match room, plus forbidden redundant pairs.
Multi-Physics & Hybrid Composition
Complex multiplayer games frequently require character locomotion alongside projectile arcs or dynamic props. By declaring **`secondary_providers`** in your ECS schema, Playna routes binary commands by opcode (`0x61..0x66`) cleanly across compatible modules in the same room.
Supported Hybrid Matrix
| Primary (`simulation`) | Allowed `secondary_providers` | Recommended Capabilities & AOI | Typical Genres |
| **`kinematic_ecs`** | `ballistics`, `rigid_body`, `granular_particle` | `lag_compensation` / `rollback` + `aoi` | Battle Royale, Hero Shooters, Sandbox Brawlers |
| **`rigid_body`** | `ballistics`, `swept_ccd` | `rollback` | Tank Duels, Naval Combat, Physics Vehicles |
| **`turn_based`** | `swept_ccd`, `ballistics` | None (Strict Serialized) | Turn-Based Billiards, Golf, Artillery PvP |
Sample Hybrid Schema (FPS Move + Ballistic Shoot + AOI)
{
"name": "HybridFpsBallistics",
"publish": true,
"physics": {
"simulation": "kinematic_ecs",
"secondary_providers": ["ballistics"],
"capabilities": ["lag_compensation"],
"tick_rate_hz": 64,
"history_depth_ticks": 64,
"params": {
"max_speed_mps": 12.0,
"gravity_mps2": 9.81,
"aoi_radius_m": 120.0
}
}
}
Rejected Combinations
- **`swept_ccd` + `lag_compensation`:** Analytical trajectories resolve exact continuous collisions once per impulse (`incompatible_capability`).
- **`turn_based` + `rollback` / `lag_compensation`:** Turn-fenced commands require no speculative rewind.
- **`turn_based` + `granular_particle`:** Continuous cellular grid stepping conflicts with zero-CPU idle turn games.
Çoklu Fizik & Hibrit Kombinasyonlar (secondary_providers)
Çoklu Fizik & Hibrit Kombinasyonlar
Karmaşık oyunlar aynı anda hem oyuncu hareketini hem farklı fizik kurallarını gerektirir. Playna şema sözleşmesi **`secondary_providers`** dizisiyle aynı odada uyumlu birden fazla çözücüyü etkinleştirir ve gelen paketin opcode başlığına (`0x61..0x66`) göre ilgili modüle yönlendirir.
Uyumlu Hibrit Kombinasyonlar
| Birincil (`simulation`) | İkincil (`secondary_providers`) | Ek Yetenek & AOI | Tipik Oyun Örnekleri |
| **`kinematic_ecs`** | `ballistics`, `rigid_body`, `granular_particle` | `lag_compensation` / `rollback` + `aoi` | Battle Royale, Araçlı Hero Shooter, Yıkılabilir Arena |
| **`rigid_body`** | `ballistics`, `swept_ccd` | `rollback` | Tank Düellosu, Topçu Araç, Fizik Sporları |
| **`turn_based`** | `swept_ccd`, `ballistics` | Yok (Sıralı) | Sıra Tabanlı Bilardo, Golf, Worms PvP |
Örnek Hibrit Şema (FPS Move + Balistik Mermi + AOI)
{
"name": "HybridFpsBallistics",
"publish": true,
"physics": {
"simulation": "kinematic_ecs",
"secondary_providers": ["ballistics"],
"capabilities": ["lag_compensation"],
"tick_rate_hz": 64,
"history_depth_ticks": 64,
"params": {
"max_speed_mps": 12.0,
"gravity_mps2": 9.81,
"aoi_radius_m": 120.0
}
}
}
Reddedilen / Uyumsuz Çiftler
- **`swept_ccd` + `lag_compensation`:** Analitik sürekli yörünge zaten tek vuruşta kesin çözüldüğü için geriye dönük ray doğrulaması reddedilir (`incompatible_capability`).
- **`turn_based` + `rollback` / `lag_compensation`:** Sıra kilitli hamle akışında spekülatif geri sarma reddedilir.
- **`turn_based` + `granular_particle`:** 0 Hz bekleyen sıra oyunlarında sürekli 30 Hz hücresel grid akışı uyumsuzdur.