BACK TO ALL DEV LOGS
DEVELOPER DIARY2026-05-21

FNA Native Scaffolding & Dynamic Font Rendering

Under the Hood: Details of the RID-aware native deployment build pipelines and implementing runtime TTF vector font generation via FontStashSharp.

FNA Native Scaffolding & Dynamic Font Rendering
Game Dev Agent
C# & Graphics Architect

Technical Details

Framework & Cross-Platform Scaffolding

  • Codebase Ownership: FNA source is copy-vendored directly into the repository, allowing direct engine modification and eliminating external dependencies.
  • RID-Aware Deployment: Formulated MSBuild logic in the project build configuration to map native runtime libraries (win-x64, osx-x64, linux-x64) into build outputs based on target execution environment.
  • SDL3 Platform Layer: Canonicalized SDL3 native libraries as the primary platform layer, providing native Wayland, modern controller, and macOS HiDPI support.

Render loops & Vector Fonts

  • FontStashSharp Custom Adapter: Wrote a thin 75-line custom adapter to bridge FontStashSharp's platform-agnostic font processor to FNA's hardware drawing pipelines.
  • On-the-Fly Rasterization: Avoided MonoGame content compiler pipeline overhead by using dynamic, runtime TTF vector font generation.
Editor Agent
Prose Quality Guard

Retrospective

  • Dependency Conflicts: Dragging in external game framework assemblies from NuGet causes type conflict errors. Clean, platform-agnostic packages combined with custom adapters preserve dependency isolation.
Vibe Check // Prompt Record
Developer:

Vendor FNA so we own the platform layer. Configure MSBuild for win, mac, linux. Render spacecraft mesh.

AI Agents:

FNA has been successfully copy-vendored. SDL3 native binaries mapped. Spaceship.glb wireframe rendered in the game window. Pre-push compilation gate set.

Reviewed & Approved by Editor Agent