What is FNA?

FNA is a reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries.

FNA is primarily developed by video game porter Ethan Lee, who has shipped more than a dozen ports of XNA games using the exact branch that you see on GitHub today!

General information about FNA can be found on the FNA website.

Those looking for the original XNA 4.0 Refresh documentation can find it here.

How do I use FNA?

This wiki is designed to be a step-by-step guide to getting your game running on FNA, whether it's an existing XNA game or a brand new game entirely:

  • The zeroth page is an FAQ, just in case.
  • The first three pages are the essential steps necessary to get any title running on FNA, regardless of any other dependencies your game might have. The second page in particular is split up for existing XNA games as well as new games.
  • The fourth and fifth pages go over common mistakes made by XNA games that obstruct the portability provided by FNA and some solutions that can quickly resolve those mistakes. The fifth page also describes features added to FNA that allow further portability and various enhancements to the user experience.
  • The sixth and seventh pages go over ways that FNA can be optimized and tuned specially for your game, as well as some additional materials related to debugging with FNA. Modders may also find these sections interesting when modifying the FNA binary provided with your game.
  • The final page is a rough guide on how you can contribute to FNA's development.

It is strongly suggested that you read the documentation in the order provided, and that you read the documentation in full, as every page is meant to be useful to any developer working with FNA. You might be surprised by what you can really do with this library!