Dans un MMO, et j'essaie de collecter des données sur les comportements des utilisateurs dans le but de peaufiner les règles du jeu pour obtenir une satisfaction maximale des utilisateurs.
Clairement, une façon de le faire est de rouler à la main des choses spécifiques dans une application, un peu comme on pourrait utiliser Console.WriteLine()
pour afficher le contenu d'une variable, ou la StopWatch()
classe pour voir combien de temps quelque chose prend pour s'exécuter. Mais vous pouvez utiliser un profileur à la place de StopWatch et vous pouvez utiliser un débogueur à la place de WriteLine.
Comment dois-je collecter mes données? Existe-t-il des techniques généralisées pour instrumenter une application afin d'observer le comportement des utilisateurs, ou une certaine forme de technique d'instrumentation de code?
De plus, je ne m'intéresse qu'aux techniques de collecte; vous pouvez supposer que je sais déjà comment transmettre, stocker et analyser ces données.
La "technique" est ici est si simple qu'elle ne mérite presque pas d'être appelée comme telle: vous enregistrez simplement les données des systèmes de jeu que vous jugez pertinentes.
La façon dont vous enregistrez ces données (dans une base de données, dans des fichiers, etc.) est trop large pour être discutée ici (et les techniques et les modèles ne sont pas particulièrement spécifiques au développement de jeu en tout cas, ce qui les rend mieux adaptés à la discussion sur SO), comme c'est le cas la question de savoir quels systèmes sont pertinents. Il n'y a pas de techniques automatiques intelligentes pour répondre à ces questions; ce serait tout un exploit de l'intelligence artificielle.
La chose dont vous voulez vous assurer avec un jeu où il y a un composant serveur est que le serveur doit faire toute la journalisation qu'il peut. Rien de ce que vous obtenez du client ne peut être fiable, et surtout si vous allez utiliser ces données pour adapter les modifications au jeu, vous ne voulez pas que les joueurs puissent les altérer.
Le client doit uniquement enregistrer et transmettre des statistiques auxquelles le serveur n'aurait normalement pas accès également. Par exemple, si vous souhaitez enregistrer des cartes de chaleur de clic sur l'interface utilisateur, cela n'est probablement possible que sur le client.
la source
Dans un MMO, vous disposez déjà de données sur la destination de l'utilisateur, les quêtes qu'il entreprend et les équipements qu'il utilise envoyés au serveur.
Les autres données qui pourraient vous intéresser sont la façon dont ils utilisent les différents types, la durée pendant laquelle ils gardent les écrans de statistiques et d'inventaire ouverts. Vous pouvez par exemple enregistrer le nombre de fois qu'une fonction a été activée avec la souris par rapport au clavier.
Un facteur important est de permettre à l'utilisateur de se retirer (ou de faire participer la collecte) à la collecte de données (non critique) pour se conformer aux règles de confidentialité. Et pour permettre au serveur de décider quelles données doivent être enregistrées pendant la session de jeu / l'heure suivante pour épargner à vos joueurs une certaine bande passante.
la source