A big day for the FNA project, as they've released a massive new release which pulls in FNA3D, the new modern and much more advanced 3D graphics library for FNA.
Refresher: FNA is a reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries. It's primarily developed by Ethan Lee, who has ported a ton of games to Linux and macOS. FNA can bring games to tons of platforms and you can see a big list here. Some notable titles include: Celeste, Dust: An Elysian Tail, Bastion, FEZ, Owlboy and so on.
FNA 20.09 is a major release thanks to FNA3D, which replaces IGLDevice as the new graphics library for FNA. Thanks to that, the graphics API support now available with FNA includes:
- Direct3D 11 is now supported and is the default for Windows/Xbox
- Vulkan is now available as an experimental backend
- Metal is now the default for Apple platforms
- ModernGL and ThreadedGL have been removed
- THREADED_GL and DISABLE_THREADING have been removed
- MojoShader is now statically linked directly into FNA3D
- SDL2_image has been replaced with FNA3D_Image, which is built into FNA3D
This release also adds experimental support for WebAssembly via Emscripten and mono-wasm, and upgrades FAudio (the accuracy-focused XAudio reimplementation for open platforms) to the 20.09 release too.
Speaking about the release, developer Ethan Lee said, "Here it is, the official release of FNA3D! We now use native code not just for our platform layer and audio subsystem, but our graphics subsystem as well. In addition to providing a substantial performance improvement all around, it also adds numerous features including D3D11, Metal-by-default, built-in image I/O, and even a Vulkan beta! This is probably the biggest release since the FAudio rewrite, but not to worry: FNA3D has been extensively tested over the past 6 months, with several games on several platforms already using it in public builds today.".