What problem does it solve?
Gum normally relies on pre-generated .fnt/.png font files produced by the bmfont.exe pipeline, which complicates runtime font changes and cross-platform builds. This Skill explains how the optional KernSmith.* NuGet packages bridge the KernSmith in-memory BMFont rasterizer into each Gum runtime so fonts are rasterized on the fly.
Core Features & Use Cases
- Package mapping: Documents the role of each package — KernSmith.GumCommon (BmfcSave to FontGeneratorOptions mapping), KernSmith.MonoGameGum, KernSmith.KniGum, KernSmith.FnaGum, and KernSmith.RaylibGum.
- Runtime font wiring: Explains how each platform package plugs into CustomSetPropertyOnRenderable.InMemoryFontCreator so a game rasterizes fonts at startup instead of loading pre-generated files.
- wasm/AOT rasterizer guidance: Details the StbTrueType backend requirement for browser-wasm/AOT, including the manual RuntimeHelpers.RunClassConstructor call needed because reflection-based backend discovery is trimmed.
- Use Case: A MonoGame developer targeting browser-wasm adds KernSmith.MonoGameGum plus KernSmith.Rasterizers.StbTrueType, sets InMemoryFontCreator at startup, and avoids shipping .fnt/.png assets entirely.
Quick Start
Explain how to wire KernSmith runtime font generation into my Gum MonoGame project and what extra steps are needed for a browser-wasm build.