This document is about: QUANTUM 2
SWITCH TO

This page is a work in progress and could be pending updates.

Which SDK to Choose


Banner image

Example Games: PUBG, Apex Legends, Fortnite

Battle Royale FPS/TPS games are highly competitive multiplayer games where a large number of players fight to be the last one standing on an ever-shrinking map.

Traditional Battle Royale games prioritize realistic weapon-based combat. However, there are many other games that use the same Battle Royale Game mode but focus on physics-base challenges that test player's agility and platforming skills. For these types of games check the Physics Brawler Section.

For Battle Royale FPS/TPS games, Photon Fusion in Server Mode is the right choice. Server mode allows for large scale competitive games and allow you to implement all the core features needed such as area of interest and lag compensation.

Terminology

Explain common terms specific to the genre here. E.g. lag compensation, rifting, rubber-banding etc. This makes sure people understand the term on a technical level and what implications it will have on their implementation / SDK decision.

Game Samples

Image 1

Fusion BR200

AAA and production-ready third-person battle royale shooter game sample for up to 200 players at 60 Hz network simulation rate. Contains a plethora of features common in BR games.

Image 1

Fusion Projectiles

Shows how to implement Guns, switching guns, hitscan & kinematic projectiles, first person controls and much more.

Relevant Material

Image 1

Tick Accurate Animation

Most competitive BR games use tick accurate animations to place hitboxes. Learn about the Fusion Animation Controller in the 6th Example of the Animations Technical Sample. For more casual games using static hitboxes on the character can be a viable alternative and will significantly increase server and client simulation performance.

Image 1

Dedicated Servers

BR Games run on dedicated servers. Learn more about how to run dedicated server in Fusion by checking out the Dedicated Server technical sample. You can also read more about how BR200 leverages Multiplay and Matchmaking from Unity here.

Image 2

Interest Management

Interest Management is crucial in BR games to reduce Bandwidth and CPU load. Start by reading the manual page about interest management. BR200 uses a cone-shaped interest area based on the Camera's frustum, you can learn more about this here.

Image 3

Advanced KCC

BR200 uses the Advanced KCC Addon for the character control of player characters. The Advanced KCC is network and performance optimized and allows for much greater player counts compared to the built-in Unity CharacterController.

Image 3

BR200 Documentation

Read through the BR200 documentation to learn about how many of the core concepts have been implemented into thesample.

Image 3

Performance

Performance is crucial for BR games since they need to be able to support large players counts with complex gameplay on a single server. Make sure to profile with your target player count during production. Theapproach that was used for BR200 is explained here.

Supplementary Advice

Start profiling early during development. Both server and client CPU budgets are very tight for BR games. Servers have to handle a huge amount of players on a large map on a heavy game simulation with 3d collisions and animated hitboxes. While clients only have to run the simulation for their own characterand some surrounding objects, they have a large map to render and need to fully run game systems such as animation during rollbacks which is very expensive.


Banner image

There are two common ways for creating MOBA games:

  • Deterministic Input Sync (Quantum)
  • State Sync with a dedicated server (Fusion Server Mode)

Here is what to focus on when choosing between Quantum and Fusion for a MOBA Game:

  1. Cost: Quantum is much cheaper to run. Hosting dedicated servers is very expensive. (Cloud providers charge much and building your own orchestration is very hard)
  2. Operations: Dedicated game servers do not only take precious development time away to develop orchestration or to integrate third party cloud providers, they also complicate LiveOps for your game once released and are much harder to scale than Quantum games which automatically scale to any number of users on the Photon Cloud.
  3. Performance: Quantum provides better performance especially when prediction is involved. Especially on mobile clients.
  4. Fog of War: Since Quantum runs the full deterministic gameplay simulation on every client, it is impossible to hide information from cheaters. While information can be visibly hidden, a cheater can access the game's memory and extract it from it. Because of that effects like fog of war can be circumvented. While this is a potential problem, for most games this is not a good enough reason to switch to dedicated servers. It's more important on PC where cheating is much more common and easier than on console and mobile. Note that there are many games that use determinism and fog of war even in competitive settings such as Heroes of the Storm.

While some of the largest MOBAs like LOL and DOTA 2 use dedicated servers, we recommend using Quantum for MOBA games in most cases. Quantum is overall the better solution, especially for Mobile. The reason why many MOBA games use state sync is due to a lack of access to a deterministic rollback engine.


Example Games: Pokemon Unite, Awesomenauts, HotS

Intro Paragraph

Terminology

Explain common terms specific to the genre here. E.g. lag compensation, rifting, rubber-banding etc. This makes sure people understand the term on a technical level and what implications it will have on their implementation / SDK decision.

Game Samples

Image 1

Rogue Moba

Demonstrates how Quantum can be used to create a cross-platform fast-paced team-based MOBA. Implements many core concepts present in MOBA games from champion selection to top-down movement, combat and minions.

Image 1

Twin Stick Shooter

Demonstrates how to create a top-down twin stick shooter game. It contains face-paced combat and advanced AI.

Relevant Material

Image 1

TODO

todo

Supplementary Advice

Careful when using NavMeshAgents. NavMeshAgents move in Update while Fusion gameplay code must run in FixedUpdateNetwork. Use agent.CalculatePath and agent.Move (or KCC movement) during FUN manually. Do not use SetDestination or SetPath.

Fusion
Back to top