XNA Developer's Survival Kit Expanded

Image courtesy of Nelson Hurst


RENDERING, GRAPHICS & GAME ENGINES

General
  • 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.


Engines


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
  • ShaderGen - Proof-of-concept library for generating HLSL/GLSL shader code from C#


Lighting




  • 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 


Reflection 


Plants & Vegetation


Terrain & Heightmap
  • Generated Geometry - learn how 3D models can be generated by code during the build process
  • Multitexturing - learn how to attach different textures according to the height level of each vertex
  • Multi-Textured Terrain - a simple yet fast GPU-driven terrain multi-texturing approach
  • Terrain Texturing Demo - learn how to demonstrate procedural terrain texturing using 4 textures and a heightmap
  • Terrain Lighting - add normals to a terrain
  • Terrain Normal Mapping Demo - learn how to extend the Terrain Texturing Demo by adding tangent space normal mapping
  • Landscape Modeling - Game Creation with XNA/3D Development/Landscape Modelling
  • Steepness - an article which explains how to detect the area of steep slopes
  • Osiris - a GeoMipMapping Terrain Processor created by Tim Jones
  • Large Terrain
  • Quadtree Terrain - created by George Kristainsen, this program is a dynamic quadtree terrain used to render very large-scale worlds


Water 
  • 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
  • Water Flow in Portal 2 - by Donghyun Kim



Shadows



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


Snow 


Decals 




ANIMATION 

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



PHYSICS



     

AUDIO 

  • 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
  • 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.



ARTIFICIAL INTELLIGENCE (AI)

Aiming
  • Aiming - learn how to turn one object to face another

Steering Behaviors




State Machine


Behavior Types & Decisions 
  • Chase & Evade - learn how to implement several simple AI behaviors
  • Fuzzy Logic - learn how to create AI that makes decisions

  • Flocking 
  • Flocking - learn how AIs use simple rules to move together

  • Engine Nine – has Path Finding and steering behaviors included
  • SharpSteer – I found a million and 1 uses for this…
  • AI in Games - from Game Creations With XNA
  • Intro to Finite State Machines - learn about finite state machines in this post by Jesús Bosch
  • AIGameDev.com - a community of game developers focusing on artificial intelligence, ran by experts in the field
  • AI Game Programmers Guild
  • GameDev.net - a collection of recommended AI Books and Sites (great for getting started)
  • GOAP - Goal-Oriented Action Planning
  • Botman's Bots - the bots used in Counter Strike
  • AI in FPS Games - some insight in this presentation
  • XGAE - (XNA Genuine Artificial Intelligence Engine) a port from C++ to C# of the artificial intelligence engine FEAR for XNA
  • Digesting Duck - a blog about AI and Prototyping 
  • AiGameDev.com
  • Diabolical - blog posts by John C. Brown on the artificial intelligence in his sci-fi action game 



PARTICLES




INPUT & STORAGE

  • 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



GRAPHICAL USER INTERFACES (GUI) / LEVEL EDITOR TOOLS

  • 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
  • 3D Game Editor - This is a 3D game editor created in MonoGame by Nate Bowman

  • 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



GAME STATE MANAGEMENT

  • 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
  • MonoGame-UI Sample - a UI sample created by Fit Games using the game state management project
  • 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



NETWORKING

  • 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 




MULTI-THREADING




CONTENT IMPORTERS & PIPELINE EXTENSIONS
  
  • 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



GARBAGE COLLECTION & PERFORMANCE 






MORE XNA GAME ENGINES


  • 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



OPEN SOURCE GAMES 





USEFUL EXTRAS AND SERVICES

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


Art 


Textures



Sound Effects


Music 
  • 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


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


More


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.