Quels outils, modèles ou meilleures pratiques recommanderiez-vous pour implémenter les mécanismes de quête indiqués ci-dessous?
Je parle de l'architecture logicielle (à quel point devez-vous être générique) et des choix de câblage d'objet, d'abonnement aux événements et de représentation des conditions. La mention des outils / bibliothèques que vous avez utilisés avec succès est la bienvenue. Modifier: si vous utilisez des scripts, quelle configuration recommandez-vous?
Exigences:
- mmo 2D simple (rpg)
- toutes les données du jeu, y compris les quêtes, sont stockées dans une base de données relationnelle
- n'importe quel événement dans le jeu pourrait déclencher une nouvelle quête pour les joueurs ou l'avancement des quêtes existantes
- une quête peut avoir un nombre arbitraire de conditions qui doivent être remplies avant que la quête ne soit disponible pour les joueurs
- une quête peut consister en un nombre arbitraire de sous-quêtes / étapes avec des conditions arbitraires
les quêtes allaient de simples:
parlez à A - tuez 5 B - parlez à A - augmentez de façon permanente la santé
à assez impliqué:
utilisez l'objet dans la zone X - allez dans la zone Y - un bot apparaîtra - tuez le bot sans subir plus de 10% de dégâts - le bot dépose l'objet - ramassez l'objet - le portail se déverrouille - livrez l'objet à J derrière le portail - recevez de l'or et de l'expérience - laisser passer le portail une fois de plus - verrouiller le portail pour ce joueur
les instances de niveau sont une possibilité (les joueurs peuvent terminer certaines quêtes en équipe ou isoler ce qui engendrera l'emplacement de niveau juste pour ces participants)
- Les quêtes doivent de préférence être gérables à l'aide d'un éditeur mondial sans connaissances en scripting ou en programmation ( Edit: ne préconise cependant pas les scripts en général)
- Je suppose que C ++ est le langage d'implémentation
Je pensais que si je pouvais combiner n'importe quelle chaîne d'événements et de conditions, nous pourrions modéliser des quêtes plus complexes et donc peut-être plus engageantes. J'ai essayé de lancer mon propre moteur ECA (événements-conditions-actions) mais cela pourrait être exagéré. Il a été particulièrement difficile de modéliser des conditions génériques sans utiliser aucune sorte de script.