De nombreux jeux créés de nos jours sont dotés de leur propre système de réussite qui récompense les joueurs/utilisateurs pour avoir accompli certaines tâches. Le système de badges ici sur stackoverflow est exactement le même.
Il y a cependant quelques problèmes pour lesquels je n'ai pas pu trouver de bonnes solutions.
Les systèmes d'accomplissement doivent être attentifs à certains événements en permanence. Pensez à un jeu qui propose 20 à 30 accomplissements pour, par exemple, le combat. Le serveur doit vérifier ces événements (par exemple, le joueur a évité un combat). x attaques de l'adversaire dans cette bataille ou le joueur a marché x miles) tout le temps .
- Comment un serveur peut-il gérer une telle quantité d'opérations sans ralentir et peut-être même tomber en panne ?
Les systèmes d'accomplissement ont généralement besoin de données qui ne sont utilisées que dans le moteur principal du jeu et qui ne seraient pas nécessaires de toute façon s'il n'y avait pas ces méchants accomplissements (pensez par exemple à la fréquence à laquelle le joueur a sauté pendant chaque combat, vous ne voulez pas stocker toutes ces informations dans une base de données). Ce que je veux dire, c'est que dans certains cas, la seule façon d'ajouter un succès serait d'ajouter le code qui vérifie son état actuel au cœur du jeu, et c'est généralement une très mauvaise idée.
-
Comment les systèmes d'accomplissement interagissent-ils avec le cœur du jeu qui contient les dernières informations inutiles ? (voir les exemples ci-dessus)
-
Comment sont-ils séparés du cœur du jeu ?
Mes exemples peuvent sembler "inoffensifs", mais pensez aux plus de 1000 réalisations actuellement disponibles dans le programme World of Warcraft et les nombreux, nombreux joueurs en ligne en même temps, par exemple.