ID:117892
 
Not a bug
BYOND Version:489
Operating System:Windows 7 Home Premium 64-bit
Web Browser:Chrome 13.0.782.215
Applies to:Dream Seeker
Status: Not a bug

This is not a bug. It may be an incorrect use of syntax or a limitation in the software. For further discussion on the matter, please consult the BYOND forums.
Descriptive Problem Summary:
When running an isometric game with tick_lag set to 1/3 (giving the game a framerate of 30), whenever a player moves near an object with a large icon (bigger than world.icon_size -- as in, whenever a large icon is shown on the screen, there is severe drop on the game's framerate.

Numbered Steps to Reproduce Problem:
1) Add a large-icon object on an isometric map.
2) Run the game.
3) Move around an area where the object isn't visible. Benchmark the framerate.
4) Move around an area where the object is visible; notice the decrease in framerate.

Code Snippet (if applicable) to Reproduce Problem:


Expected Results:
No change in framerate whatsoever.

Actual Results:
Reduced framerate. In this case, the average decrease was of 7 frames (from 30 to 23; and with an older version of the project, from 24 to 17).

Does the problem occur:
Every time? Or how often? It occurs everytime a large icon is displayed, with no exceptions.
In other games? Yes. It has happened before in various different projects, and other users have confirmed the issue on their own projects as well.
In other user accounts? Yes. Including Guest accounts.
On other computers? Yes.

When does the problem NOT occur?
When there are no large icons present on the screen.

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.)
It seems all 4 of some previous versions that I downloaded, that support isometric mode, suffer from the issue as well.

Workarounds:
Using various small overlays instead of a single large icon.
This isn't a bug, just a place where we could use improvement. Big icons have to pull themselves ahead of their smaller counterparts on the same layer, and the algorithm we have for doing so is a bit limited.