XNA Developer's Survival Kit Expanded

Image courtesy of Nelson Hurst


  • XNA Framework - this is XNA 4.0 Refresh continued
  • MonoGame - Source Code for the framework and its tools 
  • MonoGame Primitives 2D - this is the 2D XNA Primitives project ported to MonoGame by Jaap-Willem Dooge
  • FNA - Desktop unique reimplementation of XNA 4.0 apis. It can be used to build desktop versions and be sure to have the same behavior on all platforms.


Cameras & Scenes 
  • XNA Camera - this will help you understand how the XNA camera works
  • Camera Shake - learn how to increase immersion by shaking the game's camera
  • Split-Screen - learn how to render the same scene to multiple viewports
  • Safe Area - learn how to make your game display correctly on a wide range of TV screens

Effects, Lighting & Shaders 
  • Custom Model Effect - learn how to apply a custom effect using the XNA Framework Content Pipeline
  • Distortion - learn how to implement a variety of screen-space distortion effects 
  • Fluid Shader - real-time fluid dynamics (give the author credit if used!)
  • FX Composer - a powerful integrated development environment for shader authoring 
  • NShader - Syntax Highlighting for your HLSL files
  • Non-Realistic Rendering - learn how to implement stylized non-photorealistic rendering techniques
  • XNA Lens Flare - an XNA and MonoGame lens flare effect tutorial with lighting by Jason White. He founded Alien Scribble Interactive 
  • XNA Lens Flare Part 2 - obstructing light effects continuing from the previous tutorial
  • Lens-Flare - learn how to create an awesome lens-flare effect for your game 
  • Motion Blur - learn how to implement a motion blur effect based on GPU Gems 3
  • Real-Time Fur - learn how to create and apply real-time fur to a model
  • Shatter Effect - learn how to apply an effect on any model and shatter it apart
  • Color Grading Filter - a color grading/ correction filter for XNA and MonoGame 
  • XNA Shader Programming Tutorials - Need help with HLSL (High-Level-Shader-Language)? Check out these tutorials by Petri Wilhelmsen. They are also listed below
  • XNA Shader Programming (Old) - this is Petri Wilhelmsen's source code for his XNA Shader programming tutorial series for XNA 3.1. They are also listed below
  • Weaver - HLSL surface shader parser for XNA/ MonoGame
  • Compile for Pixel Shader 3.0 - an excellent blog post by John Pile Jr


  • God Rays & Volumetric Lighting 
  • 2D Crepuscular (God) Rays - learn how to implement God rays in this tutorial by Charles Humphrey (MonoGame version)
  • Light Shaft Rendering - an implementation of light shaft rendering in XNA with custom HLSL shaders by Luke Thatcher
  • Volumetric Lighting - check out this awesome tutorial on volumetric lighting (or Crepescular Rays, Light Shafts or God Rays) by Nicolas Menzel
  • Light Shafts - this is a port of the volumetric lighting tutorial by Nicolas Menzel to MonoGame

  • digitalerr0r XNA 4.0 Shader ProgrammingTutorials
  • 1. Ambient Light - an introduction to HLSL shader programming in XNA 4.0
  • 2. Diffuse Light - second tutorial explaining how to implement diffuse lighting
  • 3. Specular Light - learn how to implement specular lighting in this third tutorial
  • 4. Normal Mapping - learn how to implement normal mapping in this fourth tutorial
  • 5. Deform Shader - learn how to create a pure vertex shader for deforming objects
  • 6. Simple Ocean - learn how to create an ocean shader 

Mapping Techniques 


Plants & Vegetation

Terrain & Heightmap

  • Dynamic 2D Water - make a splash effect with dynamic 2D water effects in this tutorial by Michael Hoffman
  • Dynamic Water Pixel Shader - a fairly advanced water shader tutorial for MonoGame or XNA by Alien Scribble based off Michael Hoffman's 2D water splash tutorial 
  • XNA 4.0 Water - Learn how to create water with reflection for your games. The original source code was written in XNA 3.0 by David Mariscal Fernandez. It was updated to XNA 3.1 by Canton Javier Ferrero and I have successfully updated it to XNA 4.0. For more information, see my blog post here. Enjoy!
  • Ocean Scene - check out this water shader by Kosmonaut Games


