Bonjour à tous.
J'aborde doucement le game scripting, je préfère faire cela très tôt dans la conceptionde mon projet, cela m'évitera surement de tomber dans les piège du "je me démerderai comme je pourrai plus tard". Je veux quelquechose de simple à utiliser, pas inhumain à mettre en place et utile
En résumé : Pour le moment je suis parti sur une idée simplifiée d'envoie d'Event entre mes objets (un objet au sens large, cela peut être un monstre , un pnj, un morceau du décor, un projectile et bien d'autres choses encore).
Ainsi, après une routine d'IA, une céature pourra décider d'en attaquer une autre . Elle envera alors un Event "Attaquer" à cette créature . Celle-ci le recevra et devra "réaliser" les actions impliqué par l'évènement, par exemple dans ce cas, perdre X pv, ou X est la force de la créature attaquante.
J'ai pensé me tourner vers LUA (je n'ai pas une connaissance suffisante pour le moment à ce sujet et je n'ai pas les idées très clair quand a la facons pratique de m'en servir ...). Et ainsi, inclure simplement dans mes Event, le chemin vers un script lua qui contiendrai toute les actions a effectuer.
Typiquement :
Je ne vois pas (jusque là) de faille à ce raisonement, mais sait-on jamais si j'en ai oublié, je vous remercie de me remettre dans le droit chemin!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Event E ; E.Emetteur = "#ID de l'attaquant" E.Recepteur = "#ID de l'attaqué " // <- remplie lors de la reception de l'event E.Script = "/Script/Attaquer.lua"
Avec ce raisonement, je dois pouvoir créer plusieur fonction dans plusieur fichiers .lua et au final les combiner pour obtenir des suites d'actions fort interessantes,non?
Exemple :
Manger.lua
Dormir.lua
Repos.lua qui contiendrai un apple a Dormir() et a Manger, défiinit dans les fichiers précédents. Bref, le but est de construire une grande partie de ma "game logic" de cette facons.
Maintenant : Les problèmes !
Mes objets ( entitée ) sont accessible en globale , par leur ID unique, donc pas de problème pour mettre la main dessus à partir de mon code en C++ par exemple.
La ou le bat blesse, c'est au niveau du traitement sur ces objets.
Si mon Entitée recoit "Attaquer", elle va vouloir exécuter le script "Attaquer.lua" , dedans il va me valoir remplir au moins 3 variables : l'attaquant, la cible et la force de l'ttaquant . Ca me force donc à faire tout cela manuellement en c++ et ce pour chaque nouveau script que je vais, et pire, ca réduit quasiment à zéro la réutilisation de fonction ( dormir, manger, comme dans l'exemple précédent) , vu que le nombre de paramètre de Repos devra etre dispatché correctement entre dromir et manger, et donc de toute facons je devrai écrire ca en dure en c++ et recompiler ...
Je dois vraiment manquer de pratique la dedans car ma version des choses est on ne peux plus bancale :/
Ce qui me pose problème est donc en partie : le passage d'argument a mes script lua necessitant du code en dur a chaque fois :/
Si vous avez une idées de la démarche a suivre pour régler ce genre de problème , ou des liens sur le sujets ...
Il se peux que la solution vienne de l'utilisation d'objets c++ dans le script ( via luabind dans mon cas), mais je n'ai pas encore vu comment cela marchait en pratique, quelle était l'utilité ect ... ( je m'y penche d'ici demain car c'est une piste a explorer ).
Merci .
Partager