3.7 KiB
FNA VSCode Template
Start new FNA projects with Nez quickly and easily with handy setup scripts, a versatile boilerplate project, and convenient Visual Studio Code integration.
Features
- Super simple setup scripts that download and install Nez, FNA and its native libraries for you
- Boilerplate project already included -- no need to wrestle with MSBuild configurations or writing yet another Game1 class
- Visual Studio Code tasks for building and running your game, cleaning/restoring your project, compiling .fx files and building content with the MonoGame Pipeline tool
- In-editor debugging support with the Mono Debugger
Prerequisites
- Visual Studio Code
- Mono Debugger Extension (required for macOS debugging)
- Git
- Microsoft DirectX SDK (June 2010) (required for building effects -- on Mac, you can use Wine to run this)
Setup Instructions
- Download and unzip the ZIP archive (don't clone the repo!)
- Run
./getFNA.sh(macOS) to download the latest Nez, FNA and fnalibs to the directory. You can run this script again if you want to update either FNA or the fnalibs at a later point. Nez is setup as a submodule so you can update it in the normal fashion. - Open the root folder that contains the .sln file in Visual Studio Code or the .sln file directly in Visual Studio
That's it! Now you're ready to build and run the base project. When developing, raw content (files not processed by the Pipeline tool) should be placed in the Content folder and anything that needs processing should go in the CompiledContent folder and added to the Pipeline tool.
The setup process will also init a git repo for you with Nez added as a submodule.
If you want to see the output of Debug.* calls in the VS Code Debug Console, you have to install a listener by adding this somewhere in your code (Game1 by default has one for you): System.Diagnostics.Debug.Listeners.Add(new System.Diagnostics.TextWriterTraceListener(System.Console.Out));
Build Tasks
- Restore Project: Restores the .csproj. Run it again whenever you change the .csproj file.
- Build (Debug/Release): Builds the project with the specified configuration but does not run it. This also runs MGCB.exe, copies over everything in the
ContentandCompiledContentsubdirectories and the fnalibs. - Build and Run (Debug/Release): Builds and runs the project. On MacOS, it runs the output with Mono. On Windows, it runs the output with .NET Framework.
- Clean Project: Cleans the output directories and all their subdirectories.
- Build Effects: Runs
fxc.exeon all of the.fxfiles found in the Content/ subdirectories and outputs corresponding.fxbfiles that can be loaded through the Content Manager at runtime. - Build Content: Runs good old MGCB.exe on the Content.mgcb file
- Force Build Content: Force builds the content (MGCB.exe -r)
- Open Pipeline Tool: Opens the MonoGame Pipeline tool
- Process T4 Templates: Processes any T4 templates found in the
T4Templatesfolder. Note that the install script will attempt to install the t4 command line program which requires thedotnetcommand line program to be installed. The install command it will run isdotnet tool install -g dotnet-t4.
License and Credits
FNA VSCode Template is released under the Microsoft Public License. Many thanks to Andrew Russell for his FNA Template, from which I learned a lot (and borrowed a little).