Effectuer un portage sur la Switch, comment ça se passe ?

Au mois de mars dernier, j’ai interrogé plusieurs développeurs indépendants pour Numerama, au sujet de la programmation et du portage de leurs jeux sur la Nintendo Switch. Cet article est une sorte d’annexe dans laquelle je choisis de publier les interviews qui me se parvenues tardivement et que je n’ai pas pu intégrer dans mon article. Les développeurs de Monster Boy and The Cursed Kingdom ont ainsi chaleureusement répondu à mes questions. Merci à eux !

Cyrielle Maurice
5 min readMay 8, 2017

Dans un premier temps, pouvez-vous resituer comment se passe de manière générale le développement sur des architectures consoles ? Quelles différentes y’a-t-il avec le fait de développer sur PC (moteurs, kit de développement logiciel, langage particulier ? etc.) et de développer sur une console ?

Développer sur PC ou console est fondamentalement identique. Les cycles de développement est similaire : il y des données à exporter, un programme à compiler puis à déboguer. Les grosses différences sont plus dans les détails : les API (Application Programming Interface) sont différentes (la plupart du temps), les architectures peuvent être différentes et certaines directives sont à suivre.

Le PC permet de développer n’importe quel langage de programmation alors que sur les consoles il nous est imposé : c’est le c/c++ que l’on retrouve chez les 3 grands constructeurs (Nintendo, Sony, Microsoft, ndlr). Il est aussi possible avec Unity de faire uniquement votre jeu en C#.

Chez Game Atelier nous avons notre propre moteur du coup nous travaillons en c/c++. En ce qui concerne les autres moteurs, le choix est plus restreint sur console que sur PC et le développeur est par conséquent contraint d’attendre que leur moteur de prédilection fonctionne sur la console ciblée.

Les consoles ont des architectures bien définies, il est possible de produire du code spécifique et optimisé alors que sur PC il faut prendre en compte toutes les différentes combinaisons de hardware et produire du code plus “générique”.

La Switch a la particularité de se vouloir très polyvalente et “modulable” : branchée à la télé, en mode tablette avec les manettes attachées ou détachées, l’éventualité d’un double écran… Cela a-t-il changé votre façon de penser votre jeu, comment il se jouait ? Sur le plan de l’ergonomie, ou de l’économie de batterie est-ce que ça a changé quelque chose ?

Certes le fait que la Switch soit une portable nous fait réfléchir à comment nous pouvions économiser la batterie, mais pas seulement. Les deux points qui nous ont le plus fait réfléchir sont comment nous allions utiliser le rumble HD et comment nous devions gérer le changement résolution entre le mode docked et le mode portable.

Mais au niveau de la jouabilité le jeu sera identique sur toutes les plateformes.

Est-ce que, justement, vous vous êtes posé beaucoup de questions de ce type en découvrant la console et ses spécificités ? Vous aviez des inquiétudes particulières ? Nintendo s’est-il montré rassurant, avenant, accueillant sur ces questions ? Si vous aviez des questions techniques, pouvaient-ils vous répondre ?

La première question que nous nous sommes posé c’est si la console pouvait faire tourner le jeu sans concession en 1080p, ou si il nous fallait réduire la résolution du jeu ainsi que de ses ressources. Mais notre rencontre de présentation avec l’équipe de Nintendo nous a rassuré. Puis à l’arrivée du kit de développement nous avons porté rapidement le jeu. Bien sûr nous avons dû prendre un peu de temps pour l’apprivoiser comme à chaque fois que nous découvrons une nouvelle machine, mais les équipes de Nintendo ont répondu à nos questions très rapidement et nous ont permis d’avancer au mieux.

En termes de composants, êtes-vous satisfait de ce que vous propose la Switch ? Est-ce que vous avez dû revoir quelques utilisations de ressource à la baisse (ou au contraire à la hausse peut-être) ? Comment ça se passe au niveau du moteur physique ?

Au niveau performance Monster Boy tourne très bien sur la Switch, et ce dès les premières versions. Il nous a fallu surtout mieux optimiser l’agencement de nos textures mais c’était également nécessaire pour toutes les autres plateformes.

Notre jeu n’a pas vraiment de moteur physique à proprement parler, mais le code qui s’occupe de ca est strictement identique à celui utilisé sur PS4 et sur Xbox One.

Quelle comparaison pouvez-vous faire avec le développement sur des consoles comme la PS3/PS4 ou la Xbox 360/Xbox One ? Comment qualifieriez-vous le SDK de Nintendo ?

Nintendo à fait d’énorme progrès par rapport à ses précédents SDK. À vrai dire tous les trois se valent à présent et fonctionnent comme des plugins de Visual Studio. Le tout étant très bien documenté. Il est vraiment facile de développer sur Switch.

Qu’en est-il du comparatif entre la Switch et les autres consoles de Nintendo ? (aussi bien Wii/Wii U que 3DS)

Nintendo à fait d’énormes efforts par rapport à la Wii U. On est passé d’outils assez confidentiels à des outils que nous avons l’habitude de voir sur d’autre plateformes. Du coup nous perdons moins de temps à devoir maîtriser les outils et plus de temps à développer le jeu.

Après cette expérience, pensez-vous que la Switch pourrait être une nouvelle plateforme propice aux studios indés ?

Oui, je pense que la Switch est une nouvelle plateforme propice aux studio indés. Ils y retrouveront une architecture assez semblable à d’autres plateformes mobiles et ils auront le droit à un SDK vraiment facile à utiliser et du support de Nintendo.

Y a t-il une caractéristique de la Switch que vous avez trouvé vraiment novatrice par rapport aux consoles de la current gen ?

Les vibration HD est vraiment la nouveauté qui nous emballe le plus. Cette technologie permettra d’envoyer plus d’infos utiles au joueur sans qu’il ait à regarder l’écran. Par exemple la stéréoscopie permettra de ressentir si une explosion a eu lieu à gauche ou à droite de l’écran.

--

--

Cyrielle Maurice

Des fois je tape sur mon clavier et ça fait des mots. Journaliste jeux vidéo @Numerama. mail pro : cyrielle@humanoid.fr