Three Paths …


Windows 8 Game Development

This article which is a digest of the Build talk 3-107 : Chas Boyd : Core technologies for Windows 8 games, will help you catch the high brush stroke concepts to help you get started in the wonderful world of Windows 8 game development. There are three main paths that one can take into Win8 game development:

A little bit of “trivia” is that the latin root for “trivia” means effectively ‘3 roads meet’ (reference)

  • JS/HTML app
  • C# or C++ with XAML
  • DirectX with C++

WNeed to choose or make a decision? A nice reference to help you make the decision can be found Here, but in a more general sense, as you move down the list you get into higher performance, and lower latency (but perhaps more work) ref.

Javascript

Javascript game development is done using UI and layout in CSS/HTML while gameplay is done in an HTML5 canvas, leveraging JavaScript to access WinRT API’s, including game controllers, video, audio, and networking (via C++). This approach is best for things like:

  • Social games
  • Arcade games
  • Sprite games
  • Puzzles
  • Adventure games
  • Card games
  • Board games

XAML

Not exactly suited to games in general (personal experience), because of the event driven control model, however XAML is really good at buttons, labels and panels, making it good for displaying in game controls and information. This approach is best for things like:

  • In-game data display
    • HUD
    • Text
  • In-game controls display
    • button pads
    • store fronts
  • Tile Layout

DirectX

Very high performance, has a higher learning berrior. However C++ will tune performance, so it would be the best option if you intend for your game to work across a large number of hardware profiles.  This approach is best for things like:

  • High performant use cases
    • Streaming and modifying camera video
    • Rendering detailed scenes
  • Adding or using shaders
    • only way to have shaders in Win8
  • Adding or using Models
    • only way to have a model in Win8
  • Basically all your graphics needs
  • Can be used to modify audio on the fly
  • Fairly uniform across devices (minimum profile at least)

.Net vs WinRT

The runtimes are the foundation for programming, all of the managed languages are still using the .Net runtime. WinRT is based on .Net, however it has modifications which make it better for native execution. the managed languages can call into WinRT. If your going to be using COM objects then you want to use WinRT, this means if your doing DirectX you live inside the WinRT.

ThreadPool

The thread pool does not allow for high granularity of control, however verses the old model of CreateThread results in a nominal (~5%) change over a well architected solution. The ThreadPool object is designed to work well on the newest version of processers. If you really need to operate from the CreateThread paradigm then you can read more about that here. Here are some relevant links:

Roaming

Roaming is the idea that the Windows 8 experience is uniform and consistent across devices for a user, meaning that what i have access to on my phone should be just like what I have access to n my PC or tablet (on in some cases Xbox). You also need to keep in mind that each platform has it’s own set of user interface paradigms. Roaming is discussed in more depth here.

Down Loadable Content

You can now download additional content !

void myGame::OnActivated(CoreApplicationView^ applicationView, IActivatedEventArgs^ args)
{
     CoreWindow::GetForCurrentThread()->Activate();
     if(args->Kind == ActivationKind::File)
     {
          auto item = safe_cast<FileActivatedEventArgs^>(args)->Files->GetAt(0);
          if(item->Name == "texturepack.MyGame_wad")
          {
              safe_cast<StorageFile^>(item)->CopyAsync( ApplicationData::Current->LocalFolder, "data.wad",  NameCollisionOption::ReplaceExisting );
          }
     }
}
Advertisements

About Larry Louisiana

I'm a Microsoft Partner Consultant.
This entry was posted in Computers and Internet, Game Development, Programming, Uncategorized and tagged , , , , , , , , , , , . Bookmark the permalink.

2 Responses to Three Paths …

  1. Pingback: Designing Games or Windows 8 Digested | Ely Bob's space

  2. Pingback: Breakdown of Windows 8 Games Topics Presented at //Build/ | Ely Bob's space

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s