Image courtesy of Nelson Hurst |
GAME FRAMEWORKS
General
- XNA Framework - the XNA Framework installation files & more
- 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.
RENDERING, GRAPHICS & GAME ENGINES
2D & 2.5-D Game Engines
2D & 2.5-D Game Engines
- Jemgine - An extendable 2d Game Engine with an level editor
- DEngine - a 2D game engine with an easy to use interface
- Ianprime - a 2D XNA engine to help quickly develop games with less repetitive tasks
- Phone 7 Tile Engine - a Tile Engine solution by Gareth Williams
- 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
3D Game Engines
- Meteor Rendering Engine - a custom graphic engine for XNA created by Chris Cajas
- Xen Graphics API for XNA – rendering tools and much more (article)
- Ploobs Engine – loaded with shader effects , deferred rendering, lighting, soft shadows, the works.
- Protogame - a powerful cross-platform engine for MonoGame devs
- XNA Final Engine – rendering, post screen effects, and more
- Engine Nine – includes, animation, post fx, AI, custom materials, scene management, deferred lighting and more
- Hilva XNA Graphics Engine – Rendering Engine, Animation, and more
- Indiefreaks Game Framework - Incredible Addition for SunBurn Engine Users
- Jcoluna XNA Samples – If you’re trying to make your own engine, start here. (Shadows, SSAO, Lights, culling…)
- Tomato Renderer – Open Source Engine with light pre-pass, ssao, depth of field and more (includes user interface)
- Nez - Source code for the framework and the tools
- Synapse Gaming SunBurn Engine 2.0 – Nice Game Engine loaded with features and the Best Support & Community Ever (Article: XNA to Sunburn)
- Digital Rune Engine – Great Game Engine (physics, animation, math, multi-threading and more. open-source version here and check out the documentation)
- Delta Engine - A fantastic game engine created by Benjamin Nitschke with the mission to create a really easy way to write and convert games to any platform. (home)
- Axiom - a cross-platform 3D engine for .NET and Mono
- Ox Game Engine - a free open source 3D engine for XNA
- Xi Game Engine - an open source 3D engine for XNA with many features
- QuickStart Game Engine - start your own from this library
- Persian Engine -created and adapted for a range of video game genres
- Phoenix XNA 3d Engine - has lots of potential
- Titanium XNA Game Engine - a work in progress
- Tomahawk XNA Game Engine - too many features to list (Nice Engine)
- NOVA - a C# 3D framework with an emphasis on augmented reality
- Innovative Games - simple open-source engine to start with
- BetaCell Toolkit - achieve your objectives more quickly (XNA 3.1)
- X-Engine 2 - a 3D graphics and physics engine (no xbox support :-( )
- Xploit - quickly and easily develop polished 3D games
- Illuminati Engine - an open-source engine created by Charles Humphrey and Nark Neale (more information about it can be found here)
- Temporal-Wars - an XNA indie game engine
- This Is Neat. - a collection of Utility Classes to help make games in XNA a lot easier
- XNA Simple Game Engine - make projects easily with XNA 4.0
- ELSEngine - designed to handle and make interfaces and interface assets
- Graffiti - a high-performance rendering engine built specifically for the Reach profile on top of XNA/ Monogame with a very specific feature set
- Voxel Engine - a Minecraft style terrain engine in C#, SharpDX, SlimDX & XNA 4.0
- LeCotteGame XNA Engine
- C3DE - an 3D engine powered by MonoGame with cool features
- Kailash Engine
Rendering & Graphics
Cameras & Scenes
- XNA Camera - this will help you understand how the XNA camera works
- ArcBall Camera - learn how to create your own arc-ball camera in this blog post by Roy Triesscheijn
- Chase Camera - learn how to create a simple chase camera with spring physics
- Camera Shake - learn how to increase immersion by shaking the game's camera
- Simple FPS Camera - learn how to create a simple First-Person camera in MonoGame
- 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
- Shaders & Effects - learn the difference between pixel and vertex shaders and how to develop your own using FX Composer
- 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
- 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#
- 2MGFXGuiConverter - a drag'n drop shader converter created by Yannick Comte to use with 2MGFX. Convert all your effects without the use of the command line.
- What is Motion Blur? - an excellent article by John Chapman
- Pre-Object Motion Blur - learn about a new motion blur technique
- Motion Blur - learn how to implement a motion blur effect based on GPU Gems 3
- Motion Blur Article - an article originally posted by Sean Hargreaves Blog on MSDN
- Motion Blur Sample - a sample created by Matt Pettineo
- Motion Blur & Independent Transparency - great post by Kosmonaut Games
Lighting
- Basic Effect Lighting - a tutorial by RB Whitaker on creating a basic lighting effect
- Diffuse Lighting - a tutorial by RB Whitaker on creating a diffuse lighting shader
- Specular Lighting - a tutorial by RB Whitaker on creating a specular lighting shader
- Stock Effects - Stock effects provides source code for the five effects (BasicEffect, SkinnedEffect, EnvironmentMapEffect, DualTextureEffect, and AlphaTestEffect), and the default shader used by SpriteBatch (SpriteEffect), built into the XNA Framework. There's also a command-line utility (CompileEffect) that uses the Content Pipeline to compile a .fx source file into a binary blob that can be passed directly to the XNA Framework Effect class constructor.
- Rim Lighting - learn how to implement a rim lighting effect by using the standard graphics effects
- XNA Sun Shader - learn how to create a sun effect in this tutorial by Nicolas Menzel
- Bazier Path Lighting - an experimental extension to traditional Phong point lighting by Luke Thatcher
- Lightning Sample - learn how to create a lightning effect for your games
- Lens Flare
- 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
- XNA Shader Series
- Shader Series Introduction
- 1. Vertex Lighting
- 2. Textures & Colors
- 3. Per-Pixel Lighting
- 4. Materials & Multiple Light Sources
- Shader Series Coordinate Spaces
- 5. Multipass Lighting
- 2D Lighting
- 2D Lightning - learn how to generate shockingly good 2D lightning effects by Michael Hoffman
- 2D Spotlight - learn how to implement a 2D spotlight in XNA created by Vincent. Also, check out a continuation of the 2D lighting here
- 2D Lighting & Shadows - an excellent sample created by Roy Triesscheijn, based off of Catalin Zima's 2D lighting and shadows sample
- Dynamic 2D Lighting - an example using Managed DirectX to perform normal mapping, bloom post-processing, and dynamic shadows in 2D (not XNA)
- Example of 2D Lighting - a great article on a simple way to make lighting for a 2D game
- Penumbra - created by Jaanus Varus, this is an excellent open-source 2D lighting program with soft shadows for MonoGame
- DarkLight - a 2D lighting engine in XNA that allows you to create 2D shadowing effects
- Illuminant - a real-time 2D lighting and particles system library
- XNA 2D Lighting System - a 2D lighting system which supports point lights, spot lights, soft shadows, and colored lights
- Bloom
- Bloom Post-process - learn how to use bloom post-processing filters to add a glow effect over the top of an existing scene
- Bloom Filter - a bloom filter module for XNA and MonoGame which can easily be added (check out this community forum post and more here)
- Bloom Effect - MonoGame community bloom effect forum post
- Deferred Rendering
- Deferred Rendering – Roy Triesscheijn updated Catalin Zima’s Tutorial to XNA 4.0/ (also, check out my blog post here)
- Deferred Engine for MonoGame - a deferred engine created with MonoGame by Kosmonaut Games
- Project Vanquish - a deferred rendering engine, extending on Catalin Zima's deferred engine (check out the video of it in action)
- Ray Tracing
- Ray Tracing - a tutorial by Paul Varcholik
- Realtime Raytracing - an excellent post by John Pile Jr
- rasteracer - a hybrid ray tracer created by Tim Jones (github)
- Simple Ray Tracing in C# - a great tutorial by Anderson Almeida
- MonoGame Ray Tracer - a work-in-progress ray-tracer using MonoGame by Yannick Comte
- 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
- SSAO (Screen Space Ambient Occlusion)
- SSAO Article - check out this article on GameDev.net and see more on Wikipedia here
- Screen-Space Ambient Occlusion (SSAO) - useful next-gen technique
- Ambient Occulsion for Dynamic Objects - excellent article by icefall Games
- digitalerr0r XNA 3.1 Shader Programming Tutorials (GitHub)
- 1. Intro to HSLS, ambient light
- 2. Diffuse Light
- 3. Specular Light
- 4. Normal Mapping
- 5. Deform Vertex Shader
- 6. Simple Ocean
- 7. Toon Shading
- 8. Gloss Map
- 9. Wiggle Post Process
- 10. Invert Post Process
- 11. Grayscale Shader
- 12. Pixel Distortion Shader
- 13. Alpha Mapping
- 14. Transmittance/ Depth Buffers
- 15. Dynamic Environment Mapping
- 16. Refraction
- 17. Point Light & Self-Shadowing
- 18. Multiple Point Lights
- 19. Hemispheric Ambient Light
- 20. Depth of Field
- 21. Transition: Fade
- 22. Transition: Cross
- 23. Blur
- 24. Bloom
- 25. Perlin Noise on the GPU
- 26. Bump Mapping Perlin Noise
- 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
Texture Mapping Techniques
- Normal Mapping - learn how to apply a normal mapping effect to a mesh based on the Custom Model Effect Sample
- Normal Mapping Demo - learn how to demonstrate tangent space normal mapping
- katsbits - create normal maps from 2D textures
- Parallax Normal Mapping - learn how to demonstrate parallax normal mapping
- Parallax Occlusion Mapping - learn a more complex way to make textures pop out
- XNA Parallax Mapping - Here is a sample of using Parallax mapping in XNA using the sample shader provided in the August 2006 DirectX SDK from Microsoft
Reflection
- Real-Time Reflection - learn how to create real-time reflection in your scenes
- XNA 4.0 Dual Paraboloid Reflection Mapping
Plants & Vegetation
- Billboards - learn how to efficiently render large numbers of billboard sprites on the GPU
- Billboards Demo - learn how to draw an alpha blended textured quad that is always facing the camera
- Billboards Demo 2 - learn an alternative based billboarding technique based on the first demo
- Billboards Demo 3 - learn how to add animation to the vertices of the billboard
- Billboards Demo 4 - learn how to render lots of billboards
- Making Trees - a nice brief article by icefall Games
- More Trees & Texture Tricks - an excellent article by icefall Games
- XNA Procedural LTrees - creates natural looking tree models in real-time (Article by icefall Games)
- MonoGame Procedural LTrees - MonoGame version of the Procedural L Trees library converted by Tim Jones
- Vegetation Improvements - great article by icefall Games
- Wind Animation for Vegetation - learn about vegetation animation from icefall Games
- XNA Dynamic Grass - learn how to make grass that moves in response to a character's movement by Jason White. Check out his MonoGame version of the tutorial here: MonoGame Grass
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. Also, take a look at this article which explains the algorithm in-depth. For a similar terrain system which uses chunks, check out his chunked-terrain program. Also, check out magrathea to see his adaptive terrain algorithm applied to full-scale planets
- Chunked-Terrain - created by George Kristainsen, this is a C#/ MonoGame program demonstrating a dynamic, unlimited, procedural terrain demo which can be used to render very large-scale worlds.
- Magrathea - created by George Kristainsen, this program is an open-source dynamic, prodecural 3D full-scale planet demo. Its a scaled up adaption of the Quadtree Terrain project.
- Genesis Engine - created by Eric Lee, this is an open-source experiment with procedurally-generated worlds in XNA/ MonoGame from the ground level all the way out into space.
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!
- HLSL: Water Shader - a water shader created in XNA by Dmitry Timofeev (video)
- Ocean Scene - check out this water shader by Kosmonaut Games
- Water Flow in Portal 2 - by Donghyun Kim
- icefall Games
- Water Part 1 - learn about faking water reflections with fourier coefficients
- Water Part 2 - water shader follow up
- Water Part 3
- Water Waves
- Water Flow Shader - learn how to show water flowing realistically
Shadows
- Avatar Shadows - learn how to cast planar shadows
- Cascaded Shadow Maps - learn how to create this shadow mapping technique (Also look here)
- Deferred Shadow Maps - an open source sample created by Matt Pettineo
- Dynamic 2D Soft Shadows - article by Orangy Tang describing an accurate method of generating soft shadows in a 2D environment
- Dynamic 2D Shadows - implement 2D shadows in XNA
- Shader-Based 2D Shadows - a great sample on 2D Shadows by Catalin Zima
- Shadow Mapping - learn how to implement basic shadow mapping from a directional light
- XNA 4.0 Shadow Mapping Demo - learn how to cast shadows from a light source using filtering to soften the shadows and reduce their aliased appearance
- XNA 4.0 Variance Shadow Mapping - apply any kind of texture filter onto the shadow mapping image to give it an overall smoother look
- GPU Gems
- Efficient Shadow Volume Rendering
- Shadow Map Antialiasing
- Omnidirectional Shadow Mapping
- Generating Soft Shadows Using Occlusion Interval Maps
- Perspective Shadow Maps
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
- Rendering Snow on the Ground - an excellent article by icefall Games
- Steps in Snow - an excellent article by Catalin Zima
Decals
- Decals (Deferred Rendering) - an excellent article by icefall Games
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
- Spine 2D
- Spine Test - This is a quick test solution created by Gareth Williams that combines the Spine XNA runtime with a tile engine to create a simple platform engine. (Video) (Climbing)
- Spine Runtimes - 2D skeletal animation runtimes for Spine (XNA & MonoGame)
- Spine Articles
- Ghost Renderer
- Tweaking the XNA Runtime
- Feedback on the awesome xna runtime
- Rendering Using Only SpriteBatch in XNA
- Handling Collisions with Spine
- Using the XNA Content Pipeline with Spine
- Integrating Spine Runtimes in MonoGame
3D Animation
- Avatar Usage Guidelines
- Avatar Animation Rig - download this model setup for custom avatar animations
- Avatar Animation Pack - a set of animations for your avatar ready for use in your games
- Avatar Animation Blending - learn how to blend between two avatar animations over a fixed period of time
- Animation Blending in MonoGame/ XNA - an excellent demo created by Marko B. Ludolph which handles smooth blending of skeletal animations
- Character Animation - article by icefall Games
- Avatar Multiple Animations - learn how to play two built-in avatar animations at the same time
- Custom Avatar Animation - learn how to load and process a custom animation for your avatar
- Object Placement on Avatar - learn how to attach models to your avatar
- Digital Rune Animation – Support 2D and 3D animation, Incredible skinned animation pipeline
- SGMotion Animation Library – XNAnimation Library integrated with SunBurn
- Communist Games Animation Library – Animation blending, shared skeletons, and more
- XNAnimation Library – Too many features to list. (Check out my posts here) (View Online Documentation)
- XNA Animation Component Library – one of the first animation engines, still awesome
- Simple Animation - learn how to apply simple program-controlled rigid body animation to a model
- Skinned Model Sample - learn how to process and render a skinned character model by using the XNA Framework Content Pipeline
- Skinned Model with Extensions – learn how to extend the skinned model sample by directly accessing and manipulating the positions of specific bones to add three new features.
- Skinned Model MonoGame - learn how to get XNA's Skinned Sample working with MonoGame
- MonoGame Skinned Model Sample - Skinned 3D Model for Monogame
- A Better Skinned Sample - an alternate skinned model sample
- Engine Nine – has an easy to use animation system, for skinned and non skinned models.
- Helium - a fast XNA animation library which has more features than the XNA Skinned model sample created by Zelimir Fedoran
- GoGo-Robot - learn how to define difference animations for different parts of the animation timeline based on the Skinned Model Sample
- Merge FBX Animation Files – hate XNA FBX only uses 1 Take? here’s a solution (Also, see how to fix this from my blog post here)
- Better Animation - METLAB BetterSkinnedSample extended to work with one FBX file with multiple animations.
- Inverse Kinematics Sample - learn to create dynamic animation
- KiloWatt Animation - nice system, fast and save room on file size (also here)
- XNA Multiplatform Animation System - similar to Unreal Animation Editor
- XNA Mixamo Importer - content pipeline tools for importing animated models from mixamo.com
- ColladaXNA - This is an open source collada importer for XNA used to load .dae files (article and git)
- 3D Animation Using Maya - learn the keys to animation in Autodesk Maya
- 3DS Max - learn how to export models from 3D Studio Max for XNA
- XNA Utilities Max Script - learn how to fix FBX models exported from 3D Studio Max with the correct pivot points
- XNA Model Viewer - a program which allows you to load an FBX file and view it in XNA. It's great for testing a model and for seeing all of the bone information
- Model Viewer for MonoGame - an open-source model and animation viewer for MonoGame created by Kosmonaut Games (see more on this blog post here)
Motion-Capture
- Mixamo – need Animation for your Characters?
- CMU Mocap Database - need the largest collection of free Mocap available?
- DIY Kinect Motion Capture Studio | Blender
- Kinect Motion Capture
PHYSICS
2D Physics
- Farseer Physics Engine – a 2D Physics Engine (Farseer Physics Platformer 3.3.1)
- Box2D.XNA – a C# XNA port of Box2D
- Simple 2D Collision - this is an excellent 2D collision for XNA and MonoGame (article)
3D Physics
- 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
- 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
- MonoCollision Framework - a triangle sphere collision framework for MonoGame
- Collision Series
- 1. 2D Rectangle Collision - learn several simple techniques for constraining motion and collision detection in two dimensions
- 2. 2D Per-Pixel Collision - learn how to perform per-pixel collision detection in 2D
- 3. 2D Collision with Transformed Objects - learn how to perform per-pixel collision detection in two dimensions on sprites that use linear transformations such as rotation or scale
- 4. Collision with a Heightmap - learn how to move objects along a heightmap
- 5. Heightmap Collision with Normals - learn how to use information about a heightmap's vertex normals to follow the contour of the terrain
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
- Steering Behaviors in XNA Part 1 - learn about some basic steering behaviors
- Steering Behaviors in XNA Part 2 - learn about obstacle avoidance in this second part
- Steering Behaviors in XNA Part 3 - learn about wall avoidance in this third part
- Steering Behaviors, Obstacle Avoidance – good Example (in spanish)
- Navigation
- Navigation Behaviors - learn how agents move autonomously, that is, behavior that is not calculated
- Waypoint Navigation - learn basic AI navigation using waypoints (2D)
- Path-finding
- Pathfinding - learn how AIs can navigate using three routines
- Bing Maps with Pathfinding - This sample expands on the Bing Maps sample capabilities by combining the Pathfinding sample to enable the tank to drive to markers around the screen by using the streets on the map.
- Sick Kreations - C# Port of Recast/ Detour Navigation Mesh created by Sick Kreations based on this
- Navigation Mesh Pathfinding - a great blog post by John C. Brown on pathfinding
- AStarPathfinding - A-Star Pathfinding Sample Application created by Ben Scharbach
State Machine
- State machine-based behavior models - Good Article, sample old..
- StateMachineXNA - XNA 4.0 port of Bryan Wagstaff's State Machine tutorial
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
2D Particles
- 2D Particles - learn how to draw 2D particle effects using the SpriteBatch
- A 2D Particle System - tutorial by Charles Humphrey
- XNA 2D Particle Engine - a flexible and extensible 2D particle engine in XNA 4.0
3D Particles
- 3D Particles - learn how to implement a 3D particle system by using point sprites
- DPSF (Dynamic Particle System Framework) - tested and approved! Also, check out the source on GitHub. There is also a new git repository for DPSF v3 and you can also download the installer here. Full API documentation is provided in the help file, as well as in the online help documentation. Be sure to check out the demo videos to see it in action.
- Mercury Particle Engine – great engine, has lots of potential. (You can also download it here and be sure to watch the video of it in action)(MonoGame port here
- Nuclex Framework- multi-threaded particle system
- XML Particle Sample for XNA Creator Club – still one of my favorites
- DigitalRune Particles – Very Nice.…
- XNA GPU Particles Tool - helps create particle effects based on the sample shaders in the XNA education catalog.
- Particle Physics - a simple XNA particle physics demo
- ProjectMercury
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
- Keyboard Input Scope Sample - learn how to change the input scope of the on-screen keyboard to one of the many built-in options on Windows Phone
- 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 (MonoGame Source)
- 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 4.0 version)
- 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
- Dynamic Menu - learn how to develop a dynamic user interface that can be created in code or in XML, or a combination of both
- 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
- Making Networked Games - check out this helpful PDF by Shawn Hargreaves
- 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
- ParallelTasks Threading Library- makes it easy to multi-thread your game
- Multi-threading your XNA Game – great article and example
- Designing the Framework of a Parallel Game Engine – just read it
- DigitalRune Engine – Threading Library Included in Engine (RECOMMENDED)
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
- Compiled XNB Content Format - learn how to load .xnb files into a programming environment other than XNA / .NET
GARBAGE COLLECTION & PERFORMANCE
- Performance Utility - learn three tools you can add to your XNA projects for performance tuning and debugging
- Performance Measuring - understand how to utilize the Performance Utility when adding 3D spheres to a scene as they collide with one another
- Performance Tools - Performance tools including graphs to help measure garbage and CPU performance
- Profiling -
- Instanced Model - learn how to efficiently render many copies of the same model by using the GPU to reduce the cost of repeated draw calls
- Speedup Rendering Model - learn a new approach to save processing power and speed up rendering 3D models
- Xbox 360 Best Performance Practices - a great article which discusses ways to improve performance for XNA targeting the Xbox 360 (this article is helpful for less advanced hardware)
- Remote Performance Monitor - a tutorial by stevepro studios on using the Remote Performance Monitor
- Tips & Tricks for MonoGame/ XNA Developers - I highly recommend reading this blog post
- CLR Profiler
- Using CLR Profiler 2.0 with XNA 4.0
STARTER KITS & OPEN SOURCE GAMES
Starter Kits
- NinjAcademy
- Paddle Battle
- Platformer
- Racing Game
- Robot Game
- Role-Playing Game
- Spaceshooter
- Ship Game
- Spacewar
- XNA FPS Starter Kit
- Card Game
- Yacht - This starter kit is a dice game where the player rolls 5 dice in an attempt to create specific combinations.
- Vector Rumble
Open Source Games
- Awesome Game - a top-down racing game Tim Jones along with some of his friends created during a "geekathon" coding weekend
- Bubble Bound
- DSM - a mutliplayer shooter game in XNA 4.0 (See video)
- Dungeon Quest
- Mage Defender Deluxe
- Space Defender - a complete XNA 4.0 game by Ghoshehsoft
- Fuel Cell
- Torq2 - A 3D car game created by Tim Jones
- MonoGame Samples - this includes three sample games: Platformer 2D, Space War and Neon Shooter
- ThirdPartyNinjas
USEFUL EXTRAS AND SERVICES
Fonts
- Font Squirrel – need Free Commercial-Use Fonts for your game?
Art
Textures
- CG Textures - Great resource for vast and high quality textures
- Free Stock Textures - free textures by Paul Wozniak and Eva Sajdak
- TextureMate - Free commercial or non-commercial great quality texture packs
- Creating Photo-realistic Textures - 77 Techniques for creating photo-realistic textures.
- Scratch Brushes - 32 High-Resolution Scratch Brushes in GIMP by ChrisDesign
- Scratch Brush Pack 1 -
- Scratch Brush Pack 2 -
- cgskies - Sky Texture References
- HDR Shop - This is an excellent tool designed to create, view and manipulate High-Dynamic Range images. HDR Shop was also used in the XNA Sun Shader program by Nicolas Menzel to transform from the planet to a cubic representation
Sound Effects
- Freesound.org
- soundbible.com
- bfxr.net - online sound effect creator
- soundsnap - cost varies
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
More
- DigitalRune Math and Geometry Libraries- This comes with the DigitalRune Engine (RECOMMENDED)
- Bob's Track Builder - Create tracks using simple mouse clicks for your racing game
- TexturePacker - An awesome spritesheet creation editor
- Wings 3D - A very useful simple 3D modeling program which is great for beginners. Its both free and open-source (Documentation & Community)
- Helix - a 3D toolkit for .NET
Articles, Blogs, Tips and Tutorials
- Allen Pestaluky - find helpful XNA tutorials
- Alien Scribble Interactive - find helpful XNA and MonoGame tutorials here
- AppWeek - an article by Shawn Hargreaves which utilized some of the App Hub Samples for to help create a game
- Beware of 64 Bits! - the XNA Framework is a 32-bit (see more here)
- Bounding Box - draw an XNA Model bounding box
- Catalin Zima - an awesome game dev blog with tons of tutorials
- Clone of Duty - a first-person shooter developed by Gary Ruddock
- Created by: X - a page by Dean Lunz with XNA example projects and more
- FX Composer Rocks! - an article explaining the benefits of using FX Composer
- Riemer's XNA Tutorials - in-depth tutorials in XNA and DirectX
- Game Developedia – Nice Beginner XNA 4.0 Tutorials
- Tutorials by Robot Foot Games – nice 2D sprite Tutorials
- XNA 4.0 Class Diagrams – extremely useful for programmers
- RoastedAmoeba Projects – Awesome XNA 4.0 Projects
- TileMap and Camera System Tutorial - good article
- XNA Content Pipeline Debugging – helps you figure old those pipeline problems
- Dot Net Perls – Best resource for looking for c# snippets and samples
- Eliminate Garbage with CLR Profiler – optimize you game…
- Gimbal lock free Arcball camera – nice camera tutorial
- How to use Farseer in platform game – Platform Physics Tutorial
- Parallax Starfield – great example of parallax scrolling
- MVC in Games – Model View Controller advantages
- XNA Questions – You may find your answer here
- Sgt. Conker – Lots of News and Resources for XNA
- Communist Games Blogs – Lots XNA 4.0 Code Snippets and practices
- Shawn Hargreaves Blog- He Knows XNA 4.0 Personally
- MyGimpTutorial - Some great tutorials using Gimp (useful for creating 2D backgrounds)
- 10 Tips for Promoting Your Indie Game - excellent tips
- ROE XNA Game Engine Development Series - make a game engine
- Graphics Runner - Kyle Hayward provides some awesome tutorials
- XNA-UK: Randomchaos - Charles Humphrey provides some excellent tutorials
- UnityXNA - XNA and Unity3D developers unite!
- XNA Tutorials - little XNA projects by Tim Jones that he posted on his blog
- The Door Problem - an article originally published by Liz England which helps get across what game designers actually do as well as a mundane example of the roles at a big company
- 3ds Max Model Rigging
- Neon Vector Shooter - learn how to make a twin stick shooter, like Geometry Wars, in XNA by Michael Hoffman
- dhpoware - check out his XNA demo series
- The Danger Zone - great samples for rendering
- Diary of a Graphics Programmer - blog by Wolfgang Engel
- Wireframe Without Z-Fighting - render a wireframe together with a 3D model
- XNA Tutorials - little XNA projects created by Tim Jones
Not XNA Exclusive Articles, but Handy
- General Game Networking – learn more building online multiplayer games
- Game User Interfaces – What players wants
- Nucleus High Level Engine Design – Great Design notes
XNA 4.0 & MonoGame Books
- Building XNA 2.0 Games
- 3D Graphics with XNA Game Studio 4.0
- Beginning Windows Phone 7 Application Development
- Building Your First Mobile Game using XNA 4.0
- Learning XNA 4.0
- Microsoft XNA Framework Edition - Programming Windows Phone 7
- Microsoft XNA 4.0 Game Development Cookbook
- Microsoft XNA Game Studio 4.0: Learn Programming Now! - How to program for Windows Phone 7, Xbox 360, Zune devices, and more
- Microsoft XNA Unleashed - This is a great book on XNA written by Chad Carter. Also, check out the updated source code of the book which works with MonoGame here
- Profressional Windows Phone 7 Application Development
- Programming Windows Phone 7 - A free e-Book for learning Windows Phone 7 coding
- The Complete XNA Game Studio 4.0: An Exploration into the XNA Framework Library
- Windows Phone 7 Game Programming in 24 Hours
- Windows Phone 7 XNA Cookbook
- XNA Game Studio 4.0 Programming: Developing for Windows Phone and Xbox 360 (Online version of the book here)
- XNA 3D Primer
- XNA 4 3D Game Development by Example
- XNA 4.0 Game Development by Example: Beginner’s Guide
- XNA Game Studio Unleashed - This is a link to the book's source code which has been updated to work with MonoGame and Windows 10. See more here
- XNA 3.0 Game Programming Recipes
Are you trying to convert XNA 3.1 projects to XNA 4.0?
- XNA 3.1 to XNA 4.0 Cheat Sheet – Loaded with example of how to convert projects
- Breaking changes in XNA Game Studio 4.0 – things you should know before converting
- 3D XNA 3.1 game to XNA 4.0 – an example -pixel shaders ,xap files, DepthStencilBuffer (fixes)
- XNA 3.1 to XNA 4.0 – RenderTarget2D, renderstate, effectpass, vertexdeclaration (fixes)
- Coverting Between Texture2D and Image – Texture2D FromFile (fix)
- SpriteBatch and custom renderstates – SpriteBatch, SpriteBlendMode, SaveStateMode (fixes)
- Rendertarget changes – RenderTarget2D, GraphicsDevice.SetRenderTarget (fixes)
- SpriteBatch and custom shaders – SpriteBatch Improvement (update details)
- ResolveBackBuffer and ResolveTexture2D - Where are they?
- Effect API Changes - effect.Begin(), passes.Begin() (fixes)
- Effect Interfaces – BasicEffect updates, Built in Types (fixes)
- SpriteBatch and renderStates – fix 3D graphics drawn incorrectly when 2D objects on Screen
- Vertex Data – VertexDeclaration, VertexElements, SizeInBytes, VertexBuffer (fixes)
- Point Sprites – Where are they?
- State Objects – SaveStateMode, SaveStateBlock, RenderState, BlendFunction, (fixes)
- ElapsedRealTime and TotalRealTime – understanding the time changes (update details)
- DrawIntancedPrimitives – mesh instancing, state batching, shader instancing (update details)
- Rendertarget formats – details on backbuffer formats and rendertarget formats
- Reach vs HiDef – things you should know
- New Effects built-in Content Pipeline – BasicEffect, SkinnedEffect, EnvironMapEffect and more
- Viewport Tweaks – Updates to Viewport Objects and properties
- Color constructors – updates to Color
*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
- Indie Gamer Chick – If she likes your game obviously you did something right. Brutally Honest Indie Game Reviews.
- Kobun’s Xbox Indies Page – Xbox Indie Games Recommendations and Reviews
- Armless Octopus – Xbox Indie Game Reviews
- Indie Nerds – Games worth playing
- GameMarx – A site dedicated to Xbox Indie Games (news, reviews, podcasts and more)
- XboxHornet – Loaded with Reviews and Xbox Indie Game Related Articles
- Writings of Mass Deduction – Everyday A New Game Review (seeking the best games)
- 8 Bit Horse - Where 2D Lives
- Indie Game Uprising – Look for High Quality Xbox Indie Games released every season
- Kotaku XboxIndies – Lots of review and Indie game trailers
- GameTrailers Xbox Indie Games – Lots of Xbox Indie Game Trailers
- SFX-360 – Some Xbox Indie Games reviews (not many)
If there are any resources you would like to share or see added to the XNA Developer's Survival Kit, go to the Contact page to reach me. Also, if you have found this page helpful, please comment on my blog post.