PDA

Afficher la version complète : ToE: Scripts sur Maps Multijoueurs



simonubisoft
07/11/2007, 14h57
Pourquoi est-ce interdit de créer des scripts pour les maps multijoueurs?

Ok, je peux comprendre que l'on peut tricher très facilement avec un script. Mais je ne vois pas pourquoi que ceux qui, de tout façon, ne s'interesse pas à créer des scripts pour tricher doivent être brimés pour cette raison.

Je veux dire, il doit bien exister d'autres solutions pour éviter les tricheurs sans que l'on aille à abolir carrément l'utilisation de scripts.

Il pourrait, par exemple, exister un signal, une information qui indique à l'utilisateur que la map en cours est soumis à un script...

En tout cas, je trouve ça bien dommage....

Des scripts, c'est bien cool en solo, mais en multijoueur, ça peut être nettement plus interressant.

simonubisoft
07/11/2007, 14h57
Pourquoi est-ce interdit de créer des scripts pour les maps multijoueurs?

Ok, je peux comprendre que l'on peut tricher très facilement avec un script. Mais je ne vois pas pourquoi que ceux qui, de tout façon, ne s'interesse pas à créer des scripts pour tricher doivent être brimés pour cette raison.

Je veux dire, il doit bien exister d'autres solutions pour éviter les tricheurs sans que l'on aille à abolir carrément l'utilisation de scripts.

Il pourrait, par exemple, exister un signal, une information qui indique à l'utilisateur que la map en cours est soumis à un script...

En tout cas, je trouve ça bien dommage....

Des scripts, c'est bien cool en solo, mais en multijoueur, ça peut être nettement plus interressant.

sfidanza
08/11/2007, 03h39
Donc ça fait partie des améliorations qu'on peut demander à Ubi:
Pouvoir faire des scripts sur les cartes multi, et les chaîner en campagne. Ça peut être un gros bazar, mais ça peut aussi être intéressant. Je suis d'accord.

Cela dit, le signal que tu suggères pour indiquer que la carte est scriptée est bien insuffisant. Faut-il qu'il se déclenche à chaque fois qu'une commande s'exécute (et qu'en est-il des triggers qui bien souvent sont lancés tous les jours en attente, mais ne font réellement quelque chose que lorsqu'une condition est remplie)? Faut-il différencier la commande entrée dans la console et celle d'un fichier? Mais alors, que se passe-t-il si j'entre dans la console @doFile("monscript.lua")? Et si je mets cette commande dans le script de la carte? Si un combat a un script associé?

Différencier la console du reste peut sembler facile, mais qu'en est-il si je modifie le script de la carte avant de jouer? On ne peut pas demander aux autres joueurs d'être capables de vérifier eux-mêmes si le script est équitable. Donc identifier les commandes console ne suffit pas.

Le problème est donc complexe, et ça vaut le coup d'en discuter. Mais il ne faut surtout pas débloquer les scripts en multi si ça ouvre le moindre abus. Sinon, le jeu en ligne en souffrira.

simonubisoft
08/11/2007, 15h34
Oui, j'admet que dès le départ, j'ai toujours pensé qu'il n'était pas simple d'intégrer les scripts
dans les maps multijoueurs.

Bon, j'ai quelques idées préliminaires sur le fonctionnel d'un tel mécanisme..:


Une première chose qui peut exister c'est un « flag » général à la map qui interdirait l'utilisation
de scripts à cette map tout particulièrement. du genre:

« ALLOW_SCRIPT = False »

Donc, pour les maps multijoueur dans lesquelles on voudrait utiliser des scripts,
il faudrait basculer ce « flag » à la valeur « True ». (par l'éditeur, etc)

Certaines personnes, qui serait hôte d'une map multijoueur en ligne, pourrait alors décider
d'interdire à titre personnel à une map, l'utilisation de scripts.

La valeur de ce flag, pourrait être alors facilement consultable, de par un quelquonque moyen,
et les éventuelles joueurs, connaitre cet information, avant même d'embarquer dans la map.


Ensuite,

Une fois que le « flag » est à True, c'est-à-dire que l'on peut exécuter des scripts dans la map.

Une chose que j'ignore: c'est si peu importe d'où provient le script,
(ajout par l'éditeur, appelé par la console, etc etc) est-ce le même interprêteur qui roule le code LUA?

Je suppose qu'il n'y a qu'un interprêteur LUA dans le moteur de H5, et qu'il a la responsabilité de faire
rouler tout les scripts et ce, peu importe d'où provient le script.

On sait bien, que l'ordinateur n'est pas assez intelligent pour deviner qu'un script va avantager
un joueur plutot qu'un autre....et de toute façon, on ne souhaite pas le programmer tel quelle.

On ne veut pas de code qui analyse l'impact d'un autre code :S

Cependant, peut-être qu'un journal des commandes exécutées par l'interpréteur LUA pourrait être
disponible.

Ex: Un joueur, pendant son tour, pourrait aller consulter, via les informations de la map,
toutes les actions que l'interprêteur LUA aurait éxécutés à travers les scripts des utilisateurs.

Il y aurait moyens de faire cela, avec un language typique à la Heroes du genre:

« Évènement dans le royaume: le joueur bleu a reçu 10000 or, le jour 4 de la semaine 3 du mois 1. »

Du coup, ce journal pourrait être également utilisé pour les informations lié à toute sorte de mini-défis
que les joueurs voudraient se compétionner:

« Évènement dans le royaume: le joueur vert a été le premier à construire sa capitale ! »

Je pense que le mécanisme d'un tel journal, qui serait directement intégré dans le EXE
découragerait certainement les éventuelles tricheurs, conscient que toute actions exécutées
par les scripts seraient consultables par tout les joueurs.

Bien sûr, il existe sans doute plein d'autres solutions...

C'est une idée que j'ai eu préliminairement comme ça, je ne connais pas toute l'ampleur
de l'enjeu, des conséquences et du « bazar » que tout cela amène.