kniEngine / kni

KNI is a cross-platform C# game framework.
Other
96 stars 5 forks source link

Fixed resolve type bug due to splitting out to different assemblies #1534

Closed alxwest closed 6 days ago

alxwest commented 2 weeks ago

Calling ResolveReaderType in ContentTypeReaderManager would return null due to the resolvedReaderTypeName pointing to the wrong assembly.

nkast commented 2 weeks ago

I see that this is to resolve XNBs created by the MonoGame content builder.

Since all readers are now moved out of Monogame.Framework.dll, MG generated XNBs no longer work.

So..., this isn't an issue as long as you build content via the KNI content builder (or XNA). Also, if MonoGame were to fix the XNA backward compatibility for all stock-types then things would just work between the two libraries through the XNA mappings.

For what reason we should actively maintain compatibility with MonoGame's content assets?

nkast commented 2 weeks ago

FNA runtime also resolve XNA types, and apparently MonoGame -> FNA as well. That's is no surprise as FNA doesn't have it's own content builder and people have to use MonoGame to build assets.

https://github.com/FNA-XNA/FNA/blob/master/src/Content/ContentTypeReaderManager.cs#L346-L373

nkast commented 6 days ago

Ok, there are some benefits from this, to let people gradually port their games, building projects on linux which KNI doesn't support, and fixing issues by comparing differences between assets.

On the down side, it will hold us back from taking actions to address those issues.

I might write a warning on the console, because that is not a permanent solution.