Timeline for mono AOT Webassembly export?

The permissions appear to be set correctly, so not sure what is going on with the WPF Editor.
I am using the “Kni pipeline” version of the original pipeline.

All works okay except it does not recognise the fnt files I am tryung to use with Monogame.Extended.BitmapFont. I have referenced the Monogame.Framework.Content.Pipeline.dll in the Kni Pipeline references, but no option for BitmapFont appears in the dropdown list.
image

I can regress back to the normal mongame fonts if there is no easy solution.

I see that MonoGame.Extended.Content.Pipeline 3.8.0 is targeting .net Core3.1.
That won’t work. Importer has to be build either for netstandard2.0 or .net4.0.
The previous version 3.7.0 however is targeting netstandard2.0. Possibly that would work.

However, you should be adding the pipeline nuget to your main project.
The installation instructions on the Extended webpage are wrong.

I thought you might be interested to see this:

This is my latest game Scéal running in a browser.

I had to remove the monogame.extended.bitmapfont stuff as it’s not compatible.
I then switch to fontstashsharp but that’s built on the DesktopGL framework so that had too many issues also.

I regressed my fonts back to use good old SpriteFonts and it now works.
One font was too large (> 2048k) so I had to remove that.

I also had to remove apos.shapes as the built in shader caused an issue.

I didn’t get sound to work yet - it throws an error on load - so sound is disabled.
I will look into that.

Congratulations on a magnificent achievement - I strongly feel this will have a huge impact on monogame development. :clap: :clap: :clap: :clap:

2 Likes

Nice, thanks for testing it out.

extended.bitmapfont are exporting .fnt files right? It’s strange, doesn’t the default processor (SharpFont) support those fonts?
There are other ways to import bitmap fonts with the build-in texture font importer.
Bitmap Font Maker

Songs are not implemented yet. But sound effects should work.

I can confirm that ogg format sound files work.

The problems with monogame.extended.bitmapfonts occured when I added using statements to the code. There appeared to be a conflict between different versions of the Framework and it reported errors for Vector2 etc

I successfully integrated monogame.extended.tweening since then though, so not sure why Bitmapfonts did not work.

I’ll keep experimenting.

I tried monogame.extended.bitmapfonts again.
This is the error i get:

The first issue (1) is it is not recognising the extension methods for DrawString that support BitmapFonts, event though I have
using MonoGame.Extended.BitmapFonts;
at the top of the file.

      spriteBatch.DrawString(font, $"{Count}", position, Color.Red);

When I try to call the extension method directly, I get the strange compile error shown (2):
"Reference to type Vector2 claims it is defined in “Monogame.Framework”, but it could not be found.

I got to the bottom of the strange compile errors.

It’s because my proejct code is using the new nkast.Xna.Framework, and also referencing monogame.extended which is built against monogame.Framework.DesktopGL.

I downloaded the source for monogame.extended and built it against nkast.Xna.Framework and this resolved the compile errors.

There is still an issue though.
At runtime it fails when trying to load the first BitmapFont (from monogame.extended) with “Specific cast is not valid”.

monogame.extended is referencing monogame.Framework.Content.Pipeline nuget from the DesktopGL build.
This needs to be replaced with an nkast.Xna.Framework based version.

I didn’t find one in nuget - I’m guessing you are replacing the pipeline with ProtonType.exe whch crashes on startup.
So the alternative is to get that running instead.

UPDATE
I can confirm that games built with the new framework will work in a browser on itch.io.

This is a remake I did about 15 years in C++ which I recently ported to monogame.
It took only a few hours to create a web version using the new Framework.
And it’s now up live on itch.io.

3 Likes

How do I install the SDK in CI, where I don’t have access to a GUI? Can the SDK be installed using a CLI?

Also, I’m curious as to how this even works. I tried the example project, and it launches a web server at localhost that you then visit with your browser. What does this server do, exactly? When I visit a website that runs a KNI game, does my browser simply download the entire game to local storage and run it from there, or does any part of the game run on the server?