crash63 said:
Tu te doutes que pour un jeu, les lignes de code tu n'y aura pas accès.
C'est certainement pour ça que je pense en terme de comportements et plus généralement de pseudo-code.
Le moteur de script de EU2 est limité mais si les instructions rendues disponibles par Paradox (quelle que que soit la version du jeu : 2 ou 3) étaient plus proches d'un "vrai" langage de programmation, on pourrait faire des choses assez fantastiques.
Le mieux, ça aurait été d'inclure un interpréteur type C(++) ou Java/JavaScript pour l'analogie avec la syntaxe actuelle... en prise avec une base de données complètement externalisée (la forme fichier csv étant tout à fait satisfaisante) et avec la possibilité de gérer les entrées du fichier de sauvegarde (ou un fichier annexe).
Il devenait possible de modifier les valeurs de base lues au démarrage du jeu, rajouter un module pour lire les compléments et modifier dynamiquement les données gérées en interne par le code EU (les exemples évidents étant le type de ressource ou le nom d'une province et de sa ville principale, le nom d'un pays... et plus généralement en violation complète des "règles classiques" autorisées pour un joueur) et bien sûr, de coder (ça dépasse le simple "script") des comportements logiques avec arbres de décisions avec n'importe quelles conditions de type requête base de données sur les valeurs des objets internes.
Le code EU reste alors la propriété de Paradox, sous son contrôle total et avec une politique d'évolution/amélioration qui n'est plus à démontrer mais l'architecture est tellement ouverte que plus grand chose n'est impossible... dans les limites du jeu.
Je pense que EU3 se rapproche de ce modèle mais il en reste certainement assez éloigné.
EDIT : Je ne dis pas non plus que c'est simple à implémenter mais, pour tout dire, c'est, toute proportion gardée également, ce que j'arrive à proposer d'une certaine manière à mes clients :
Mes outils doivent être accessibles par un navigateur web (postulat de base). J'ai inclus pour certaines fonctionnalités une case à cocher "HTML" avec un champ associé de type texte. Dans ce cas, mon outil passe le relais au navigateur pour interpréter ce qui sera affiché et on peut faire ce qu'on veut, HTML, DHTML, JavaScript..., bref tout ce qui est possible côté client et sans restriction. Si la page plante (un CTD ?), ce n'est plus de mon ressort mais ceux qui s'en servent ont compris immédiatement l'intérêt. J'ai même un protocole d'accord sur la propriété intellectuelle qui permet d'implémenter les meilleures idées en natif sous forme d'options. Le "comportement" devient alors très simple à mettre en oeuvre puisqu'il est proposé avec un assistant. Même son auteur y trouve son compte !