Skybox & Clouds
  • Skybox - learn how to add a skybox to your game
  • Volumetric Clouds - Learn how to implement volumetric clouds in XNA 4.0 in this tutorial by Charles Humphrey. You can find his original code base here




2D Animation
  • MeoMotion - a great 2D animator for creating smooth distortable animations created by Jason White (see more here)
  • ToonBoom - a great article on loading ToonBoom animations in XNA
  • 2D Skeletal Animations - an awesome sample on 2D animation

3D Animation


  • DigitalRune Physics –  A module from DigitalRune Engine - Physics with lots of features, (fast)
  • Bepu Physics – Nice Physics engine with many features, (fast,  FREE) (blog) (forum) (FAQ)
  • BEPU Physics MG - This is a MonoGame 3.4+ version of the 1.4 verison of BEPU Physics.
  • Also, check out my blog posts here on BEPU.  
  • BEPU Physics V1.5.0 - MonoGame port of BEPU physics 
  • BEPUik v0.3.0 - 64 bit Blender builds with the latest BEPUik full body inverse kinematics addon
  • Bubble Physics - soft-body physics engine for XNA
  • Jitter Physics –  A real-time Physics Engine for .NET created by the author of JigLibX  (fast,  FREE) The Google Code Archive can be found here
  • Oops! Framework - fast on the PC and Xbox 360 (good, but needs more features)
  • Matali Physics -fast with lots of potential (fast on PC, average on Xbox 360, $130 – $260)
  • Henge 3D Physics – Lot of Features and multi-threaded (okay on PC, slow on Xbox 360, FREE)
  • JigLibX – a C# port of the C++ JigLib physics engine, formerly known as JiggleX. Initially its not multi-threaded and runs slow however its FREE. Many developers recommend using Jitter instead. You can download the XNA 4.0 version of JigLibX here
  • Also, check out my blog posts here on ways I improved the JigLibX physics engine. Also, see Nikescar' vehicle class modifications
  • Farseer Physics Engine – a 2D Physics Engine (Farseer Physics Platformer 3.3.1)
  • Box2D.XNA – a C# XNA port of Box2D
  • Bullet for XNA - loaded with features (slow on PC and Xbox 360) The physics library of the Visual3D.NET game engine is based on an early version of BulletX
  • Soft Body Physics in XNA - cloth, chains, slinky (awesome tutorial and samples)
  • XNA Havok - XnaHavok is simple wrapper for Havok SDK for use in XNA 
  • Vectors & Matrices - basic facts about vector and matrix algebra when developing 3D games



  • 3D Audio - learn how to position sounds in 3D space 
  • Dynamic Audio - learn about the audio features to the XNA Sound Effect API
  • EasyXnaAudio – easy interface to load, play, and manage songs and sounds
  • XNA Final Engine – Audio engine included in framework
  • Microphone Echo - learn how to play back recorded sound with an echo effect applied to it
  • Audacity - a free multi-track audio editor and recorder
  • Sound Lab - a collection of more than 170 free audio files for use in your games
  • Sound & Music - learn the basics on sound and music for games on Windows Phone
  • Playing Sound Effects - learn the aspects of audio programming as well as using XACT
  • Scratchy Audio Fix - learn how to fix playing the same sound effect at a high rate

  • Music Management - meet the requirements around music playback in Windows Phone games in order to be accepted into the Windows Phone Marketplace
  • One-line Algorithmic Music - learn how to generate a sound clip through a line of code by David Gouveia

  • Creating a Basic Synth by David Gouveia
  • Part 1 - introduces the reader to the world of sound synthesis with XNA 4.0 and cover some of the basic theory that should be understood before proceeding
  • Part 2 -  introduces the DynamicSoundEffectInstance class present in the XNA 4.0 framework and how it can be used to play some simple waveforms. By the end of part II you should be able to create and reproduce a single waveform of different kinds (such as a sine wave, sawtooth wave, pulse wave and square wave).
  • Part 3 - guides the reader through the construction of a Synth class that allows the application to communicate with the low-level audio playback engine through a much simpler, music-oriented interface. The class will also be flexible enough for new sounds to be created and swapped easily. By the end of part II you should be able to play many musical notes simultaneously, while controlling their individual pitch, duration, volume and panning. You should also be able to create entirely new sounds and use them with minimal changes to the code.




  • EasyStorage - the easiest way to save games, store date, etc... (tutorial here by Robot Foot Games) Check it out on github for the latest updates
  • GamePad - This is a helper for simplified access to gamepad controllers modeled after the XNA Game Studio 4 (Microsoft.XNA.Framework.Input) GamePad class
  • XNAInput - nice library to handle input controls 
  • XNA Input Handlers - library to handle mouse and keyboard input
  • CS_XboxOneController - use C# and XNA to get Xbox One or 360 controller input
  • Otaku Controller - this is a simple program simulation PC mouse with an Xbox 360 or Xbox One controller 
  • Input Sequence - learn how to detect sequences of input such as combo series, cheat codes, and other multi-button functions
  • WP7 Saving/ Loading - a tutorial on saving and loading for windows phone based games
  • Joystick - learn how to get a joystick working in XNA 4.0
  • Access an Xbox 360 Joystick - an excellent tutorial created by Joel Ivory Johnson
  • PlusPad - learn how to simulate keyboard and mouse input with a Xbox 360 gamepad
  • WebCamXNA - learn how to use a webcam in XNA


  • DigitalRune Game UI – Basically Neoforce Controls on steroids, part of  the Digital Rune Engine
  • Neoforce Controls - my 1st Favorite tool for Interfaces and open source (Also on GitHub) (Check out the monogame version
  • MonoForce - an improved MonoGame based version of Neoforce Controls 
  • XNA Interface Elements - my 2nd Favorite tool for Interfaces
  • Nuclex Framework- skinnable interface included
  • 3D XNA Gizmo- you may need this for level editing…
  • XNA and Windows Forms – this article explains the best
  • XNA Integration Inside WPF - another way to integrate multiple XNA scenes inside WPF
  • Gemini - a WPF framework designed specifically for building IDE-like applications
  • RandomchaosMGUI - an open-source MonoGame user interface created by Charles Humphrey 
  • GLEED2D - a 2D level editor for your XNA games
  • XNA LED - a C# level editor created in XNA using xWinForms (has lots of potential)
  • tIDE - This a full-featured .NET based tile map editor using XNA 3.1 and 4.0 technology. The editors supports multiple layers (WYSIWYG parallax), tile animation and custom properties at map, layer, tile sheet and individual tile level. The editors works in tandem with xTile, an XNA-ready tile rendering engine. (click here for a quick tutorial for integrating xTile within an XNA game project) (Source Code) Automatic tile transitioning (autotiling algorithm described here)
  • World of Goo: Cursor - the shape and behavior of the mouse cursor
  • Pie Menu - a circular context menu where selection depends on direction

  • Character Interaction & Gameplay
  • Mass Effect: Dialogue - looks and behaves like the dialogue system and wheel in Mass Effect
  • 2D Pie Drawing - a useful pie for 2D game effects, such as enemy area visibility, flashlights and radars


  • Xna Screen Manager – clean, simple and easy to use
  • Oops! Framework - has a game state manager included
  • Nuclex Framework – game manager included (nicely done)
  • The State of Things - learn how to use state to create game menus, display game screens and make your game characters come alive!
  • GameStateManager – a great starter  to learn how to build your own game menu system. Learn how to manage transitions among menus and gameplay states 
  • Multiple Columns - learn how to add multiple columns to the Game State Management Sample by adding left and right movement to your menus
  • Splash-Screen - learn how to create a splash screen for your menu system (also be sure to check out my blog post here)
  • User Interface Controls - learn how to build on the Game State Management sample adding user interface elements with a look and feel 
  • Handle Multiple Controllers - learn how to handle multiple player controllers in your games
  • RPG Starter Kit - comes equipped with a Level Manager


  • Network Prediction - learn how to use prediction and smoothing algorithms to compensate for network lag
  • Network Lobby & Chat Icons - a free set of images designed for displaying status within a networking game
  • Network Game State Management - learn how to implement the user interface for a multiplayer networked game
  • Network Architecture: Client / Server - learn how to implement a simple multiplayer network session by using a client/server network topology
  • Network Architecture: Peer 2 Peer - learn how to implement a simple multiplayer network session by use P2P network topology in which each computer is responsible for updating the state of its locally controlled players
  • Invites - this sample builds on the Peer 2 Peer sample by adding support for invites 
  • Net Rumble - a 2D shooter where up to sixteen players compete online in a death match
  • Picking - learn how to determine whether a player's cursor is over an object and how to find out where on the screen the object it. This sample could be helpful for drawing text above a player's head if you want to display the name of players over their characters in online matches. Doing so helps players identify each other.  
  • Network Engines - other useful networking resources
  • No Membership Error - this post by John Pile Jr explains how to test XNA networking using a SystemLink without any difficulties 

  • Lidgren
  • Lidgren.Network - a networking library for the .net framework which uses a single udp socket to deliver a simple API for connecting a client to a server, reading and sending messages
  • An Intro to Lidgren - an article introducing networking in C# games using Lidgren
  • How to: Lidgren Network - an example on how to use the lidgren networking library
  • Lidgren P2P - an article explaining how to implement Peer to Peer networking using Lidgren 


  • 3DS, OBJ, and NFF - three content importers for XNA content pipeline extensions
  • Custom Model Importer - learn how to implement a custom model importer in XNA
  • Custom Model Class - learn how to go beyond the limits of the Model class that comes built in to the XNA Framework
  • Tiff Importer - learn how to create a Tiff content importer besides the default XNA images
  • ColladaXNA - learn how to create an importer for animated collada 3d models (see more here and more about loading and rendering collada models here) (Git)
  • StichUp - an XNA 4.0 content pipeline extension which implements the idea of Shawn Hargreave's article Generating Shaders From HLSL Fragments (See an Introduction to StitchUp here)
  • Osiris - a set of XNA 4.0 content pipeline extensions 
  • Weaver - an HLSL surface shader parser, implemented as a content pipeline extension for XNA/ MonoGame
  • XBuilder - This lets you preview your content assets right in Visual Studio
    (See more here and version 0.2)
  • Xamarin Asset Previewer - lets you preview various MonoGame/ UrhoSharp assets in the IDE



  • Flat-Red-Ball Game Engine 
  • FlatRedBall - this engine is open source and will help you make 2.5D games (Main Website)
  • flatredball-js - an HTML5/ JavaScript port of the FlatRedBall engine (Documentation)
  • flatredball-spriter - a Glue plugin designed to make it ridiculously simple to load and use animations created with the Spriter tool in a FlatRedBall game (Main Website)
  • AnimChainsGenerator - automatic AnimationChains generator for FlatRedBall Game Engine
  • AnimChainsSheetPacker - sprite sheet packing of AnimChainList files (.achx) for FlatRedBall Game Engine
  • FRB-TexturePackerExporter - a TexturePacker exporter for the FlatRedBall game engine, with file build tool included
  • Model Plugin - a model-rendering plugin for the FlatRedBall game engine
  • FRB-TicTacToe - a TicTacToe game built using the FlatRedBall game engine and toolkit
  • FishKing - a simple fishing game created using the FlatRedBall engine and using resources from OpenGameArt



  • Font Squirrel –  need Free Commercial-Use Fonts for your game?



Sound Effects

  • HyperDuck Music Studios – need custom music for your game?
  • The Spin Wires - Need free instrumental tracks for use in your games, videos and other media. Check out this site here. The Spin Wires are a Punk/ Dance Rock band from Buffalo, NY. They embody the best elements of bands like Franz Ferdinand, The Black Keys and The Arctic Monkeys. If you use their tracks, please give them credit! 
  • ccmixter -  Royalty free music you can use in your games (check the licenses for how to credit people)
  • FL Studio Cookbook - learn how to make your own style of songs with Fruity Loop Studio

  • Mixamo – need Animation for your Characters?
  • CMU Mocap Database -  need the largest collection of free Mocap available?


Articles, Blogs, Tips and Tutorials

Not XNA Exclusive Articles, but Handy


XNA 4.0 & MonoGame Books


Are you trying to convert XNA 3.1 projects to XNA 4.0?

*Most of the articles above are from Shawn Hargreaves Blog, posted here to make 
them easier to find.

Sites that promote and review Xbox Indie Games

       If there are any resources you would like to share or see added to the XNA Developer's Survival Kit, please post them in the comments section. Also, if you have found this page helpful please comment below.