GameSettings and Xenko.Navigation settings
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 49
Description
Release Type: Official Release
Version: 3.1.0.1
Platform(s): Windows
Describe the bug
Every sample template that does not contain Navigation subsection in the GameSettings asset will no longer be runnable after GameStudio adds back the Navigation subsection.
This is because the Xenko.Navigation reference is not included in the csproj file for those samples, and once GameSettings adds back the Navigation subsection it will try to load Xenko.Navigation.NavigationSettings, but obviously Xenko.Navigation does not exist so it'll crash.
You will get an error message saying:
Xenko.Core.Serialization.Contents.ContentManagerException: 'Unexpected exception while loading asset [GameSettings]. Reason: No serializer available for type id f6e78a35184f6fe1d27096e38ec09340 and base type Xenko.Data.Configuration. Check inner-exception for details.'
To Reproduce
Steps to reproduce the behavior:
- Create Third Person Platformer sample template.
- Edit any settings on the GameSettings asset.
- Save GameSettings.
Expected behavior
Project should still be runnable.
Workaround
In your game's csproj file, edit in a text editor (or use nuget package manager) and add
<PackageReference Include="Xenko.Navigation" Version="3.1.0.1" PrivateAssets="contentfiles;analyzers" />
Make sure this is the game csproj file (ie. you should already see package references to things like Xenko.Core and Xenko.Engine.
You may also want to add Xenko.Physics if it is also missing, ie.
<PackageReference Include="Xenko.Physics" Version="3.1.0.1" PrivateAssets="contentfiles;analyzers" />
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Third Person Platformer sample template and its game csproj, then reproduce the failure by editing and saving the GameSettings asset. Compare the csproj package references across sample templates that lack the Navigation subsection. Done means affected samples remain runnable after GameStudio adds the Navigation subsection and their GameSettings assets load without the reported serializer error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system, game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100