I. Introduction

GestureWorks Gameplay est une nouvelle façon révolutionnaire pour interagir avec les jeux PC populaires. Le logiciel Gameplay pour Windows 8 permet aux joueurs d'utiliser et de créer leurs propres contrôleurs virtuels pour le toucher, qui recouvreront les jeux PC existants. Chaque contrôleur virtuel ajoute des boutons, des gestes et d'autres contrôles qui vont correspondre aux entrées interprétées par le jeu. De plus, les joueurs peuvent utiliser des centaines de gestes personnalisés pour interagir avec l'écran. La collaboration entre Intel et Ideum a permis d'accéder aux technologies et aux ressources techniques pour réaliser une surcouche pour le toucher et le support du 2 en 1 dans Gameplay.

Regardez cette vidéo d'une minute qui explique le concept de Gameplay.

Image non disponible
Figure 1 - Gameplay en action sur une tablette embarquant un Intel Atom

II. Ce ne sont que des contrôleurs virtuels

Contrairement aux traditionnels contrôleurs, les contrôleurs virtuels peuvent être entièrement personnalisés et les joueurs peuvent même les partager avec leurs amis. Gameplay fonctionne sur les tablettes Windows 8, les Ultrabooks, les PC portables 2 en 1 et les tout-en-un et même les tablettes multi-tactiles et les larges écrans tactiles.

« Le contrôleur virtuel est réel ! Gameplay étend la centaine de jeux PC qui ne sont pas compatibles avec le toucher et les rend jouables sur la toute nouvelle génération de périphérique portable », d'après Jim Spadaccini, directeur de Ideum, le développeur de GestureWorks Gameplay. « Mieux qu'un contrôleur physique, les contrôleurs virtuels de Gameplay sont personnalisables et éditables. Nous sommes impatients de voir ce que vont faire les joueurs avec Gameplay. »

Image non disponible
Figure 2 - l'écran d'accueil de Gameplay

Plusieurs douzaines de contrôleurs virtuels pour les jeux Windows populaires sont intégrés à GestureWorks Gameplay (actuellement il y a plus de 116 titres uniques). Gameplay laisse aussi la possibilité aux utilisateurs de configurer, agencer et personnaliser les contrôleurs existants. De plus, le logiciel intègre un outil de création facile à utiliser reposant sur le glisser/déposer permettant de fabriquer son propre contrôleur virtuel pour la plupart des jeux Windows distribués sur Steam.

Image non disponible
Figure 3 - la vue d'un contrôleur virtuel

Les utilisateurs peuvent placer des joysticks, des croix multidirectionnelles, des interrupteurs, des roulettes et des boutons n'importe où sur l'écran, et aussi modifier la taille, l'opacité et ajouter des couleurs et des noms. Les utilisateurs peuvent aussi créer de nombreux agencements qu'ils peuvent alterner à n'importe quel moment dans le jeu. Cela permet à l'utilisateur de créer des vues uniques pour les différentes activités dans le jeu telles que des agencements spécifiques au combat ou à l'inventaire dans un RPG.

Image non disponible
Figure 4 - vue globale des gestes du contrôleur virtuel

Grâce au moteur de gestes de GestureWorks, aussi connu sous le nom de GestureWorks Core, Gameplay fournit un support de plus de 200 gestes. Les gestes de base comme le taper, le déplacement, le zoom et la rotation sont supportés par défaut mais sont aussi personnalisables. Cela permet d'étendre les contrôleurs de toucher et donne aux joueurs un accès aux gestes multi-touch pour ajouter des contrôles dans les jeux PC. Par exemple, certains mouvements de combat peuvent être activés avec un simple geste au lieu d'un appui sur un bouton dans un FPS. Gameplay inclut même un support expérimental des accéléromètres vous permettant de conduire en inclinant votre Ultrabook™ ou votre tablette dans un jeu de course et il détecte aussi lorsque vous changez le mode de votre périphérique 2 en 1 afin d'activer les contrôleurs virtuels.

III. Les défis rencontrés durant le développement

Développer toutes ces superbes choses n'a pas été facile. Pour rendre la vision de Gameplay réelle, plusieurs défis techniques ont dû être surmontés. Certains d'entre eux ont été résolus avec des méthodes de programmation standards alors que d'autres ont nécessité des solutions plus innovatrices.

