ID:109479
 
Resolved
The Profile option has been extended to show network activity. Dream Seeker only shows this option if it is hosting the world.
Applies to:Dream Daemon & Dream Seeker
Status: Resolved (482)

This issue has been resolved.
BYOND games are getting more and more advanced. Pixel movement has never been more efficient than it is now and game sprites are much more fluid and detailed. Game designers are able to fine-tune their algorithms in order to take up as little CPU processing power as possible. This is mostly thanks to the nifty little Profile World feature which lets us see how much strain each individual proc is putting on a CPU.

Problems only seem to crop up when playing games over a network. Developers have little to no control over what data is sent between game clients and we have no solid way of monitoring this. What I would like is a feature similar to Profile World, only it monitors network traffic.

This is one major area of BYOND which is still somewhat of a big mystery. In the future it might be nice to have some control over what kind of data is sent, but for now it would be very helpful to at least have the tools necessary to optimize our games around the current systems in place.
Aren't there ways to monitor your network usage, without using BYOND?
Yeah, probably. Though, none of them would ever be as precise or helpful as an in-house diagnostic tool.
F0lak wrote:
Aren't there ways to monitor your network usage, without using BYOND?

The few I've tried have proved rather ineffective, especially when running multiple servers on the same machine. A profiler for bandwidth would also provide more detailed information. And having in-game access to such information could allow us to tweak things in various situations, same as we would if world.cpu became overloaded.
F0lak wrote:
Aren't there ways to monitor your network usage, without using BYOND?

The issue is you can profile the general bandwidth, but make no real headway on the probable cause of bandwidth problems. It's very trial and error to work out which language features are "chatty" and which are not.
Having built-in monitoring would give the developer some control. Even if we only get a simple count of the bytes sent to the client, the developer can easily measure how the count changes as game events happen. There would still be trial and error (to figure out what game feature is responsible for the byte count), but the developer can set up controlled environments. Tests should be repeatable. Using an external tool adds to the guesswork because you can't get byte counts at exact points in the server's execution, tests would be difficult to repeat.
I think I'm gonna need a new pair of underwear.