Eyengui Project

Environnement de création de Jeux vidéos 3D
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Etat de l'Eyengui Script System

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Etat de l'Eyengui Script System   Mar 24 Juil - 5:46

L'Eyengui Script System, ou ESS, est - ou plutôt sera - un petit langage de programmation donnant une grande liberté lors de la création d'un jeu avec Eyengui.
Il sera possible de lier un événement à un script, par exemple l'ouverture d'une porte à un lancer de dés qui, en fonction des caractéristiques en jardinage du personnage, activera ou non un piège.
Dans le développement de l'ESS, j'ai trois objectifs principaux :

    1. Ce langage ne doit nécessiter aucune connaissance particulière, donc être le plus facile possible. Il faut que n'importe quel utilisateur puisse l'utiliser.

    2. Il faut que les autres personnes bossant sur Eyengui puisse y ajouter des commandes facilement, mais éviter qu'une personne non-autorisée ajoute des commandes dangereuses.

    3. Le langage doit être le plus rapide possible à l'exécution, car il devra tourner en temps réel.


Alors pour ce qui est de la partie 1, ça sera pour plus tard, lors de l'ajout de commandes et de l'intégration de mon "compilateur" à l'environnement de développement.

Pour ce qui est de la seconde partie, c'est déjà bien avancé. On peut dès maintenant ajouter des commandes et des fonctions en déposant des fichiers texte dans un dossier du compilateur.
Le paramètre "sécurité" vient du fait qu'il ne faut pas que qu'un "petit malin" modifie des commandes de manière à endommager l'ordinateur exécutant les scripts.
En gros, j'ai crée une fonction qui génère des clefs, un peu comme le MD5. La modification de ne serait-ce qu'un caractère d'une commande ou fonction modifie la clef. Seules les personnes autorisées à créer / modifier des commandes ont accès à un générateur de clefs.

Au commencement des temps, on était parti sur une sorte de système de bytecode, il y a eu deux version de l'ESS fonctionnant ainsi, mais une chose en ammenant une autre, on a divergé vers un autre système.
Comme Eyengui est fait en VB.net, il a été décidé de transformer le code ESS en code VB puis de le compiler en DLLs. C'est à peu près là que j'en suis.

Mon objectif actuel est de transformer correctement un script ESS en VB. La compilation en DLLs et l'intégration à l'éditeur se feront lorsque cette première étape sera terminée.

Donc voicla en gros l'histoire et le but de l'ESS. Quant à l'avancement, le voici :
Légende :
Terminé
En cours
A faire


    - Système de clef
    - Gestion des commandes
    - Gestion des mathématiques
    - Gestion des fonctions (encore un tantinet buggé)
    - Gestion des conditions (j'en suis à la vérification de la syntaxe, c'est méchant)
    - Gestion des boucles (ça va être rude)
    - Compilation en DLLs
    - Intégration à l'éditeur
    - Système de coloration syntaxique


Merci d'avoir lu ou fait semblant de lire jusqu'ici Smile
Si quelqu'un a des questions, des conseils ou des insultes, la discussion est ouverte Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
Phurax.62

avatar

Nombre de messages : 24
Age : 26
Date d'inscription : 18/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Mer 25 Juil - 9:46

Ca avance ^^
Juste une question, pour compiler en DLL il faut que obligatoirement le script ESS le passer en VB ?!?
Quand tu dit :
Citation :
1. Ce langage ne doit nécessiter aucune connaissance particulière, donc être le plus facile possible. Il faut que n'importe quel utilisateur puisse l'utiliser.
Pas si quand même, pour pouvoir le mètre en VB et puis le compiler en DLL non ?!?
Sinon; vous aller mètre des tutos pour pouvoir apprendre ce petit language ?!? (a mon avis vaudrais mieux ^^)
Amitié et bonne continuation
DOUDOU
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://Daviddu62380.skyblog.com
Admin
Admin
avatar

Nombre de messages : 123
Date d'inscription : 17/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Jeu 26 Juil - 0:37

Hello,

Citation :
Pas si quand même, pour pouvoir le mètre en VB et puis le compiler en DLL non ?!?

Non, non...
Tu écris un script ESS très simple, ensuite le programme ESS lis ton script et le réécrit tout seul en VB.net comme il le faut...

Et quoiqu'il arrive oui, il y aura des tutos, des exemples, des scripts déjà prets, etc Smile

a++
Nico
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://eyengui.actifforum.com
Phurax.62

avatar

Nombre de messages : 24
Age : 26
Date d'inscription : 18/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Ven 27 Juil - 13:05

Admin a écrit:
Hello,

Citation :
Pas si quand même, pour pouvoir le mètre en VB et puis le compiler en DLL non ?!?

Non, non...
Tu écris un script ESS très simple, ensuite le programme ESS lis ton script et le réécrit tout seul en VB.net comme il le faut...
Okidoki ^^ ba c'est cool alors ^^, ca facilite le travail (ha!! le flémard)
Citation :

