XNA 3D Toolkit

Leverage the power of the XNA Toolkit to build up your 3D graphics engine and dive into the world of 3D graphics develop
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
5 students enrolled
82% off
Take This Course
  • Lectures 36
  • Length 2.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 7/2015 English

Course Description

Using XNA, you can get up and running with 3D graphics development in no time, and you will quickly start developing fun gaming experiences. Developing a 3D graphics engine can be very rewarding when done right; learn how to get an immediate payoff so you can focus on developing your game. This course includes videos on shader development, coding for extensibility, scene construction, and multi-platform game development.

XNA 3D Toolkit will walk you through all the information you need to develop a 3D graphics engine. Along the way, you will learn how to deal with a complex game scene and how to incorporate and work with in-game debugging tools. This is a great series for anyone who wants to get an in-depth view of how to design 3D graphics using XNA.

Starting from scratch, with this course you'll learn all the building blocks needed for developing a cross platform 3D graphics engine. You'll build upon this until you have a sound infrastructure that will allow you to quickly implement the functionality needed for your future games.

XNA 3D Toolkit helps you learn how to effectively work with models, providing you with the ability to go from concept to scene. You'll learn how to display your models many times on the screen without wasting memory, as well as making them look ultra realistic. You will then move on to creating a basic foundation for physics and shaders to get the most out of your engine. Once everything is in place, you'll learn how to add all of your content to a scene to produce a high-quality effect. Lastly, we will ensure that your game is ready for the real world by deploying it to the Xbox and Windows Phone Emulator.

By the end of this course, you should be comfortable using all the tools necessary to start creating your very own 3D video games.

About the Author

Dustin Heffron is an avid gamer and programmer. He has over 8 years of experience programming in various languages and environments including Linux, Windows, embedded systems, and various consoles. He has been working with XNA since version 2.0 and has created everything from 3D military applications to small 2D games. Dustin currently works for Johnson Controls where he creates a variety of tools to integrate with AutoCAD to facilitate the design of HVAC equipment. He is also currently working on a variety of different game projects using Monogame. Dustin has previously helped Packt as a technical reviewer for the book XNA 4.0 Game Development by Example and the video series 3D XNA Game Development by Example.

Larry D. Louisiana has worked as Lead Software Developer at Magenic since 2010. He is a self-taught programmer with a dual bachelor's degree in Biology and Chemistry from Minnesota State University in Moorhead. Larry is an accomplished problem-solver who has published peer-reviewed research in synthetic chemistry. Larry is a Minnesota native who spent his summers working on a family carnival and his winters working in a sawmill. He is an outdoor enthusiast with formal training in forestry and fire fighting. His hobbies include gaming, abstract mathematics, and fishing.

Larry is currently a Software Consultant at Magenic as well as a Microsoft Gold Partner, where his main focus has been developing, architecting, and leading teams of developers working on web and business applications using Microsoft technologies.

What are the requirements?

  • This video is designed to approach the content from the perspective of viewers who have an interest in 3D development and who want to understand a broad range of concepts underlying the process of 3D graphics engine development using the XNA 3D Toolkit.

What am I going to get from this course?

  • Construct a cross-platform solution in Visual Studio to minimize work and maximize reusability
  • Gain an understanding of how to leverage utilities in XNA to write extensible code
  • Develop useful debugging tools for 3D game programming
  • Load and display 3D models using a variety of techniques
  • Create and configure different cameras to view your scene
  • Write shaders in HLSL to create realistic looking scenes
  • Properly set up a 3D game scene

Who is the target audience?

  • To get the most out of this video course, you should have some prior programming knowledge, preferably in C# and .NET. This course is for those who wish to make steady progress using a concept driven learning approach to learn more about XNA and how it can be used to create 3D video games.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: XNA Graphics Overview

Cut down on startup time and complex cross-platform solutions. Learn some of the important architectural and hardware considerations for working with XNA.

There is so much information on XNA, but what is the most important for my game? Learn about XNA to get an understanding of how design influences look and game play.

I have an idea for a great game, and I've made some assets; where do I go from here? Adding content and processing it can be as easy as an out-of-the-box dropdown or as complex as you want to make it. This section talks about both.

I want to start making a game; however, all of the samples out there have a different approach. What works best? Adding a few common functions and classes now will save you a lot of time down the road.
Section 2: Game Components
Every game needs a camera. Here you'll learn how to set up your architecture to share the active camera across the game. You'll also learn how to reduce code and maximize reusability of game components.

