ID:92950
 
BYOND Version:464
Operating System:Windows 7 Home Basic 64-bit
Web Browser:Chrome 4.0.249.89
Applies to:Dream Seeker
Status: Unverified

Thus far we've been unable to verify or reproduce this bug. Or, it has been observed but it cannot be triggered with a reliable test case. You can help us out by editing your report or adding a comment with more information.
Descriptive Problem Summary: I'll try to explain this as best I can but I am lacking in terminology. Ok you know how in Dream Seeker if you press F1 it brings up Options & Messages then you go to Client, Command, then type ".configure delay 0" (or any other number) and it alters the network delay. Well here is what happens on my game in just the first few minutes of being logged in:

byond://65.31.44.255:6000...connected
Setting network delay to 0.
Setting network delay to 2.
Setting network delay to 3.
Setting network delay to 0.
Setting network delay to 1.
Setting network delay to 3.
Setting network delay to 0.
Setting network delay to 3.
Setting network delay to 4.
Setting network delay to 5.
Setting network delay to 6.
Setting network delay to 5.
Setting network delay to 4.
Setting network delay to 3.
Setting network delay to 4.

Every time it sets to 0 is from me manually setting it to 0. It doesn't stay on what I set it, literally 3 seconds later it just changes back to whatever the heck it wants to be on making the ability to change it pointless. And it changed that much in just a few minutes.

The game never reached more than 40% world.cpu the entire time, and averaged about 20%. And the host has a great connection and BEFORE byond 464 nobody ever had a problem playing on network delay 0 the entire time, including me. Before byond 464 I always played on delay 0 with no problem. Now, the only lag I get is the artificially created lag from network delay constantly changing to some undesirable number.

My game's hub is http://www.byond.com/games/nekosennin/1 it nearly always has 30+ players but world.cpu is 50% or less even with 80 players online.

Numbered Steps to Reproduce Problem:

Log into the game on the hub link I posted, and just look at the network delay's activity after 5 or so minutes. Try setting it to 0 a few times and watch as it nearly instantly resets itself to whatever it wants. It creates a very unpleasant "laggy" experience which did NOT exist before byond 464 (OR possibly 463). Ok I'll put it this way, in 462, there was no such problem. That's all I know.

Code Snippet (if applicable) to Reproduce Problem:


Expected Results: Byond 462's behavior was more desirable regarding this.

Actual Results: Already explained.

Does the problem occur:
Every time? Or how often? Constantly in 464 on my game Dragon Ball Epic Universe at least.
In other games? I don't know.
In other user accounts? Yes there are many others who have this problem since 464
On other computers? Yes.

When does the problem NOT occur? When using byond version 462 or previous.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

462, POSSIBLY 463 was free of this affect as well but I can't be sure of that since I skipped it

Workarounds:

There are none that I have found. It would be nice if network delay was more in the control of the game developer as well. We can already make a similar thing by raising tick_lag in proportion to world.cpu. I think that has a similar effect but I'm not the one who made byond.
One thing that has held back investigation into these issues is a lack of solid information. In particular it would help to know more about your connection, such as what kind of bandwidth usage you're seeing in 462 vs. 464.

I'm also curious what sort of features your game uses. Large pixel offsets and/or large icons could be a strong contributing factor to increased bandwidth and/or CPU usage. Ideally I'd like to take a look at the source to see what's going on under the hood.

One thing I can tell you for sure is that the network delay setting is going up because of actual lag, not because it merely wants to. Setting .configure delay 0 only works reliably in cases where delay has gone up because of some transient network issue and the server hasn't yet figured out that it can relax and send messages normally again.
I contacted the host by email to ask him to post any useful information about his bandwidth usage from 462 to 464, and any other stuff he knows about his connection, in the comment section.

My game is probably considered to have "heavy use" of large icons. Players can even upload custom icons up to 128x128.

There has been no change in world.cpu between byond 462 and 464. It hovers around 20-40% as always.

The only change noticeable to me and other players is the "network delay" changes in Options & Messages. It changes much more often than before, and seems to set itself higher for no reason known to us.

Well I don't think showing you my entire source would help because 98% of it will probably be irrelevant text, but I do use most the icon procs Scale(), Width(), and Height(), with 1 or 2 minor uses of Turn() and Blend() as well.

Should I temporarily remove uses of large icons in my source (Including uses of Scale()) and remove the ability for players to upload their own icons, and see if that makes a difference, then post the results here?

Should I change map_format from TOPDOWN_MAP (The setting it normally uses) to TILED_ICON_MAP?

I don't know if anything I've said is relevant but hopefully it is.
If your icon_size is a standard 32x32, icons up to 128x128 should pose no problem. Anything bigger than 4 tiles is more of a concern, as is any combination of pixel offsets and big icons exceeding 4 tiles. One thing I discovered when GOA had problems a while back was that some fairly bad projectile code was causing huge pixel offsets to appear.

Switching to TILED_ICON_MAP really shouldn't make any difference though.

The main thing I'm curious about is how much bandwidth is being used between the two versions.