III-A. Support de la transition des 2 en 1

Au début du développement de Gameplay, nous avons décidé d'inclure un support basique de la transition des 2 en 1 (passer du mode clapet au mode tablette) disponible sur certains nouveaux Ultrabooks. La vision était de s'intégrer au jeu, comme d'habitude, mais de ne pas afficher la surcouche s'il était lancé en mode clapet. Puis, au cours du jeu, si le système passait en mode tablette, la surcouche du contrôleur virtuel de Gameplay doit apparaître immédiatement pour permettre un contrôle du jeu avec le toucher uniquement. Vous pouvez voir cette fonctionnalité en action sur n'importe quel contrôleur virtuel en exécution sur un Ultrabook avec le support du 2 en 1. Dans l'édition du mode du contrôleur virtuel, activez le support de la transition de mode des 2 en 1 dans la section expérimentale de l'onglet des paramètres.

Image non disponible
Figure 5 - paramètres des contrôleurs virtuels

Pour ceux qui sont intéressés par la détection de la transition de mode des 2 en 1, il y a un excellent guide avec une application d'exemple listé dans la section des références.

III-B. Injection de DLL

DLL Injection

La méthode d'injection de DLL est utilisée pour exécuter du code dans l'espace d'adressage d'un autre processus en le chargeant à l'aide d'une bibliothèque externe. Bien que l'injection de DLL soit souvent utilisée par des programmes externes pour des raisons malfaisantes, il y a de nombreuses applications légitimes, incluant l'extension de comportement d'un programme d'une façon non prévue ou non voulue par les auteurs. Avec Gameplay, nous avions besoin d'une méthode pour insérer des données dans le thread d'entrée du processus (le jeu) en cours afin que les événements de toucher puissent être traduits en entrées que le jeu pouvait comprendre. Parmi la myriade de méthodes pour implémenter l'injection de DLL, Ideum a choisi d'utiliser l'appel d'intégration de Windows SetWindowsHookEx. Finalement, Ideum a préféré utiliser une intégration par processus plutôt qu'une intégration globale pour des raisons de performances.

III-C. Lancement des jeux à partir d'un lanceur tiers

Deux méthodes ont été explorées pour s'intégrer dans l'espace d'adressage du processus cible. L'application peut s'intégrer dans l'espace d'adressage d'un processus en cours d'exécution, où l'application peut lancer l'exécutable comme un processus fils. Les deux méthodes sont fiables ; Par contre, en pratique, il est bien plus simple de surveiller et d'intercepter les processus ou les threads créés par le processus cible lorsque l'application est un parent du processus cible.

Cela pose un problème pour les applications clientes, telles que Steam et Uplay, qui sont lancées lorsque l'utilisateur se connecte. Windows ne fournit aucune garantie sur l'ordre des processus au démarrage et le processus de Gameplay doit être lancé juste avant ces processus pour intégrer correctement la surcouche des contrôles. Gameplay résout ce problème en installant un léger service système au cours de l'installation qui surveille les applications lancées au démarrage au moment de la connexion de l'utilisateur. Lorsque l'une des applications clientes intéressantes est lancée, Gameplay est alors capable de s'intégrer comme un parent du processus et d'assurer que la couche de contrôles est affichée comme voulue.

IV. Leçons retenues

IV-A. Filtrage de la souris

Au cours du développement, nous avons remarqué que de nombreux jeux géraient incorrectement les entrées souris virtuelles reçues à partir de l'écran tactile. Le problème était très présent avec les FPS et les RPG possédant une fonctionnalité de « verrouillage de souris ». Ce problème était lié à la réception des entrées souris à partir de la surface tactile en coordonnées absolues et donc, dans l'environnement de jeu. Cela rendait l'écran tactile quasiment inutile en tant que périphérique de « verrouillage de souris ». La solution possible était de filtrer les entrées souris en interceptant le thread d'entrées pour le jeu. Cela permettait à Gameplay d'émuler les entrées souris via un contrôleur sur l'écran tel un joystick pour la fonction de « verrouillage de souris ». Cela a pris un certain temps pour configurer la réponse du joystick ainsi que la zone morte afin de retranscrire la sensation d'une souris, mais une fois que cela a été fait, tout a fonctionné merveilleusement. Vous pouvez voir cette fonctionnalité en action dans des jeux comme Fallout : New Vegas ou The Elder Scrolls : Skyrim.

