Windows 8 Metro Style Gaming

Next week I will be at the Develop Conference, attending some of the 103 sessions, 5 keynotes, and on the Microsoft stand at the Expo. I’m looking forward to networking with the 1500 developers and 450 companies during the event and discussing the opportunity of developing Windows 8 Metro Style games.

develop

On http://msdn.microsoft.com/en-us/library/windows/apps/hh452780.aspx we list options for developing Windows 8 games.

At present there are over 50 games available in the store using the above technologies, here are some good links to get started

· Metro style app using JavaScript. You can use the established web technologies: HTML5, CSS3, and JavaScript to develop full-screen, chrome-free games.

Slide2

http://bit.ly/metroGamesJS

· Metro style app using C++, C#, or Visual Basic and XAML. You can use managed code languages like C# and Visual Basic to develop 2D (and lightweight 3D) games. If you have developed in Silverlight for Internet Explorer or Windows Phone 7, this model will feel very familiar.

Slide1

http://bit.ly/metroGames

· Metro style C++ with DirectX. You can develop both 2D and 3D games that effectively use the graphics processing horsepower on a range of Windows desktops and 3D-enabled Windows devices, from high powered gaming rigs to low power slates. It requires a strong working knowledge of Windows programming and native C/C++.

Slide3

http://bit.ly/metroGamesDX

Tutorials

C++/Direct3D

There are a number of online tutorial around Marble Maze which is a DirectX game written in C++. This leads you to the more basic “Hello World” example over here although while the results of that example are “Hello World” in nature.

There’s another, more realistic sample over here with a walk-through to build up a Metro style shooting game. It takes the form of a completed code sample and a walk through of what’s going on in that sample.

It runs to around 40 source files.

The key learning outcome for starting to build games for Metro are as follows as these would make excellent starting points for curricula development for Developing Metro Style Games.

1) Understanding how a Metro style app gets on the screen – i.e. the infrastructure around IFrameworkViewSource and IFrameworkView.

2) Understanding C++/CX which is a bunch of C++ extensions relatively familiar to people like me who’ve come from the C++/CLI world but a bit odd to a regular C++ developer.

3) Understanding some of the technologies used like the Parallel Patterns Library (PPL) which our default templates throw at you.

4) Understanding some of the C++ 11 techniques like lambdas which our default templates also throw at you.

5) Understanding how a Metro style app is meant to work from the point of view of lifecycle management (i.e. suspend/resume/terminate).

6) Understanding the WinRT APIs available and their main usage and purpose.

Steps 5 & 6 are common to any Windows 8 Metro style app developer.

JavaScript

There is a JavaScript tutorial but the game involved is very, very basic.

Frameworks

As we are all aware, there are many game engines /frameworks (middleware) available. Some of these are already supporting development for Win 8 metro games whilst others are planning to support it within the coming months. I have listed the ones which are or have short terms plans to support W8 metro apps. I am sure that there will be more to come…

Unity

http://unity3d.com/

A full games development tool/suite – physics, rendering, scripting, AI etc.

Windows 8 Metro support:                         coming soon (for GA)

Dev languages:                                                 (game scripting) C#, Javascript

MonoGame

http://monogame.codeplex.com/

An Open Source, OpenGL implementation of the Microsoft XNA 4 Framework

Windows 8 Metro support:                         coming soon (‘later this year’)

Dev languages:                                                 C#/XNA

SharpDX

http://sharpdx.org/

SharpDX is an open-source project delivering the full DirectX API under the .Net platform, allowing the development of high performance game, 2D and 3D graphics rendering as well as realtime sound application.

Windows 8 Metro support:                         Now

Dev languages:                                                 C#