I want to write clean, simple, and robust code to manage my game. Using game components and a manager, you can orchestrate how input and control flows inside your game, targeting only the active component.


Make a camera instance so that we can see what we are doing in game

Section 3: Graphics and Debugging Components
As games get developed, minor graphics issues will creep up. To combat this, you will need these tools in game to help you understand what is going wrong.
There are times in game development when you don't want to make a model to achieve your result. Simply draw what you want.
It is easy to get "lost" inside the game and lose track of time. To solve this problem, you implement a reference grid and add a frame-rate counter to see how fast the game is running.

You want to develop one code base but leverage the game-debugging tools. You can use preprocessor directives or conditional attributes to create simple variations to your code base.

Section 4: Creating Advanced Cameras
Not all games are created equally, and some scenarios require different approaches to cameras. Here we devise a number of camera options to give you the ability to choose what will work best in your situation.
Your scene seems to be set up correctly; however, you can't get your character into certain places, or the player seems to get trapped. Use an orthographic camera to see how the models are positioned with respect to the player.
Some games need a camera that just follows the player around. Use a chase camera and let the player drag it around.
You want to make a first-person shooter but you aren't sure how to set up the camera. Set up the camera as an extremity of the "head" of your character.
You want to create the in game feel of an observer to the action without allowing the player to interact with the camera. Use a third-person camera to make it feel like the player is watching the action.
Section 5: Models

Every 3D game needs models but there are so many different models out there. How do you deal with all the variation? Control model variation with a model manager and custom classes.


You want to create a game but you aren't sure if you need a full-scene graph or something lighter. Start with implementing a drawing order manager as a minimal scene graph. As your approach gets more sophisticated, you can modify the drawing order manager to use a scene graph.

You have a bunch of model assets that you want to use in your game but they are not all created the same way. In order to support certain import formats, you will need to have a deeper understanding of the nature of the specific approach needed for each model
You want to have a complicated cave or a whole forest rendered on the screen at once and still have a good frame rate. Use one model and hardware instancing to get the model you want drawn hundreds of times with a minimal impact to performance.

The game you're developing doesn't require a lot of intricate models, and you just want to make them "on-the-fly". Create the models in the game and have finer control over what is happening.

Section 6: Introducing Shaders and HLSL

XNA can only go so far out of the box. If you really want to graphically push your game, you need to learn another language. Learn how XNA leverages HLSL (*.fx) files, how to write them, and what HLSL is all about.

There is a lot of talk about working with shaders, but it all seems so complicated. Here is a straightforward introduction that will work for almost anyone.

Just like other content, you will need to orchestrate how your shaders are loaded and referenced in code. Shaders need to be used on multiple models and under different circumstances; but how is this done? Manage your shaders as a decoupled list and push the complexity into the architecture to make an easy-to-understand solution.


I have an idea of what I want my shader to do, but I'm not sure how to get there. This approach will handle many of the common shader usages, to get you in the position to hot-swap shaders in game.


You have a vision for how you want your models to look and what ambiance you want your game to have, but you're not sure how to get there. Sit down and map out the commonality of your shaders and try to limit truly unique code to support specific effects.

Section 7: Setting up Your First Scene

Games look static and dull without rain, fire, smoke, bullets, and explosions. We include the Microsoft sample to get a smoking campfire.


Games require different models to be placed in different places to make a scene. Using the tools that we've built up, we construct a realistic game scene.


Not all lighting is static in a game level; how do you make a moving light? Here we add a moving light source at the campfire to make a good dynamically flickering fire.


All the samples available show a scene/level defined at compile time. Save the scene/level data to a file and load the file at runtime.


The scene/level has an asset in the wrong place and it needs to be moved. Learn how to dive into the XML and fix problems.

Section 8: Deploying to Xbox and Windows Phone

Projects only compile to support one platform. Here we add multiple projects to support alternative platforms and make modifications to the code specific to each platform.


Windows Game code won't work on a phone without modification. Here we show the modifications needed to get this scene into Windows Phone.


XNA Game Studio needs special help to deploy to the Xbox. We go through the deployment steps in both Visual Studio and on the Xbox 360.


You have a game idea that cannot be realized by using traditional approaches like keyboards, mice, and controllers. Touch and Kinect are wonderful new ways to get input from the user and get them more immersed at the same time.


You've learned about graphics and are ready to go out and make a game, but what should you do next? Learn how you can expand your graphics engine and what are the next steps to making a game.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course