1.197.168 | REGRESSION | Fix programmable block sprite streaming for clients
In update 1.197.168, the attribute [DistanceRadius(32f)] was added to the OnUpdateSpriteCollection() event that is responsible for syncing sprites drawn by programmable blocks.
In less code speak: This means that if you take control of a grid and your screen is more than 32 meters from its center, you will not receive sprite updates. Yes.... 32 meters.
This is very easy to demonstrate: https://gfycat.com/playfuluniquedog
Note how when I hop out of the seat, everything works fine. This is because the game is using my player to check the distance to the screens. However, when I hop in a seat, sprites stop updating. This is because when you take control of the grid, the game uses the center of the grid, not your player, to check the distance to the screens. Clearly any large ship can have seats further than 32 meters from the center...
Please Keen, for the love of all that is sacred, find a better way to reduce network traffic. This implementation cripples the utility of in-game scripts, and is already being noticed by script users.
World is attached:
- Start the world in a Dedicated Server
- Join as a client
- Sit down in the seat and observe that the sprites stop updating. They no longer get synced.
- Get out of the seat. Observe that the sprites start updating again.
Image displaying the issue. I attached a debugger to the game, hosted a game and then placed a breakpoint where proximity to the screen is checked, then manually plotted the positions using GPS markers.
You can see that when I sit down, it is using the grid pivot (not the center as I initially posited) to test proximity. That is even worse because the grid pivot can be way outside the geometry of the grid itself.
Unseated:
Seated:
Seated zoomed (with grid pivot drawn):
Image displaying the issue. I attached a debugger to the game, hosted a game and then placed a breakpoint where proximity to the screen is checked, then manually plotted the positions using GPS markers.
You can see that when I sit down, it is using the grid pivot (not the center as I initially posited) to test proximity. That is even worse because the grid pivot can be way outside the geometry of the grid itself.
Unseated:
Seated:
Seated zoomed (with grid pivot drawn):
I can confirm this. This is the same bug i reportet two days ago. Thanks for the really good research whiplash.
Edit: Because of your research i found out, that the grid pivot of older grids and blueprints is messed up. In my research about this bug(Sprite Streaming) i noticed the problem only on older grids and blueprints, that were build before the update and i thought this was the problem. But with the debug options you see, that the pivot point isnt in the right place on old grids. Maybe you could take a look in the blueprints i posted to confirm this theory.
LCDs and other Displays with Scripts wont Update on DS | Space Engineers PC Support (keenswh.com)
I can confirm this. This is the same bug i reportet two days ago. Thanks for the really good research whiplash.
Edit: Because of your research i found out, that the grid pivot of older grids and blueprints is messed up. In my research about this bug(Sprite Streaming) i noticed the problem only on older grids and blueprints, that were build before the update and i thought this was the problem. But with the debug options you see, that the pivot point isnt in the right place on old grids. Maybe you could take a look in the blueprints i posted to confirm this theory.
LCDs and other Displays with Scripts wont Update on DS | Space Engineers PC Support (keenswh.com)
Just today, on our private dedicated server, I loaded in and welded up a small mining ship I made this week. It has custom LCD sprite drawing to the left and right LCDs in its cockpit. This is a small grid ship that is barely even the size of 2x3 large grid blocks (so 5x8meters?).
We are having all amounts of random pieces of the LCDs not draw. Sometimes they ALL draw (borders of status bars, the pips inside the borders, energy icon, text labels etc). Once, one LCD didnt draw anything but the ScriptBackgroundColor.
Loading the Creative single player save I built the ship in, the LCDs were perfect no issues. They updated every 10 ticks, they showed all elements. Even during a 15 minute round trip to the moon and back with a load of ice picked up from the moon.
So for me (today):
It wasn't about lcds being too far from the grids pivot point (its a tiny small grid ship!).
it wasn't about the lcds being on an old build or from an old blueprint (I actually built it all just this week from the ground up).
Single-player works fine, while dedicated server its complete wonky.
This topic is the closest report I've seen to describe what I get, so I don't know if its related, or completely unrelated. However something is seriously "fubar" with MySpriteDrawFrame frame.Add(MySprite) and dedicated servers.
Just today, on our private dedicated server, I loaded in and welded up a small mining ship I made this week. It has custom LCD sprite drawing to the left and right LCDs in its cockpit. This is a small grid ship that is barely even the size of 2x3 large grid blocks (so 5x8meters?).
We are having all amounts of random pieces of the LCDs not draw. Sometimes they ALL draw (borders of status bars, the pips inside the borders, energy icon, text labels etc). Once, one LCD didnt draw anything but the ScriptBackgroundColor.
Loading the Creative single player save I built the ship in, the LCDs were perfect no issues. They updated every 10 ticks, they showed all elements. Even during a 15 minute round trip to the moon and back with a load of ice picked up from the moon.
So for me (today):
It wasn't about lcds being too far from the grids pivot point (its a tiny small grid ship!).
it wasn't about the lcds being on an old build or from an old blueprint (I actually built it all just this week from the ground up).
Single-player works fine, while dedicated server its complete wonky.
This topic is the closest report I've seen to describe what I get, so I don't know if its related, or completely unrelated. However something is seriously "fubar" with MySpriteDrawFrame frame.Add(MySprite) and dedicated servers.
Most of multicrew ships on PvP servers now are just about unusable state beacause 80% of utility scripts are not being displayed correctly. Some players see changes on the LCD, some players don't. We need a hotfix, Keen.
Most of multicrew ships on PvP servers now are just about unusable state beacause 80% of utility scripts are not being displayed correctly. Some players see changes on the LCD, some players don't. We need a hotfix, Keen.
Hello, Engineers!
First of all, thanks all of you for comments and saves/BP. However, I´m still not able to reproduce the issue you are mentioning.
Whipslash141, thanks for save. But the values on the screen are not updating whatsoever on the screen: ERROR1: no ship controllers were found. Same behavior for both - host and client as well.
Gabriel, you BPs shared in the other thread are not showing the issue as well. Both BP are working the same. Values updating the same on AAA_broken as well as AAA_working.
Can any of you please share a working BP/save where it would be possible to see the issue as it is not working, please?
Sorry for any inconveniencies this might bring to you. Hope you understand and can provide more info so I can hunt it down and reproduce the issue.
Kind Regards
Keen Software House: QA Department
Hello, Engineers!
First of all, thanks all of you for comments and saves/BP. However, I´m still not able to reproduce the issue you are mentioning.
Whipslash141, thanks for save. But the values on the screen are not updating whatsoever on the screen: ERROR1: no ship controllers were found. Same behavior for both - host and client as well.
Gabriel, you BPs shared in the other thread are not showing the issue as well. Both BP are working the same. Values updating the same on AAA_broken as well as AAA_working.
Can any of you please share a working BP/save where it would be possible to see the issue as it is not working, please?
Sorry for any inconveniencies this might bring to you. Hope you understand and can provide more info so I can hunt it down and reproduce the issue.
Kind Regards
Keen Software House: QA Department
Replies have been locked on this page!