.NET Zone is brought to you in partnership with:

I'm a Jack of all traders but first and foremost a Community Developer and Teacher. I love to rip apart and discover new things and technologies, then break them down and show others how to as well. Father of 4 and maybe just a bit mad as well, I have Monty Python to thank for that. Simon is a DZone MVB and is not an employee of DZone and has posted 73 posts at DZone. You can read more from them at their website. View Full User Profile

Learning Windows 8 Game Development: A Review

01.20.2014
| 4263 views |
  • submit to reddit

The game development landscape, especially for Indies is certainly changing.  With the recent XBOXOne and PS4 console releases show that skills like C++ are still very much in demand, as a fellow Indie this does concern be greatly.  I left my C++ skills in the past once MDX and then XNA were born and the thoughts of going back does intimidate me somewhat.

Learning Windows 8 Game Development

As the book title suggests, this is a Windows8 title, however what is not immediately apparent is that it is a C++ Windows game development title. Yes you can build games in XAML or even in C# with MonoGame and Unity but to get real under the covers multi-platform and highly performing code you are most likely to start looking into C++, so let’s see what this book gives us.

The author of this book “Michael Quandt” is actually an old friend of mine back from the days when XNAUK ruled the world of XNA (at least in the UK if not the WORLD, lol), all comrades together in a managed world, then the world ended.

C++ is an essential tool for any serious game developer especially if you want to get a job in a game studio or middle-ware company and newer consoles generally only support C++ as a development language. However this book is primarily aimed at C++ in the Windows 8 world, this means not just learning about DirectX graphics / math and operations but also how to cooperate in a Windows 8 environment (aka WinRT) and make use of all the shiny platform features that Windows 8 has to offer such as Charms, Sharing, Networking and much much more.

If you have also read my “other” post about XboxOne development you will know that having the knowledge and ability to create C++/DirectX games in Windows 8 will get you 90% of the way there for publishing your own Indie title on the XboxOne Open-mouthed smile , so by the end of this book not only will you e building for Windows8 and DirectX but you will have a head start on XboxOne development as well.

*Note, this book is NOT a “Learning C++” book, some previous experience for how to program in C++ is required. If you are already experienced in game development you will still be able to follow and pick up some C++ as you go but, to get the full benefit of this title you are better getting some C++ under your belt first.  Personally I like to learn on the job but that is just me Open-mouthed smile

Here’s a brief run through what all the chapters are and what to expect from them:

Chapter 1 “Getting Started with Direct3D”

In the beginning there was a flash of light and in this case the turning on of the lights, this chapter starts at the very beginning of DirectX development and walks you through everything you need to know to start a new DirectX/C++ project up and running using the built-in Visual Studio templates.  It is nicely laid out explaining all the major components of the graphics pipeline and the realisation of the game loop.  Those familiar with previous game development will recognise a lot of the content and easily be able to translate it from what they understand currently but in a C++ light.  There is more to know and understand and this chapter does a very good job at easing you in to the new driving seat.

For newcomers it is just as easy with all the basic elements of game development programming being laid out bare, even the naughty bits.

Chapter 2 “Drawing 2D Sprites”

A short step from getting your project running is to get something actually drawn to the screen and this next chapter eases you in by walking you through how to get sprites and textures drawn on your new graphics drawing surface.  Nothing to heavy and it is only 2D but it is essential to get these basics down before moving on to harder subjects.

This chapter also introduces you to opensource frameworks such as DirectXTK which make the job of loading, drawing and batching assets in your project.

Chapter 3 “Adding the Input”

Computer systems always seem to have lots of methods for input these days and the list is ever increasing.  This chapter goes over all the necessary components for getting input systems to work on Windows 8 and how to manage them effectively within your game.  It even covers some of the common tips and tricks to handle tricky situation with input such as deadzones with gamepads.

Chapter 4 “Adding the Play in the Gameplay”

A framework and input system is all well and good but what about the game itself, here Michael walks you through structuring your game and accounting for things like managing game object, working with collision systems and how to improve on your rendering pipeline to make it even more efficient.  It is always essential, no matter what platform you are building on, to get your game architecture right and performing well so this is a welcome addition to this book.

Chapter 5 “Tilting the World”

Extending from chapter 3, here the book goes over some of the more advanced input systems available on Windows 8 including the accelerometer, gyroscope, compass and inclinometer (granted so long as your device supports them). These are accessed and operated slightly differently to other input systems, usually because they need to be spun up and managed in a different way.  Although the book doesn’t cover it, you could use the approaches discussed in this chapter for other advanced sensors such as the Kinect.

Published at DZone with permission of Simon Jackson, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)