IV-B. Recherches de jeux pour le jeu au toucher

Ideum a passé un temps significatif dans l'ajustement des contrôleurs virtuels pour une gameplay optimale. Il y a plusieurs éléments dans un jeu qui détermine sa pertinence dans l'utilisation avec Gameplay. Ci-dessous se trouvent quelques lignes conductrices développées pour déterminer quels types de jeux fonctionnent bien avec Gameplay :

Jouabilité dans Gameplay par type de jeux
Bon Mieux Meilleur
  • Jeux de rôle (RPG)
  • Simulation
  • Combat
  • Sports
  • Course
  • Puzzles
  • Stratégie en temps réel (RTS)
  • Tir à la troisième personne
  • Jeux de plateformes
  • Jeux au défilement latéral
  • Action et Aventure

Alors que la jouabilité est certainement un aspect important dans la recherche de titres à utiliser avec Gameplay, le critère le plus important est la stabilité. Certains titres ne fonctionnent simplement pas avec la technique d'intégration, l'injection d'entrées ou la technologie de surcouche. Cela peut arriver pour de nombreuses raisons, mais le plus souvent cela est dû au jeu surveillant lui-même son espace mémoire ou son flux d'entrées pour détecter la falsification. Même si Gameplay est une application légitime, elle utilise des techniques qui peuvent être utilisées par les forces du mal, donc malheureusement, certains titres sensibles faces à ces techniques ne fonctionneront jamais tant qu'ils ne sont pas adaptés pour le toucher.

IV-C. Réaction des utilisateurs

Bien qu'il soit encore tôt, Gameplay 1.0 a reçu des commentaires intéressants par rapport au toucher dans les jeux sur PC. Il y a déjà des tendances précises sur ses retours. À un haut niveau, il est certain que tout le monde aime être capable de personnaliser l'interface de toucher pour les jeux. Les retours restants se focalisent sur la personnalisation de l'expérience de jeux dans ces quelques secteurs clés :

  • la plupart des contrôleurs virtuels ne sont pas adéquats pour les gauchers. Cela a été un changement rapide pour la plupart des contrôleurs virtuels publiés ;
  • la taille des boutons et leur position est le changement le plus commun, au point que Ideum envisage l'ajout d'une calibration automatique suivant la taille de la main dans les prochaines versions de Gameplay ;
  • la plupart des utilisateurs préfèrent les entrées de roulement en place du toucher discret et du relâchement.

Nous espérons voir bien plus d'idées au fur et à mesure que le nombre de contrôleurs virtuels créés par les utilisateurs augmente.

V. Conclusion

GestureWorks Gameplay apporte les contrôles tactiles à vos jeux favoris. Cela est possible grâce à la combinaison d'une surcouche visuelle et du support d'interactions supplémentaires comme les gestes, les accéléromètres et la transition des 2 en 1. Ce qui a été le plus intéressant dans ce projet a été la réaction des utilisateurs. Les gens sont sincèrement excités par le jeu au toucher sur PC, et fous de joie de pouvoir maintenant jouer avec le toucher aux nombreux jeux qu'ils apprécient.

VI. À propos des auteurs

Erik Niewmeyer est un ingénieur logiciel dans la branche logiciel et solution de Intel Corporation. Erik a travaillé sur l'optimisation des performances des applications s'exécutant sur les microprocesseurs d'Intel pendant 15 ans. Erik se spécialise dans le développement de nouvelles interfaces utilisateur et l'ajustement de micro-architecture. Lorsque Erik ne travaille pas, il peut certainement être trouvé sur le sommet d'une montagne. Erik peut être contacté à l'adresse erik.a.niemeyer@intel.com.

Image non disponible

Chris Kirkpatrick est un ingénieur d'applications logiciels dans la branche logiciel et solution supportant les solutions Intel graphics sur les plateformes mobiles pour l'équipe Visual & Interactive Computing. Il possède un B.Sc. en Computer Science de l'université de l'Orgeon. Chris peut être contacté à l'adresse chris.kirkpatric@intel.com.

VII. Ressources

VIII. Articles liés