Network Architecture

WARFRAME's network architecture consist of a mixture of centralized and distributed architectural design to facilitate a live-service game that involves gameplay sessions between multiple players in a cooperative fashion. Currently, players are not restricted to playing with others on the same platform (PC, PlayStation Network, Xbox, and Nintendo Switch), but there are still some limitations to cross-platform functionality (crossplay and cross save).
==Overview==
Centralized components of WARFRAME's network architecture include:
*In-game chat, based on IRC (different chat servers for different languages and regions)
*Player hubs such as Relays, Cetus, Fortuna, and Necralisk
*Conclave and Lunaro matches (PvP sessions hosted on player-hosted Dedicated Servers)
*Build servers for compiling WARFRAME's code and assets and running unit tests for continuous integration/delivery (nicknamed "Igor")
*Login servers for authenticating clients (PC, PlayStation Network, Microsoft, and Nintendo)
*VoIP service for in-game voice communication over the Internet
*Databases for storing player stats and inventory
*Star Chart's World State (i.e. global game state)
Note that centralized components may have distributed systems for redundancy or widespread availability (e.g. there may be multiple Conclave servers, each hosted by a different computer in different locations). Centralization in this case strictly refers to authority.
Distributed components of WARFRAME's network architecture include:
*Matchmaking (in missions, Clan Dojo, etc.)
*Replication (object, data, and computational)
*Content delivery networks (CDNs) for distributing WARFRAME's content and assets to clients
*Proxy servers to serve as intermediaries in facilitating network connections between hosts and clients in the event where player's routers are on Strict NAT or Double NAT
==Network Compression==
The game uses Oodle for data compression of packets sent over network.
==Encryption==
Packets sent to and from WARFRAME services will use OpenSSL.
==Ports==
By default, WARFRAME uses UDP ports 4950 and 4955 and TCP port range 6695-6699.
==Test Cluster==
A separate test server exists for testing content and features that are currently not available in the public global build of WARFRAME.
==Replication==
Replication is the process of maintaining a consistent state between the host and its clients. WARFRAME uses a state replication model where clients get their own individualized data packets from the host about the state of the current game session they are in.
Game state may include:
*Objects such as projectiles"Changes to weapon projectile logic. The motivation of this change is that we want weapons like grenades that explode to end up in the same spot on host and client (in sync) without having the traditional delay of a replicated projectile" - "Fixed Corpus Mine Osprey mines and other replicated projectiles affecting across Limbo’s Rift on Clients." - or item pickups"Fixed Scintillant sound not being replicated for Clients, resulting in Clients not seeing Scintillant and thus inability to obtain it." - 
*Current reward pool
*Enemy/NPC locations and activity
*Player's avatars"Fixed a crash that could occur if a non-replicated avatar (ie. Mirage Clone) was affected by a friendly buff." - 
*Player's avatar animations and special effects"Fixed Ivara’s Navigator cast animation not being replicated between Host/Client, resulting in no sound or movement." - "Fixed Host Revive FX being replicated for Clients." - 
==Patch History==
==References==
==Further Reading==
*Network architecture on Wikipedia
*OSI model on Wikipedia
==See Also==
*Host Migration
*Matchmaking
Category:Development
Category:Real-World References