Et quoiqu'il arrive oui, il y aura des tutos, des exemples, des scripts déjà prets, etc Smile
Oki ^^ merci pour toutes c'est infos ^^
DOUDOU
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://Daviddu62380.skyblog.com
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Mar 31 Juil - 12:23

Bon, j'avais tapé une longue et précise réponse, mais après que j'aie redémarré pour activer une mise à jour, Firefox n'a pas restauré ce que j'étais en train d'écrire. C'est louche, c'est la première fois que ça m'arrive.

Enfin bon, en gros, mon but est que l'ESS soit le plus facile à utiliser. Une personne écrivant des scripts n'aura pas besoin de connaître son fonctionnement interne.

En gros, la classe ESSc sur laquelle je travaille transformera les scripts ESS en DLLs en deux étapes :
1. Traduction
A l'aide d'une liste des commandes ESS et de leur équivalent, une partie "traductrice" transformera le script ESS en code VB.Net. De plus, cette partie se charge de vérifier la syntaxe : si l'utilisateur fait une erreur en écrivant son script, elle est localisée et annoncée (fichier, numéro de ligne, type d'erreur).
J'ai essayé de faire ces messages d'erreur agréables et user-friendly. Par exemple, mon préféré est "Erreur, une variable contient des immigrés illégaux : [nom de la variable]" Smile
J'ai l'impression que le grand chef va me frotter les oreilles avec de la neige Laughing
Normalement, après cette étape, le code ne doit plus contenir d'erreur de syntaxe.
Le débuggage est quand même assez rude à programmer. Il faut essayer de penser à toutes les erreurs qu'un débutant ne connaissant presque rien à l'ESS pourrait faire. C'est rude.

2. Compilation en DLL
Le code vb.net généré à l'étape 1 est intégré dans une DLL, il sera donc exécuté à très grande vitesse.

Mais comme je l'ai dit plus haut, un utilisateur n'aura qu'à entrer son code ESS et ... c'est tout. S'il y a une erreur à corriger, il sera prévenu et il la corrigera, mais à part ça, il ne verra même pas l'action du compilateur et n'aura pas non plus besoin de savoir que les scripts sont envoyés dans des DLLs, ni ce qu'est une DLL Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
Phurax.62

avatar

Nombre de messages : 24
Age : 26
Date d'inscription : 18/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Mar 31 Juil - 12:52

Tu sacrée boulot que vous faisait, on a juste que a rentrée le code (enfin le script) puis après ça compille sans que l'on voit et a trés grande vitesse en VB puis en DLL OUAH!!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://Daviddu62380.skyblog.com
joplayer

avatar

Nombre de messages : 27
Age : 25
Date d'inscription : 05/01/2007

MessageSujet: Re: Etat de l'Eyengui Script System   Jeu 16 Aoû - 3:52

Tout simplement génial
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.rpgmaking.free.fr
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Sam 22 Sep - 4:19

Je suis toujours vivant. J'ai raté des exams et dois les repasser en février - si je les rate, je peux dire adieu à mes études de physique - mais d'ici là, je devrais trouver du temps pour avancer avec l'ESS.

Maintenant, les conditions sont à peu près supportées. Pourquoi "à peu près" ? Il manque encore trois trucs très importants et un quatrième moins important :
1. une meilleur gestion des erreurs de syntaxe
2. la gestion des endif
3. la gestion des strings
4. l'ajout de mots-clefs conditionnels (and, or, not, xor) composés de plusieurs caractères

Un peu plus de détails :

1. Il va falloir que je dégotte les bugs éventuels et que je pense à toutes les erreurs qu'un débutant peut faire. Il faut que lorsqu'il y a une erreur, le compilateur la signale, arrête la compilation et offre - si possible - une suggestion de la correction à effectuer. C'est plus facile à dire qu'à faire Smile

2. Hé ouais, il n'y a pas d'endif pour le moment. Il faudra donc que je fasse un système les gérant. Il faudra aussi que je tienne compte du fait que si on ouvre une condition dans une boucle, on ne peut pas la fermer après la boucle. Ca, au moins, c'est plus facile à faire qu'à dire ... enfin, presque. Je ne m'y met pas tout de suite parce que c'est un petit peu ennuyant à programmer Smile

3. J'ai basé mon système de conditions sur celui des maths - et le système des maths ne gère pas encore les strings. C'est un petit peu tordu à faire, mais j'ai déjà une ou deux petites idées sur comment m'y prendre.

4. Il faudra aussi que je fasse un système pour remplacer les symboles &, |, ! et ~ par quelque chose de plus lisible pour une personne ne connaissant pas trop la programmation. Pour le moment :
& : and
| : or
~ : xor
! : not

Voici un petit exemple de ce que le système de conditions permet de faire maintenant.

Source ESS:
Code:
float x
set x, (2.8*root[2.0-(root[2.0]^0.52)])^(3.45+6.78)
if (x=5 & x>=2) | ! x>root[2.0]
   set x, 0
endif

Résultat VB:
Code:
Public Sub Test()
dim x as float
x = (2.8*squareRoot(2.0-(squareRoot(2.0)^0.52)))^(3.45+6.78)
if (x=5 and x>=2) or  not x>squareRoot(2.0) then
x = 0
End Sub

