Installation et Maintenance des Jeux
Cet article décrit un ensemble de bonnes pratiques pouvant aider à réduire la frustration des utilisateurs quant au temps nécessaire pour installer un jeu, à prévenir les appels inutiles au support, et à permettre aux utilisateurs de commencer à jouer à votre jeu aussi rapidement et facilement que possible.
Installation initiale
Les utilisateurs achètent des jeux parce qu’ils aiment y jouer, non pas parce qu’ils aiment les installer. Installer un jeu doit être aussi rapide, simple et indolore que possible pour l’utilisateur final. Idéalement, les utilisateurs ne devraient même pas voir une interface utilisateur d’installation ; ils devraient simplement pouvoir insérer le disque du jeu dans le lecteur et commencer à jouer.
Simplification de l’interface utilisateur d’installation
Certains aspects courants des interfaces utilisateur d’installation de jeux existantes interfèrent avec l’expérience souhaitée de l’utilisateur final :
Poser des questions inutiles à l’utilisateur.
Par exemple, de nombreux jeux demandent si l’utilisateur souhaite installer DirectX. Si le jeu nécessite Microsoft DirectX pour fonctionner et que la bonne version de DirectX n’est pas déjà installée, le jeu devrait simplement installer DirectX.
Poser des questions auxquelles la grande majorité des utilisateurs répondront de la même manière.
Pour les utilisateurs typiques, les paramètres par défaut pour le chemin d’installation, l’emplacement dans le menu Démarrer, etc., sont tous corrects. Offrez des options avancées pour les utilisateurs qui souhaitent modifier ces paramètres.
L’interface utilisateur d’installation doit être conçue pour permettre à l’utilisateur typique de commencer à jouer au jeu le plus rapidement possible. Si AutoRun est activé sur l’ordinateur de l’utilisateur, ce qui est le paramètre par défaut, le programme d’installation doit supposer que l’utilisateur souhaite commencer à jouer au jeu le plus rapidement possible, en contournant toute question inutile. Le programme d’installation devrait commencer à installer le jeu dans le chemin d’installation par défaut, de préférence en utilisant une configuration comme celle décrite dans Installation à la demande. Il convient de donner aux utilisateurs une chance de modifier les paramètres d’installation avant de commencer automatiquement l’installation. Cependant, cela devrait être accompli en demandant à l’utilisateur d’appuyer sur une touche pour accéder aux options de configuration avancées, puis en continuant automatiquement avec les options par défaut si l’utilisateur n’appuie pas sur cette touche dans les cinq à dix secondes.
Si AutoRun n’est pas activé sur l’ordinateur de l’utilisateur, le programme d’installation doit supposer que l’utilisateur ne souhaite pas que le programme d’installation commence à installer le jeu automatiquement. Si le programme d’installation est lancé par un autre moyen qu’AutoRun, il devrait lancer l’interface utilisateur de configuration avancée.
Réduction du temps nécessaire pour l’installation
La plupart des jeux Microsoft Windows d’aujourd’hui prennent entre cinq minutes et une demi-heure pour terminer le processus d’installation. En revanche, la plupart des jeux de console prennent moins de trente secondes entre le moment où l’utilisateur insère le CD du jeu et le moment où l’utilisateur peut jouer au jeu. Cette différence est due au fait que la plupart des jeux Windows sont conçus pour exécuter la majeure partie, sinon la totalité, de leur contenu à partir du disque dur de l’ordinateur ; les consoles, qui n’ont pas d’espace pour stocker en permanence de grandes quantités de contenu, nécessitent que le contenu soit exécuté à partir du support source. Alors que le chargement du contenu à partir du disque dur local permet des temps de chargement plus rapides en jeu, l’inconvénient est que tout ce contenu doit être copié du support source vers le disque dur à un moment donné. La plupart des jeux Windows choisissent de copier tout le contenu sur le disque dur en une seule fois, dans le cadre d’un processus d’installation. Cela nuit à l’expérience initiale de l’utilisateur avec le jeu en obligeant l’utilisateur à regarder une barre de progression pendant plusieurs minutes avant de pouvoir jouer au jeu.
Il existe deux approches pouvant être utilisées pour minimiser le temps passé à installer initialement le jeu : Installation minimale et Installation à la demande.
Installation minimale
Dans un scénario d’installation minimale, le jeu installe uniquement un ensemble minimum de contenu sur le disque dur. Habituellement, cela consiste uniquement en l’exécutable du jeu et les DLL. Le reste du contenu est accessible directement depuis le support source. Cela réduit considérablement le temps nécessaire à l’installation, car l’exécutable d’un jeu est rarement supérieur à 10-20 Mo. L’inconvénient est que le jeu met plus de temps à charger le contenu pendant le jeu, car il doit le charger depuis le support source plus lent.
Pour créer une configuration d’installation minimale dans une configuration basée sur Windows Installer :
Regroupez tous les composants à installer sur le disque dur en une fonctionnalité marquée pour être installée localement.
Cette fonctionnalité sera appelée la fonctionnalité « Bootstrap ».
Regroupez tous les composants devant être exécutés depuis le support source en une fonctionnalité marquée comme « exécuter depuis la source ».
Lors de l’ouverture d’un fichier qui pourrait se trouver sur le support source, utilisez la fonction MsiGetComponentPath pour déterminer le chemin d’accès au fichier, au lieu de coder en dur le chemin.
Cela garantit que le fichier peut être trouvé même si la lettre de lecteur du lecteur CD/DVD de l’utilisateur change.
Compressez le contenu qui reste sur le CD/DVD.
Le temps de CPU passé à décompresser le contenu sera généralement masqué par le taux de transfert lent des données du lecteur CD/DVD.
Regroupez le contenu en fichiers volumineux et contigus et accédez-y dans un ordre séquentiel.
Les temps de recherche des lecteurs CD/DVD sont abominables comparés à ceux des disques durs, et la plupart des lecteurs CD/DVD n’atteignent des taux de transfert de pointe que lorsqu’ils lisent un fichier volumineux et contigu.
Disposez le contenu sur le CD/DVD dans l’ordre dans lequel il est susceptible d’être accédé.
Les temps de recherche sont grandement réduits lorsque les fichiers sont accédés dans le même ordre que leur disposition sur le disque.
Installation à la demande
Dans un scénario d’installation à la demande, comme pour l’installation minimale, le jeu installe initialement sur le disque dur uniquement les fichiers nécessaires pour démarrer le jeu. Cependant, au lieu d’accéder au contenu restant depuis le support source à chaque fois qu’il est nécessaire, le jeu installe en fait chaque élément de contenu sur le disque dur au fur et à mesure de son premier besoin, puis l’accède depuis le disque dur local à chaque utilisation ultérieure. Le temps nécessaire pour l’installation initiale est aussi court que pour une installation minimale, mais après la première utilisation de chaque élément de contenu, les temps de chargement s’améliorent.
Pour créer une configuration d’installation à la demande dans une configuration basée sur Windows Installer :
Regroupez tous les composants à installer initialement sur le disque dur en une fonctionnalité marquée pour être installée localement.
Notez que cela est identique à la fonctionnalité Bootstrap pour une installation minimale.
Regroupez le contenu restant en plusieurs fonctionnalités basées sur les composants susceptibles d’être utilisés ensemble.
Par exemple, dans un jeu basé sur des niveaux, regroupez tout le contenu utilisé dans un niveau donné en une fonctionnalité. Notez que Windows Installer permet à un composant d’être partagé par plusieurs fonctionnalités, donc si vous avez du contenu utilisé dans plusieurs niveaux, vous pouvez ajouter ce contenu aux fonctionnalités de tous les niveaux nécessaires sans répliquer le contenu. Toutes ces fonctionnalités doivent être marquées comme « Publiées », ce qui signifie qu’elles ne seront pas installées initialement, mais peuvent être installées ultérieurement si nécessaire.
Lorsqu’un fichier est nécessaire, vérifiez d’abord si le fichier est déjà installé en utilisant la fonction MsiQueryFeatureState.
S’il n’est pas encore installé (c’est-à-dire que son état est INSTALLSTATE_ADVERTISED), appelez la fonction MsiConfigureFeature pour installer la fonctionnalité localement. Lors de l’ouverture du fichier après son installation, appelez MsiGetComponentPath pour déterminer le chemin d’accès au fichier. Bien que cela ne soit pas strictement nécessaire pour ce scénario (puisque le contenu sera toujours installé sur le disque dur avant d’être utilisé), cela facilite le support de l’installation minimale en plus de l’installation à la demande.
Si possible, anticipez le contenu susceptible d’être nécessaire prochainement et installez-le en arrière-plan pendant les temps d’inactivité.
L’installation en arrière-plan est la plus appropriée lorsque le jeu est à un point qui n’a pas besoin de chaque dernière once de performance de l’ordinateur ; par exemple, lors de l’affichage d’un film d’introduction, d’une scène cinématique, d’un menu, etc.
Créez une option dans le menu des options du jeu pour forcer l’installation de tout le contenu restant.
Pour implémenter cela, créez une fonctionnalité qui est parente de toutes les fonctionnalités d’installation à la demande, puis appelez MsiConfigureFeature pour installer cette fonctionnalité principale localement. Cela entraînera également l’installation locale des sous-fonctionnalités.
La disposition du contenu doit être similaire à celle d’une installation minimale, sauf que le contenu doit être regroupé uniquement avec d’autres contenus susceptibles d’être nécessaires en même temps (par exemple, tout le contenu pour un niveau devrait être ensemble).
Jeu post-installation
AutoRun
Pour jouer à un jeu déjà installé, l’utilisateur ne doit avoir qu’à insérer le disque d’installation dans le lecteur. La première chose que l’exécutable AutoRun sur le disque doit faire est de vérifier si le jeu est déjà installé, et si oui, de lancer le jeu. En supposant que le jeu a été installé en utilisant une configuration basée sur Windows Installer, la vérification pour déterminer si le jeu est installé peut être accomplie par un simple appel à la fonction MsiQueryProductState.
Conversion d’une installation à la demande en une installation complète
Bien qu’une installation à la demande permette à l’utilisateur de commencer à jouer au jeu bien plus tôt qu’une installation complète, un utilisateur peut souhaiter installer explicitement le reste du contenu du jeu sur le disque dur local. L’utilisateur peut vouloir être capable de jouer au jeu sans nécessiter le support source, ou il peut simplement vouloir éviter les temps de chargement plus longs en jeu résultant de l’installation du contenu à la demande. Si la configuration du jeu utilise Windows Installer, le jeu peut fournir une option dans l’interface utilisateur des options du jeu pour terminer l’installation du contenu restant. Lorsque l’utilisateur sélectionne cette option, le jeu peut appeler MsiConfigureFeature pour forcer l’installation locale des fonctionnalités restantes ; il n’est pas nécessaire de lancer une application de configuration distincte pour ce faire.
Maintenance des logiciels et contenus de jeux
Un des avantages que les jeux Windows ont sur les jeux de console est la relative facilité avec laquelle l’éditeur peut publier des mises à jour du jeu après sa sortie initiale. Que ces mises à jour introduisent de nouveaux contenus ou corrigent simplement des bugs, il est important de rendre le processus de mise à jour aussi simple que possible pour l’utilisateur final. Le processus de mise à jour est encore plus important pour les jeux en ligne, qui nécessitent généralement que tous les utilisateurs utilisent la dernière version du jeu pour se connecter.
Vérification automatique des mises à jour
Les utilisateurs ne devraient pas avoir à se souvenir de chercher des patchs. S’il y a une mise à jour disponible pour le jeu, l’utilisateur devrait au moins être notifié, et idéalement, le patch devrait déjà être téléchargé.
Un moyen simple pour un jeu de vérifier les mises à jour est de se connecter à un serveur Web hébergé par l’éditeur en utilisant une URL spécifique et de télécharger un fichier texte qui spécifie le numéro de version de la dernière version disponible du jeu, ainsi qu’une URL à partir de laquelle télécharger un package qui mettra à jour le jeu vers la dernière version.
Vérifier les mises à jour chaque fois que l’utilisateur joue au jeu est adéquat pour s’assurer que l’utilisateur utilise la dernière version. Cependant, si la découverte d’une nouvelle mise à jour est faite immédiatement avant que l’utilisateur essaie de jouer au jeu, l’utilisateur peut être obligé de retarder de jouer au jeu jusqu’à ce que la mise à jour soit terminée de télécharger. Pour les mises à jour importantes ou les connexions lentes, ce délai peut être de l’ordre de plusieurs heures. Pour éviter d’obliger l’utilisateur à attendre avant de jouer au jeu, le jeu peut utiliser le Planificateur de tâches pour planifier des vérifications périodiques des nouvelles mises à jour. Si une mise à jour est détectée, le jeu peut commencer à télécharger la mise à jour immédiatement, de sorte qu’elle soit probablement complètement téléchargée et prête à être installée la prochaine fois que l’utilisateur joue au jeu.
Téléchargement automatique des patchs
Une fois que le jeu a détecté qu’une nouvelle mise à jour est disponible, il doit immédiatement commencer à télécharger la mise à jour. Étant donné que la tâche qui vérifie les mises à jour s’exécute généralement en arrière-plan de manière silencieuse, le téléchargement doit être aussi discret que possible. Le Background Intelligent Transfer Service (BITS) est une fonctionnalité du système d’exploitation qui permet aux applications de télécharger des fichiers depuis Internet même lorsque l’application elle-même n’est pas en cours d’exécution. Les tâches de téléchargement BITS ne s’exécutent que lorsque l’utilisateur est connecté, et uniquement lorsque la machine est déjà connectée au réseau. BITS ne tentera pas de forcer la machine à se connecter au réseau par elle-même. Si l’utilisateur se déconnecte du réseau ou se déconnecte, le travail BITS est mis en pause et reprendra le téléchargement la prochaine fois que l’utilisateur se connectera et se reconnectera au réseau. L’application peut configurer ses tâches BITS pour n’utiliser que la bande passante réseau qui resterait autrement inutilisée, afin d’empêcher le travail d’impacter les performances de toute autre application qui pourrait utiliser le réseau (par exemple, un jeu en ligne). BITS est disponible sur Windows XP et Windows 2000 Service Pack 3.
Autres ressources
Pour plus d’informations sur les technologies référencées dans cet article, veuillez consulter les rubriques suivantes :
Pour plus d’informations sur l’utilisation de Windows Installer pour les jeux, consultez la chronique du mois prochain de Driving DirectX, « Introduction à Windows Installer pour les développeurs de jeux ».