Revision number serialized to WP nav mesh uassets

Hello,

We have experienced an unpleasant issue in our overall workflow regarding navigation mesh.

In our project we use world partition level and also world partition nav mesh. For large level (which is our main production level) it is impossible to rebuild the nav mesh manually, therefore we have a build step that runs the commandlet and submits the resulting navmesh.

We are using UGS to update workspace data. Most of the team uses UGS also to sync precompiled binaries.

This way, a user syncs to a version in UGS, gets updated nav mesh and also precompiled binaries. Sometimes, however, it happens, that version written into nav mesh uassets is newer than the latest precompiled binaries version and the nav mesh can’t be loaded.

The load fails with the error `Package … has been saved with a newer engine version and can’t be loaded`

I have investigated the issue and the sequence of events is the following:

  • Development editor is build, typically triggered by a code change
  • Scheduled package build starts, part of this build is also the nav mesh rebuild
  • Packaged build syncs to current latest version - let’s call the revision X
  • Packaged build comiles the Development editor to use - it is at revision X
  • This editor (from revision X) is also used to build nav mesh, thus when the navmesh uassets are saved, revision X is written to the summary in the files.
  • New navmesh is submitted to VCS. This will get revision X+1 (lets pretend there hasn’t been any other changelist during the build)

Now if anyone syncs to revision X+1 with precompiled binaries, they cannot load the navmesh.

There is a clear solution and that is to publish the Development editor that is compiled to build nav mesh to UGS. It has correct version and it is able to load the navmesh,

I am just writing to let you know, hear your take on this issue and make sure that we are not missing something crucial

Thanks,

Matej

[Attachment Removed]

Hello,

I have learned new piece of information. Publishing the editor build to UGS is possible but it also requirese compiling Tools and other stuff, so it would prolong the whole build by approximately half an hour. We are not that keen on that :frowning: We would approciate some other way around this problem.

Thanks,

Matej

[Attachment Removed]

I do not believe you need to go to publishing the editor as well. In the build graph you are using for the navmesh generation job, you could add CompatibleChange=“$(CodeChange)” to the SetVersion task. I do not know if you are running from an XML file similar to BuildWorldPartitionHLODs.xml, butyou could use that file as an example for how to set up your own.

-James

[Attachment Removed]

Hi James,

thanks for the tip. We have used CompatibleChange and it solved our issue.

Matej.

[Attachment Removed]

Awesome news! If you bump into any fallout from adding that line or other odd build issues, please let us know. I can help from the Navigation side, but I can also bring in some of our build tools engineers to assist with getting things worked out.

-James

[Attachment Removed]