Predicted spawn classification failing in Editor

I have spent an awful lot of hours trying to figure out why predicted spawns were not properly classified.
It appears the sole reason is that this does not work consistently in the Editor, once compiled there are seemingly no issues.

Attached is a project with a simple setup a spawner that shoots out spheres.
Th sample will predict one sphere but also shoot a purely interpolated version to make it obvious where the client predicted sphere is in relation to the actual sphere on the server.

When run in the editor with the Entities Hierarchy tab active, the prediction classification will fail most of the time, as can be seen in the console.
The reason being that the list of predicted spawns is empty even though it clearly shouldn’t be.

If the Entities Hierarchy is deselected, classification completes successfully.
The issue is clearer if the latency is set to something like 40ms.

9385904–1312967–PredictedSpawning.zip (78.8 KB)

Hey! Thanks for the detailed report and repro.
Can you file this as a Unity bug report (via the Editor) and link that IN-XXXX here, please?
Please make the title include both “Entities Hierarchy” and “Netcode”. Thanks!

Done, the id is IN-56679 :slight_smile:

1 Like

@NikiWalker Despite the fact that I responded instantly (October 5th) to the questions asked by the support team, the case has now been closed with the reason that I didn’t respond.

It explicitly says
Please reply to this email if you have any additional information that could help us solve the issue.

That clearly doesn’t work and if responding to the email sent out by the bug system doesn’t actually work, coupled with the fact that the link to the case
9405194--1316795--upload_2023-10-12_14-13-8.png
produces the following.

9405194--1316792--upload_2023-10-12_14-8-33.png

How exactly am I supposed to communicate with the support?

I have another pending bug report to which I have also replied, likely in vain. IN-57247 someone is awaiting my response there as well.

Ah, yeah that’s a problem. I’ll try to repro this myself with your project soon. Thanks again for the direct repro, it’s incredibly helpful. It may take about a week. I’ll also forward this workflow issue, as you’re right that it doesn’t make any sense. Apologies for this.

Oh wait: It actually looks like your October 5th reply was not saved into the system. What format did you reply in?

Yeah that seems to be the issue, replies do not get into the system.
I simply replied to the request (email) for a video that shows the problem. So email format.
I have now attached the video here instead :slight_smile:

9406793–1317065–EntitiesHierachyBug.zip (6.55 MB)

Update: We’re currently experiencing technical issues with the bug reporting tool.

  • IN-56679 has been re-opened.
  • Apologies, please re-submit both updates directly via the dashboard (not via email), one per bug.
  • When doing so, I’ve been asked that you include the relevant incident ID (ID-XXXXX) again into your reply.

First, thanks for the update.
However, which dashboard are you referring to, the Atlassian one to which there is a link in the email?
Because as stated in an earlier post above, that unfortunately, does not work, I simply get an access denied page.

I have also checked the Unity Gaming Services dashboard, but that does not seem to have any connection to this.

Yes.

Yes I saw this. Is this still true now that we’ve re-opened the case? Is the other case (IN-57247) visible to you?

We’re also unable to find any email response from you. Would you mind resending that, too, please?

Yeah it’s the same thing I’m afraid.

This is what happens upon clicking the link:

  1. I am prompted to enter my email
  2. The first time this proceeds to an account creation flow.
  3. Once the account is created, I arrive at the ‘No Access’ page.
  4. Same thing on subsequent logins.

So if the link is supposed to simply grant access, as is suggested by the
Please do not share this URL with anyone else because the information you’ve submitted is accessible by anyone with this link
Then that is not the case.

Thanks for the clarifications, and apologies again. I’ll reply here once we have some unblocked next steps.

Would you mind retrying your existing URLs? We’re able to find you (as a user) via the email address you used, and we’ve manually added said email address to our customers list.

Thanks, that worked :slight_smile: I have now updated both bugs.

1 Like

I’m seeing frequent Classification failures in Editor (~40fps) fps, and less but often enough in bulit player (~180fps)
Entities/Netcode/ect 1.2.1

Is there a NetCodeConfig setting that may add to and/or alleviate this issue that I may have adjusted, because it seems to be a lot more frequent recently.

The issues seems to be that when it reaches our custom ClassificationSystem job, the PredictedGhostSpawn buffer doesn’t contain the client predicted spawned projectile entity. Our client always spawns the projectile before the server, so it’s either not getting added, or getting added and then deleted before the server snapshot hits the client. How can I tell which? I do always see the client projectile being spawned first on the client, but then it’s not in the PredictedGhostSpawn buffer and the client entity gets despawned and replaced by the snapshot entity spawn.

In presence of tick batching on the server (that is by default active for the server) there is high chance of mismatch in the predicted spawn tick (because the server didn’t take it into account).
Also, if it may be the case that if the server run slow or the client didn’t receive the ghost before the current interpolation tick equals the spawn tick of the entity (that is used as marker to detect a misprediction) the entity may have been delete client side.

In order to fix the latter, we are going to add a way to customize how to wait for the despawning a predicted entity.
For the first issue, mostly due to batching in the editor, we need to fix that our side and provide:

  • a more reliable way to match predicted spawned ghost (working on it)
  • fix the tick mismatch because of catching up ticks on the server