Need to add multiplayer play to your game? Net-Z is the best in-game networking engine available. Over the last 10 years, it has been successfully used in virtually all game genres and gaming platforms. Not only does Net-Z handle the chores associated with maintaining a coherent distributed game state, but it can also enable powerful features such as AI load balancing, late join and replays.

Toolbox picture

Universal Networking Toolbox

There are two types of successful peer-to-peer networking architectures: attribute propagation-based solutions and synchronized simulations. Net-Z contains the necessary tools to implement either of these. The Net-Z framework is powerful and allows easy access to several high-level features: objects can "migrate" from one station to another, allowing for load balancing of processing; objects can be fault-tolerant, even the session master (for easy host migration); data extrapolation can be made more realistic using continuity breaks and local corrections.

Attribute Propagation

If your game can tolerate a certain amount of deviation on data such as positions without negatively affecting the game experience, then you will be able to use the data distribution model. Net-Z will maintain the state of the simulation by re-creating the world state using object information that's being received from other stations. Techniques such as data extrapolation are used to reduce the bandwidth consumption to a minimum and that will allow for a high number of concurrent players. The game will need, however, to manage local inconsistencies as the object data is being sent at irregular intervals. That model is most effective with games that have a lot of continuous motion (racers, FPS games, flight sims, etc.)

Step-by-Step in Synchronized Simulations

Synchronized simulations are about maintaining the world state by replicating game inputs across all stations and executing them at exactly the same time. This technique introduces some input latency on the controller, and requires a deterministic game engine, and is targeted more towards 2 and 4-player games. However, it's quite effectively the easiest way to integrate multiplayer in a game (even split-screen on the same machine) and lends itself well to genres that have very high numbers of objects, complex animation or physics systems, or that can't tolerate any deviation between stations (fighters, sports titles, top-down shooters, etc.)

NAT Traversal

Nowadays, almost everyone is behind a firewall or a router. The ability to punch through them so that peer-to-peer network traffic effectively get to all stations is not trivial to implement. Normally, the lobby and matchmaking service will provide a list of participants to your game and it's up to the networking engine to deal with NAT traversal. If you need only a NAT-traversal solution and already have your own networking engine, then you can ask us about Net-Z for Connectivity. Otherwise, Net-Z handles everything you would expect a solid and proven networking middleware to provide.

Duplicated Objects vs Message Passing

Net-Z is not your traditional message passing interface. With Net-Z, Quazal introduced (and patented) a way to describe the attributes and methods of your network-aware C++ classes. This is being written in a DDL file (Data Definition Language) and Quazal's compiler will generate the necessary stubs for your game classes to be distributed across all stations participating in the game. Once you instantiate a class on a station, such objects will be duplicated on remote stations for every participant to have a coherent game state. Attributes are being synchronized automatically from the object master to its duplicas and you can invoke method calls on all objects, just as if they were local. Once you become proficient in working with duplicated objects, you will never want to go back to message passing interfaces to create multiplayer features.

Award Winning Tech

Quazal Net-Z has been twice-nominated for a Develop Award, and has been awarded the Game Developer Magazine Frontline Award.