Skip to content

Votre projet Universal Windows Platform (UWP) et Monogame sur Xbox One

Posted on:21 octobre 2016 at 02:00

Depuis la mise à jour Windows 10 Anniversary Microsoft offre la possibilité de développer des applications Universelles Windows 10 sur Xbox One. Nous allons donc voir dans cet article comment faire, ainsi que les choses à savoir.

Les prérequis

Je vais vous faire une liste des prérequis pour le développement sur Xbox One :

Ce qu’il faut savoir

Nous allons dans cet article faire un projet Universal Windows Platform (UWP) avec Monogame dans l’optique de la réalisation d’un jeu vidéo. Cependant sachez que si vous souhaitez le publier sur Xbox dans le futur il vous faudra passé par le programme ID@Xbox. Pour une application simple il vous suffira, sur votre tableau de bord de cocher lors de votre soumission la case Windows 10 Xbox, pas besoin de manipulation supplémentaire.

Activé le mode Dev Kit sur Xbox One

Pour pouvoir coder sur notre Xbox One il va nous falloir installer le mode de développement sur la console via une application du nom de Dev Mode Activation. Pour cela la seule contrainte est de ne pas faire partie du programme Xbox preview. Pour que la démarche soit la plus simple possible je vous ai fait une vidéo.

Je vous conseille aussi d’ouvrir cette page en étant connecté avec votre compte développeur. Il vous faudra rentrer un code d’activation qui vous sera donné par votre Xbox One. Le redémarrage de votre console peut prendre un certain temps pour la première activation, une fois effectuez, vous vous retrouvez devant cette interface (voir image ci-dessous). Bienvenue sur le Dev Home de la Xbox One !

Xbox One dev

Tour d’horizon des paramètres du Dev Kit.

Comme vous pouvez le voir à droite du dashboard de la Xbox il y a un tile du nom de Dev Home, ouvrez-le. Ceci est votre HUB concernant les paramètres et les fonctionnalités disponibles sur le kit de la console.

Dev kit

Chose importante que je vais expliquer de suite c’est comment quitté le Dev mode. Pour cela dans l’application Dev Home vous retrouverez un onglet Console settings puis tout en bas un petit bouton Leave dev mode. Je préfère vous le dire tout de suite, car un redémarrage de la console vous ramènera sur le mode développeur si vous n’effectuez pas cette manipulation. Pour revenir dans le mode développeur dans le futur il vous suffira de lancer l’application Dev Mode Activation.

Device Portal pour Xbox

Le Windows Device Portal vous permet d’avoir accès à une multitude d’information en lien avec votre appareil sur votre ordinateur via une page web hébergée en local. Cette fonctionnalité est aussi disponible pour Hololens.

Cependant par défaut votre Xbox de développement n’est pas connecté à votre réseau si vous êtes en WI-FI (pas de soucis via Ethernet).

Maintenant dans le Dev Home sélectionner le menu Manage Windows Device Portal et rentrer y le nom de compte et le mot de passe de votre choix. Une fois cette opération effectuée, aller à l’adresse suivante sur votre ordinateur avec votre navigateur web préférer https://xboxone:11443/. Un problème du certificat sera affiché, ignorez-le. Vous devriez avoir quelque chose de semblable :

Device Portal

Je vous laisse faire le tour, le plus important réside dans l’onglet “Performance”. Celui-ci vous permet d’avoir une multitude d’information concernant la consommation (RAM, GPU, CPU) de votre programme, son évolution dans le temps. Le “Media capture” vous donne aussi la possibilité de faire des captures d’écran de votre console.

Pour la suite il vous faudra être connecté à votre Xbox One version développeur avec votre compte Microsoft possédant une licence développeur valide. Vous pouvez soit le faire de façon traditionnel sur la console ou alors dans l’onglet “Xbox Live” et Add user sur le Xbox Device Portal.

Création de notre application est déploiement sur Xbox One

Installation de Monogame

L’installation de Monogame sur Visual Studio se fait très simplement. Rien de plus qu’un installateur qui ajoutera des templates et qui s’occupera du téléchargement des librairies nécessaires. MonoGame 3.5 pour VisualStudio.

Création du projet

Maintenant dans Visual C# -> Monogame vous devriez retrouver une multitude de template pour projet. Pour notre Xbox One il nous faudra simplement un “MonoGame Windows 10 Universal Project”. À savoir que celui-ci est compatible Windows 10, Windows Mobile, Xbox One et Hololens !

Je vous laisse compiler le projet sur votre ordinateur via le bouton “Local Machine” ou F5. Vous devriez avoir une superbe fenêtre vide avec un fond bleu. Voilà votre premier projet de jeu en C# / MonoGame en application Universelle Windows 10 :). Enfin bon, sur PC c’est cool mais rien d’extraordinaire jusqu’ici.

Et bien je vous rassure, la suite ne va pas non plus être compliquée. Sur votre console aller dans Dev Home, vous trouverez une zone nommée “Visual Studio” avec à l’intérieur un bouton du nom de “Pair with Visual Studio”. Appuyer dessus et vous verrez afficher un code.

La suite est très simple, sur Visual Studio dans la liste des périphériques (voir image) disponibles pour le build de votre projet sélectionner Remote Connections. Une fenêtre devrait s’ouvrir avec votre Xbox One disponible dans la section “auto Detected”. Cliquer dessus puis “Select”. Maintenant relancer la compilation de votre projet, le fameux code pin que votre Xbox vous à précédemment donnez-vous est demandé, rentrez-le. Votre projet est maintenant en cours de déploiement sur votre console de jeux et après quelques minutes d’attente votre application devrait s’ouvrir !

Remote for Xbox

Malheureusement je pense que vous avez remarqué qu’il existe une bordure “blanche” qui vient gâcher le tableau ainsi qu’un curseur au milieu de notre fenêtre. Pour corriger ses problèmes il vous fait ajouter les lignes de codes suivantes (regarder bien le nom du fichier) :

GamePage.xaml.cs

public GamePage()
{
    this.InitializeComponent();
    ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow); //Supprime les bordures

    // Create the game.
    var launchArguments = string.Empty;
    game = MonoGame.Framework.XamlGame<Game1>.Create(launchArguments, Window.Current.CoreWindow, swapChainPanel);
}

App.xaml.cs

public App()
{
    this.InitializeComponent();
    this.RequiresPointerMode = ApplicationRequiresPointerMode.WhenRequested;
    this.Suspending += OnSuspending;
}

Recompiler et voilà votre premier jeu sur Xbox One !