Je développe un moteur de jeu simple (en C #, si cela importe), et je ne peux pas penser à un moyen assez décent pour implémenter les scripts en termes d'architecture.
C'est une stratégie simple au tour par tour avec des animations personnalisées indépendantes de la logique pour les batailles. Il a une couche d'architecture globale pour les trucs système / bas niveau et, surtout, deux modules principaux - la logique et la vue de jeu - qui communiquent à l'aide d'un gestionnaire d'événements.
Et le fait est que j'aimerais vraiment que les scripts influencent à la fois les choses liées à la logique du jeu (modification des paramètres d'unité, etc.) et les choses liées à la vue du jeu, telles que les animations / dialogues spéciaux pour les batailles qui pourraient dépendre d'un certains déclencheurs scriptés.
(Pour être honnête, idéalement, je veux que le script contrôle le déroulement du jeu, ne laissant que les mécanismes / graphiques de base à la logique / vue, mais je suis nouveau dans ce domaine, donc je ne suis pas sûr de pouvoir le faire maintenant)
J'ai pensé à trois options:
Laissez simplement les scripts vivre dans la logique, mais faites-le savoir sur le côté graphique du jeu. Mais cela rendrait la division logique / vue très vague, n'est-ce pas ...
Faites du script un module distinct qui échangera les événements avec les autres en utilisant le même gestionnaire d'événements. Mais cela nécessiterait d'être très prudent sur la synchronisation des événements, je suppose ... et également d'ajouter un grand nombre de types d'événements au gestionnaire. (Toujours, favori personnel)
Faites du script un module avant tout, afin qu'il puisse directement influencer / appeler les fonctions de la logique / vue. Cela permet une fonctionnalité intrinsèquement plus large au prix d'une sorte de vissage de l'ensemble du système d'échange d'événements et de la peur que le script puisse casser des choses même quand il ne devrait vraiment pas.
Donc, je ne peux pas décider de l'un d'eux ni penser à une meilleure façon d'insérer le module de script ... Des suggestions ou des liens utiles?
Je vous remercie!
Ps merci d'avoir migré la question, je ne savais pas qu'il y avait une section spécialisée pour gamedev