XNA 3D Toolkit
2.5 (1 rating)
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.
6 students enrolled
Wishlisted Wishlist

Please confirm that you want to add XNA 3D Toolkit to your Wishlist.

Add to Wishlist

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
2.5 (1 rating)
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.
6 students enrolled
Created by Packt Publishing
Last updated 7/2015
Current price: $10 Original price: $85 Discount: 88% off
1 day left at this price!
30-Day Money-Back Guarantee
  • 2.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • 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
View Curriculum
  • 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.

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.

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.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 36 Lectures Collapse All 36 Lectures 02:16:18
XNA Graphics Overview
4 Lectures 12:33

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

XNA Graphics Profile

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.
XNA Concepts

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.

XNA Graphics Pipeline

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.
XNA Graphics Helper Code
Game Components
3 Lectures 18:01
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.
Creating a Base Camera

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.

Creating a Camera Manager

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

Creating a Free Camera
Graphics and Debugging Components
4 Lectures 13:47
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.
Creating Tool Code

There are times in game development when you don't want to make a model to achieve your result. Simply draw what you want.
Adding a Gimbal and Debug Rendering Capabilities

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.
Adding a Frame Rate Counter and a Reference Plane

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.

Using Preprocessor Directives
Creating Advanced Cameras
5 Lectures 13:08
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.
Introduction to Cameras

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.
Creating an Orthographic Camera

Some games need a camera that just follows the player around. Use a chase camera and let the player drag it around.
Creating a Chase Camera

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.
Creating a First-person Camera

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.
Creating a Third-person Camera
5 Lectures 19:44

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.

Loading and drawing a Simple Model

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.

Adding a Drawing Manager Component

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
Understanding Model Properties

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.
Building an Instanced Model

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.

Building a Model at Runtime
Introducing Shaders and HLSL
5 Lectures 17:50

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.

Getting up to Speed with Shaders

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.
Coding a High-level Shader Language Effect

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.

Managing Shaders

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.

Developing a Simple Shader

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.

Choosing Shader Approaches
Setting up Your First Scene
5 Lectures 26:43

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

Preview 03:51

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.

Preview 05:14

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.

Preview 06:41

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.

Preview 05:31

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.

Preview 05:26
Deploying to Xbox and Windows Phone
5 Lectures 14:32

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.

Getting Ready for Deployment to Other Platforms

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

Deploying to Windows Phone Emulator

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.

Deploying to 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.

Discussing Platform Features and the Kinect Sensor

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.

Taking your Next Steps
About the Instructor
Packt Publishing
3.9 Average rating
4,531 Reviews
36,003 Students
356 Courses
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.