diff --git a/docs/tutorials/testing/techniques_and_tricks_for_debugging_multiplayer_games.md b/docs/tutorials/testing/techniques_and_tricks_for_debugging_multiplayer_games.md index 273660d2..0c99ee15 100644 --- a/docs/tutorials/testing/techniques_and_tricks_for_debugging_multiplayer_games.md +++ b/docs/tutorials/testing/techniques_and_tricks_for_debugging_multiplayer_games.md @@ -12,13 +12,13 @@ Below is a list of practices and techniques that we use daily when working on th ## Debugging tricks for multiplayer games -### 1) Use ParrelSync clone-based workflow during development. +### Use ParrelSync clone-based workflow during development. [ParrelSync workflow](testing_locally.md#parrelsync) is faster than creating builds and it allows you to debug the separate editor instances via separate IDE debuggers. Use ParrelSync to run separate editor instances for your Host/Server and Client. -### 3) Use debug drawing techniques extensively. +### Use debug drawing techniques extensively. Unity engine has two debug rendering APIs that are very useful for the purposes of multiplayer game debugging: - [Debug.DrawRay](https://docs.unity3d.com/ScriptReference/Debug.DrawRay.html) @@ -73,12 +73,12 @@ public class UsingLineRendererForDebugging : MonoBehaviour } ``` -### 5) Use debug logging for situations where visual debugging is not appropriate. +### Use debug logging for situations where visual debugging is not appropriate. Text-based logging is valuable for tracking down non-visual events (such as RPCs) and information. It is a good idea to include network tick and client id in log messages so that it's easier to build a timeline when reading the logs. -### 6) Use the artificial network conditioning tools. +### Use the artificial network conditioning tools. The options that are currently available to us are covered in the related [article on artificial network conditioning tools](testing_with_artificial_conditions.md). @@ -86,7 +86,7 @@ Of particular interest to us is the application-level network conditioning provi Artificial network conditions allow the errors and oddities that are hidden by nigh-absence of lag when running your instances locally to show up, and it's a good thing! -### 7) Capturing screen recordings of the game instances. +### Capturing screen recordings of the game instances. First of all, it is very valuable to record both your Client and Server at the same time - it allows you to compare what is happening on either peer in realtime. @@ -96,4 +96,4 @@ In debug builds it's a great idea to show the Peer ID and the current frame numb Sometimes, despite us using good debug rendering and logging it's still hard to understand what's going on even when going through the frames one by one. Increasing our FixedTimeStep setting to a ridiculous value (something as high as `0.2`) helps to have more time to really see what’s going on. -The same applies to very high latencies (1000ms) - these stress the lag hiding techniques, allowing us to visualize what the different lag hiding techniques are doing. \ No newline at end of file +The same applies to very high latencies (1000ms) - these stress the lag hiding techniques, allowing us to visualize what the different lag hiding techniques are doing.