Bon, n'ayez pas peur, il est probable que personne n'aura jamais besoin d'écrire des trucs aussi tordus - à part moi bien entendu. Mon idée est que si mon compilateur supporte des conditions et des calculs aussi horribles, il ne devrait avoir aucun problème avec ce que m'sieur tout l'monde fera.
Vous pouvez aussi remarquer que le endif n'apparaît pas dans la source VB. En effet, pour éviter l'ajout de code ayant pour but d'endommager l'ordinateur exécutant le script, seules les commandes autorisées sont écrites. Je n'ai pas encore écrit de système gérant ce genre de problème, mais ça viendra.

Dès le moment où les conditions fonctionneront correctement, je pourrai ajouter les boucles de type while. Dans leur syntaxe, elles ne diffèrent des conditions que par leur nom.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Dim 30 Sep - 9:28

J'ai un petit peu avancé ce week-end. Sans trop entrer dans les détails, la gestion des conditions (if/else/endif) et des boucles (while/endwhile) est terminée. Les maths fonctionnent à peu près correctement et je suis en train d'ajouter un système de gestion des structures (genre mavariable.membre).
Bien entendu, je garde toujours à l'esprit que l'ESS doit être aussi simple que possible Smile

Voici un screenshot de ce qui sera peut-être l'éditeur de scripts. Ce n'est pas encore certain, il faudra que j'en parle au grand chef la semaine prochaine.

Le code visible dans le screenshot n'est qu'un test que j'utilise pour vérifier que le compilateur fonctionne. N'ayez pas peur de tous ces calculs et parenthèses Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Mar 6 Nov - 14:03

Il y a peu, j'ai envoyé la dernière version de l'ESS au grand Manitou, pour qu'il me dise ce qu'il en pense et ce qui faut que je modifie pour qu'on puisse l'intégrer à Eyengui. Petit problème : il faut qu'il comprenne un peu le fonctionnement pour qu'il puisse me donner son avis.

Sa réaction après avoir regardé la source un moment :
Citation :
heu, ca fait peur le nb de if imbriqués
c'est assez violent comme code, faut l'avouer... ca fait peur

J'ai donc proposé de lui faire un petit schéma décrivant sans grands détails le fonctionnement de l'ESS. Comme mon boulot au sein de l'équipe est plutôt invisible, je profite de l'occasion pour vous dire un petit coucou et préciser que je suis un peu comme un canard : même si j'ai l'air de glander, sous la surface, je m'agite frénétiquement Smile

Voici le résumé. Il va peut-être falloir que je fasse des schémas similaire pour les fonctions getValue, getCondition, getFunction, getMemberFunction et getMaths, c'est au chef de décider si c'est nécessaire Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Ven 25 Jan - 8:10

Ça avance, ça avance. Lentement, mais surement Smile

La complexité de la source ne fait qu'augmenter, mais l'ESS commence à montrer ce qu'il a dans le ventre. Je suis en train de développer une application l'utilisant (Zeus), cela me permet de voir ce qu'il faut améliorer/modifier avant que les premiers tests soient effectués avec Eyengui.

J'ai trouvé pas mal de différences entre la théorie (transformer les scripts en vb.net) et la pratique (la théorie + une compilation), j'ai pu résoudre la plupart des problèmes, je planche sur ceux qui restent. Et sur mes examens aussi.

Je suis aussi en train de bosser sur un logiciel de gestion des bibliothèques de fonctions de l'ESS. Ces bibliothèques sont sécurisées, seule une personne ayant accès à ce programme pourra les modifier.

Ah, et hier soir, Zeus a, à l'aide de l'ESS, compilé un exécutable qui fonctionnait parfaitement. Je ne donne pas souvent des nouvelles ici, mais ça avance bien Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
edilyon

avatar

Nombre de messages : 107
Age : 26
Localisation : Chalon sur Saone (71)
Date d'inscription : 06/10/2007

MessageSujet: Re: Etat de l'Eyengui Script System   Ven 25 Jan - 11:15

Ok, ben c'est col alors ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mathias



Nombre de messages : 19
Age : 31
Localisation : Suisse -> Jura -> Rossemaison
Date d'inscription : 19/10/2006

MessageSujet: Re: Etat de l'Eyengui Script System   Ven 22 Fév - 0:42

Je suppose que ça ne dira pas grand chose à beaucoup de monde, mais il est maintenant possible d'ajouter des variables globales et des structures sans passer par une librairie ou la source, mais à l'aide de l'appel de la sub Feed(contenant, contenu, supplementaire, complementaire).
C'est tout con, mais c'est important Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.seuret.com/
Contenu sponsorisé




MessageSujet: Re: Etat de l'Eyengui Script System   

Revenir en haut Aller en bas
 
Etat de l'Eyengui Script System
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Message d'erreur : windows script host
» Appeler un script/ une page PHP?
» [résolu]antivirus system 2011
» [résolu]Infecté par l"Antivirus System 2011"...
» [Résolu] Image system

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Eyengui Project :: Projet EYENGUI :: Etat d'Eyengui-
Sauter vers: