Le Post Infeeny

Les articles des consultants et experts Infeeny

Windows Phone 8: Native C/C++ Game Development

Le but lors du développement de Windows Phone 8 était de conserver le support des jeux existants fonctionnant avec XNA tout en réduisant le coût nécessaire aux développeurs de jeux vidéo pour cibler Windows Phone. Afin que cela soit possible la création d’un accès au code natif et à Direct3D a été faite. En effet, un certain nombre de jeux existant sur les plateformes concurrentes sont développée en utilisant des bibliothèques C++ open sources très répandues. L’impossibilité d’utiliser C++ sur WP7 limitait fortement l’adoption de la plateforme. L’adoption de C++ permet aussi l’interaction avec des middlewares existants.

La plateforme de développement de jeux-vidéos pour WP8 est alignée avec celle de Windows 8. On y retrouve la même API, le support de D3D11.1 de XAudio etc…

Le support des achats In-App est aussi de la partie.

Lors de cette session on a eu le droit à une démonstration de Havok depuis l’édition d’un niveau sur le PC jusqu’au déploiement

Il existe deux modes de développement utilisant Direct3D. Le premier est intégré est du Direct3C C++ pur, le second consiste à intégrer Direct3D dans XAML.

D3D Application Model :

  • C++ seulement
  • Accès l’API WP8 Direct3D
  • Réutilisation de code C++ aisée
  • Supporte les évènements liés au cycle de vie de l’application WP8

XAML Application Model :

– DrawingSurface

  • Utilise un swap chain ce qui pose des problèmes de performances
  • Peut-être utilisés partout dans l’application

–  DrawingSurfaceBackgroundGrid

  • Doit être l’élément racine de la page
  • Pas de swap chain.

Comment choisir entre les deux modèles ?

XAML App si on a besoin d’accéder aux live tiles, notifications, background agents et au XAML. Direct3D si on a besoin d’une performance absolue et qu’on n’a pas besoin de tout ce qu’offre XAML.

L’API Direct3D supportée est la version 11.1 et tous les appareils supportent un niveau de fonctionnalités Direct3D de 9.3.

C’est un subset de Windows 8 et donc les composants Windows Imaging Components (WIC), Direct2D et DWrite sont absents de Windows Phone 8 que l’on peut essayer de remplacer avec DirectXTex (http://codeplex.com/directxtext).

Certaines fonctionnalités historiques ont été supprimées mais peuvent pour la plupart être remplacées par le DirextX Toolkit (http://codeplex.com/directxtk) :

  • GDI
  • D3DX
  • Fixed Function
  • Runtime Shader Compilation

Vidéo et son

Pour la gestion du son le moteur IMFMediaEngine a été présenté, il est basé sur COM et supporte les opérations Play, Pause, Stop, Loop et Seek. Ce même moteur est utilisé pour la gestion des rendus vidéo coupés (Cut Scene Rendering). Il supporte les formats RGB et NV12.

Réseau

Pour la partie réseau on retrouve les Sockets TCP (SSL supporté) et UDP. Le Peer Finder qui permet de retrouver des devices/applications proches en Bluetooth ou NFC est aussi présent. XmlHttpWebRequest2 est lui aussi de la partie. En plus de tout ça on retrouve WinSock qui a été inclus afin de permettre aux développeurs d’utiliser les nombreuses bibliothèques open source qui en font usage.

Launcher et choosers supportés

  • MarketPlace Details Page
  • Application Review Page
  • MarketPlace Search
  • Launch Browser
  • Launch Connection Settings
  • Lauch Email Compose
  • Sharing : Social Networks, Email, Sms
  • Choose a photo

Session très intéressante et parfois un peu haut niveau. Il faut s’accrocher 🙂

John

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :