structs, c-style unions, enums, flags, etc, can be defined directly from the DSL as well To define all data structures that go into that, the developer uses a custom DSL (domain specific language) that lets him concentrate on the game concepts instead of performance-oriented restrictions: // components define reusable game state data groups In Quantum, all gameplay data (game state) is kept either in the sparse-set ECS data structures (entities and components) or in our custom heap-allocator (dynamic collections and custom data), always as blittable memory-aligned C# structs. Quantum is designed to make your simulation code run as fast as possible, leaving most of the CPU budget for rendering updates.Īlthough the use of pointer-based C# is exposed (for performance), most of the complexity is hidden away from the developer by the clever use of a custom DSL and automatic code generation. The goal is to leave most of the CPU budget for view/rendering code (Unity), including here the re-simulations induced by input mispredictions, inherent to the predict/rollback approach: The key to Quantum's high performance is the use of pointer-based C# code combined with its sparse-set ECS memory model (all based memory aligned data-structs and a custom heap allocator - no garbage collection at runtime from simulation code). Starting from the assumption that all simulation code must be high-performance out of the box, Quantum internal systems are all designed with that in mind from the ground up. Custom Gameplay Code: developed by the customer as an isolated pure C# simulation (decoupled from Unity) using the Quantum ECS.īesides providing a framework for how to organize high-performance code, Quantum's API offers a great range of pre-built components (data) and systems (logic) that can be reused in any game such as deterministic 3D vector math, 2D and 3D physics engines, navmesh pathfinder, etc.Game Client Simulator: communicates with Quantum server, runs local simulation, performing all input prediction and rollbacks.Quantum Server Plugin: manages input timing and delivery between game clients, acts as clock synchronization source.Ĭan be extended to integrate with customer-hosted back-end systems (matchmaking, player services, etc.).These are the basic building blocks of a Quantum game: This prevents game clients with bad network from interfering with the experience of players on good networks. In Quantum, deterministic input exchange is managed via game-agnostic server logic. In Quantum, however, game clients are free to advance the simulation locally using input prediction, and an advanced rollback system takes care of restoring game state and re-simulating any mispredictions.īecause Quantum also relies on a game-agnostic authoritative server component (photon server plugin) to manage input latency and clock synchronization, clients never need to wait for the slowest one to rollback/confirm the simulation forward: In the past, this has used a lockstep approach, in which game clients would wait for the input from all other players before updating each tick/frame of the simulation. In deterministic systems, game clients only exchange player input with the simulation running locally on all clients. Rich Unity editor integration and tooling.Īll built on top of mature and industry-proven existing Photon products and infrastructure (photon realtime transport layer, photon server plugin to host server logic, etc.).Complete set of stateless deterministic libraries (math, 2D and 3D physics, navigation, etc.).Server-managed predict/rollback simulation core.Quantum implements a state-of-the-art tech stack composed of the following pieces: Gameplay code fully decoupled from presentation logic. Quantum also helps the developer to write clean code, fully decoupling simulation logic (Quantum ECS) from view/presentation (Unity), while also taking care of the network implementations specifics (internal predict/rollback + transport layer + game agnostic server logic): It is based on the predict/rollback approach which is ideal for latency-sensitive online games such as action RPGs, sports games, fighting games, FPS and more. Photon Quantum is a high-performance deterministic ECS (Entity Component System) framework for online multiplayer games made with Unity.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |