---
title: "Case Study: FNA"
date: 2019-05-22T10:38:01-07:00
weight: 12
---

FNA is a game development framework that uses C# as its scripting language.
It is an accurate re-implementation of the XNA 4.0 API, and has been used to ship several dozen successful games.

I like using FNA because it is highly stable, time-tested, low level enough to be flexible and high-level enough to be easy to use. It's really great!

If you are new to C# scripting, Microsoft has a decent high-level intro here: https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/intro-to-csharp/

I recommend giving the FNA wiki a quick read as an intro: https://github.com/FNA-XNA/FNA/wiki

I have created a template for getting started with an empty Encompass/FNA project: https://gitea.moonside.games/MoonsideGames/Encompass-FNA-Template

Download it and follow the install instructions.

If you are using VSCode, you can hit Ctrl-Shift-B to bring up the build menu.
`Framework` tasks will execute using .NET Framework or Mono, and `Core` tasks will execute using .NET Core runtime.

If you are not using VSCode, you can build and execute from the command line.
I assume if you are savvy enough to not be using some kind of IDE you probably don't need handholding here.
Just run msbuild or dotnet build from the command line. But let me know if I'm wrong!

Once you can Build and Run and the cornflower blue screen of life pops up, we are ready to go!
