Ahh… yes we have all sorts of tools that you can customize to see what all is happening.
The majority of all messages are sent using reliable sequenced network delivery, which means when you send a message it should be delivered (to the destination clients and/or server) in the time relative order it was sent. Now, if you are interested in knowing whether a specific client has received a particular message there are a few options:
The Network Profiler allows you to create customized profile stats for your message types to “profile your message send/receive rates”.
The Runtime Network Stats Monitor allows you to create customized real-time/runtime graphs and counters for specific message types (or really any form of metrics you come up with based on messages sent or received).
The Network Scene Visualization is relatively new (only in the 2.0.0 pre-release), but it is worth taking it for a spin to see how we are evolving the netcode based tools to provide you with in-scene visual feedback for both troubleshooting and optimizing your product.
Of course, you can take this small helper class (attached NetworkManagerHelper) I use quite often (and modify based on what I am doing) when I just want to rapidly prototype something and want to be able to quickly iterate without having to put together a UI for starting a host or client (you can add an additional button to start as a server pretty easily) and be able to log output to the render view in a runtime (i.e. NetworkManagerHelper.Instance.LogMessage that also allows you to set the duration a message stays visible).
Additionally, there is the Multiplayer Play Mode tool that allows you to quickly create multiple sessions (virtual players) without having to create a stand alone build. Which you can always just log output to the console.
Finally, you can use the NGO NetworkLog class to have clients log messages that are sent to the local console output and if you use the server version of the log method the client will log information to the local console and send that same message to the host-server that will log that information to its console. The nice thing about NetworkLog (server based) messages is when it logs messages on the server-host side it includes the client identifier that sent the message.
As an example:
NetworkLog.LogInfoServer will log a normal message locally and then a normal message on the server-host of the current session. You can invoke server extended logging methods on a server or host as well, but it doesn’t send any messages…since it is being invoked on the server or host.
Let me know if any of these options are what you were looking for?
9516925–1341793–NetworkManagerHelper.zip (1.2 KB)