Scripts externes

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

En cours de résolution Scripts externes

Message par Morgan9195 le Ven 22 Juin 2012 - 2:50

Bonjour,

J'ai créé un petit exécutable qui permet de créer des jeux uniquement avec des fichiers externes. Vous allez me dire: "Pourquoi se forcer à utiliser que des fichiers externes alors que Game Maker permet de créer des jeux plus pratiquement?"
Bonne question, et bien cet executable ne permet pas juste de faire ça, il permet d'utiliser n'importe quelle ressource externe (même les scripts mais je prépare une fonction pour pouvoir les crypter) avec quelques avantages comme des fonctions supplémentaires.
Déjà, un grand avantage que Game Maker n'offre pas, cet executable permet de voir le jeu PENDANT que vous écrivez le script. Cet avantage et trés utile si vous voulez programmer sans perdre de temps à tester votre jeux toutes les 20 secondes.
De plus, j'ai intégré de nouvelles fonctions dans cet executable vous permettant de programmer plus vite.
Par exemple, si vous voulez créer un début de FPS en 3D avec une vue à la première personne, avec cet executable il vous suffira d'écrire ceci:

dans le dossier config.txt:
d3d_start();
x=200;
y=200;

et dans le dossier script0.txt:
draw_3D();
light(false);
draw_set_color(c_blue);
draw_rectangle(0,0,400,400,false);
camera_3D(20);

Voila, vous avez déjà un jeu 3D avec une vue à la première personne (à la Minecraft) et un sol bleu. Ca va vite n'est-ce pas? x)
Cet executable m'a servit à passer du D&D au GML et j'ai réussis sans difficulté. Je l'utilise encore aujourd'hui car il est très pratique pour mélanger de la 2D et de la 3D sans que le jeu bug ou n'affiche un message d'erreur.

Activer/desactiver un script:
Pour désactiver un fichier, ajoutez "off_" devant son nom, l'executable ne le lira pas et vous vous souviendrez facilement qu'il est désactivé.
Attention, certains fichiers sont indispensable au bon fonctionnement de l'executable.

Le fichier config s'execute comme l'event game_start et les fichiers script s'executent comme l'event draw.
Les fichiers script peuvent aller de script0.txt à script100.txt

Avantages de cet executable:
- On peut éditer le jeu pendant que celui-ci est allumé et constater les améliorations en direct (en faisant ctrl+S dans le script en cours d'édition).
- Ca peut aider à passer du D&D au GML.
- De nouvelles fonctions sont disponibles permettant de faciliter la création de jeux et de logiciels.

Inconvenients:
- Les scripts ne sont pas colorés, on ne voit donc pas les erreurs de syntaxe.
- Les jeux créés sur cet executable sont en open source (ne vous inquietez pas, je bosse sur un 2eme executable qui les cryptera).
- Les ressources peuvent parfois s'inverser si vous utilisez la fonction game_restart();
- Pas du tout d'utilisation de D&D, je vous fournirais un logiciel de traduction D&D vers GML si vous voulez.
- 1 seul objet (mais si on remplace les objets par des draw ça donne le même rendu).

Le jeu porte le nom par défaut: "Game created with Script - by Morgan9195"
Pour changer ce nom, placer ceci dans le fichier config.txt:
room_caption="Nom de votre jeu";

Tous les jeux possèdent aussi un intro en 3D, veuillez m'en excuser mais je l'aime bien ^^
_____________________________________________________________________________

Liste des nouvelles fonctions:
_____________________________________________________________________________

draw_page(x1,y1,x2,y2);
afficher une fenêtre (inutile pour le moment, en cours de dévellopement).
Ses couleurs sont définit par set_color();
_____________________________________________________________________________

mouse_in(x1,y1,x2,y2);
retourne true si la souris est dans le rectangle x1,y1,x2,y2.

exemple:
if mouse_in(10,10,100,100)
game_end();
le jeu s'arrêtera si la souris entre dans la zone définit
_____________________________________________________________________________

pourcent(valeur,total);
retourne le pourcentage de la valeur dans la totalité.

exemple:
show_message(pourcent(2,4));
ceci affichera "50" car 2/4 = 50/100
_____________________________________________________________________________

erreur(raison);
ceci affiche un message d'erreur avec la raison définit.
_____________________________________________________________________________

variable_limite(variable,mini,maxi);
retourne à la valeur entre mini et maxi la plus proche de la valeur de la variable.

exemple:
variable=3;
show_message(variable_limite(variable,10,20));
ceci affiche: 10

autre exemple:
variable=14;
show_message(variable_limite(variable,10,20));
ceci affiche: 14
_____________________________________________________________________________

set_color(color1,color2,color3);
fonction à mettre avant draw_page pour lui fournir les couleurs dont on veut qu'il utilise. Attention: color3=background_color
_____________________________________________________________________________

message_box(width,height,wait);
Affiche un message dans le coin de la page.
width et height sont les dimensions du message et wait c'est le temps ou le message reste.
Ses couleurs sont définit par set_color();

exemple:
if create();
{
msgbox_titre="Serveur 234X24STUDIO";
msgbox_ligne1="Serveur prive Minecraft";
msgbox_ligne2="Rejoignez-nous !";
msgbox=true;
msgbox_clic=false;
}

message_box(false,false,false);

if msgbox_clic=true
{
action_webpage("http://www.wix.com/234X24STUDIO/Minecraft/");
msgbox_clic=false;
}
_____________________________________________________________________________

Les events:

event(ID);
l'identifiant doit être un nombre entier. retourne true si cet evenement est definit.

event_define(ID);
definit un evenement.

event_ini(nombre);
initialise tous les evenements entre 0 et nombre.

exemple:
if create()
event_ini(10);
if mouse_in(10,10,100,100)
event_define(1);
if event(1)
{
show_message("votre souris est dans la zone 10,10,100,100");
}

Les events fonctionnent un peu comme les alarmes mais elles n'ont pas de délais d'attente. Les events sont illimités contrairement aux alarmes.
_____________________________________________________________________________

import_sprite(nom,x,y);
nom: chemin d'acces du sprite
x et y définissent l'origine du sprite

exemple:
scritecroix=import_sprite("res/spr/croix.png",0,0);
_____________________________________________________________________________

ini_3D();
initialise la 3D.
_____________________________________________________________________________

light(valeur);
active/désactive les lumières 3D et les ombres. Cette commande est à utiliser si l'on veut qu'une surface 2D ou 3D soit tout le temps éclairée en mode 3D.

exemple:
light(false); //désactive les lumières 3D
light(true); //active les lumières 3D
_____________________________________________________________________________

draw_2D();
passe en mode dessin 2D. Attention, ce n'est pas du tout comme la fonction d3d_end();
_____________________________________________________________________________

draw_3D();
passe en mode dessin 3D. Attention, ce n'est pas du tout comme la fonction d3d_start();
_____________________________________________________________________________

centre(valeur1,valeur2);
retourne à la valeur situé pile entre les 2 valeurs. La valeur 1 doit être inférieure à la valeur 2.

exemple:
show_message(centre(20,60));
ceci va écrire: 40
_____________________________________________________________________________

texture_3D(value);
active/désactive le lissage des textures 3D. Fonctionne comme la fonction light();
il faut lui donner une valeur true ou false. Bon, ça c'est une simple interpolation (pourquoi j'ai fais cette fonction qui existe deja sous un autre nom ^^).
_____________________________________________________________________________

camera_3D(activer,x,y,z,rotation);
Finis les soucis de calcul liés à la camera 3D à la 1ere personne, cette fonction place la camera à la 1ere personne, déplaçable avec la souris.
Mettez true ou false dans "activer". Si vous mettez false, la camera sera quand même affichée mais ne sera pas déplaçable par la sourie.
x, y et z définissent l'emplacement de la camera (tête du personnage).
La rotation est une valeur entre -10 et 10 qui permet de coucher la camera sur le côté. Mettez 0 si vous souhaitez avoir une camera droite.
_____________________________________________________________________________

mouse(value);
ceci affiche/masque la souris. Cette fonction existait deja mais à été renommé pour faciliter la programmation aux débutants.

exemple:
mouse(true); //affiche la souris
mouse(false); //masque la souris
_____________________________________________________________________________

page_size(width,height);
change les dimensions de la page, mais malheuresement restart la room.
_____________________________________________________________________________

draw_sprite_3Diso(largeur,hauteur,texture);
fonction en cours de développement.
_____________________________________________________________________________

show_fps();
fonction à placer après toutes les fonctions de dessin 2D et 3D.
Cette fonction permet de voir le FPS du jeu dans le coin de l'écran.
Il est necessaire que la commande s'execute en dessin 2D et sans lumieres (draw_2D(); et light(false)Wink
_____________________________________________________________________________

valeur=variation(valeur1,valeur2,time1,time2,time);
Cette fonction est trés complexe car elle est l'équivalent d'un path.
Cette fonction détermine une valeur par rapport à un temps. Cette valeur peut se modifier progressivement ou violament.
elle se détermine comme une fonction affine. Regardez l'exemple de cette fonction pour mieux la comprendre.
_____________________________________________________________________________

Si vous rencontrez un problème avec une fonction, je suis disponible pour vous aider.





Téléchargement:
>>>>>>>>>>>> mediafire.com ?z512n4c8q8ch6x3 <<<<<<<<<<<<

Tous les executables contenus dans ce téléchargement sont les mêmes, vous pouvez les inverser entre eux si vous voulez, vous verrez que ça marche quand même x)
Dans ce téléchargement, j'ai mis plusieurs exemples d'utilisation des fonctions que j'ai ajouté mais ce n'est qu'un début, je n'ai pas encore ajouté toutes les fonctions prévues. J'essayerais au plus vite d'ajouter des fonctions pour faciliter le multijoueur et des fonctions pour crypter/décrypter les scripts (sans dll bien sûr).

PS: Ce logiciel permet aux gens possédant la version gratuite de Game Maker de bénéficier des fonctions de la version complète.
PSS: Désolé pour cette longue lecture, j'en ai encore mal aux doigts ^^


Dernière édition par Morgan9195 le Mer 1 Mai 2013 - 15:24, édité 10 fois
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par thomas89300 le Ven 22 Juin 2012 - 5:17

Super ton truc, je le testerais dès que je peux


Déjà un bout de temps au service de Game maker !
Besoin d'une question ? => Mp, ravi d'y répondre !
Dispo sur Discord: [EG]Shinshikun#5496
avatar
thomas89300
Modérateur
Modérateur

Messages : 1460
Pourcentage d'avancement : 666%

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par OnLime le Ven 22 Juin 2012 - 6:07

c'a a l'air énorme Oo' je test
avatar
OnLime
Programmeur
Programmeur

Messages : 678
Pourcentage d'avancement : 2%

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Ven 22 Juin 2012 - 7:32

J'ai oublié de préciser que le fichier config.txt s'execute seulement une fois au démarrage du jeu (exactement comme l'event game start) et que les fichiers script0.txt à script100.txt s'executent comme des draw. Pour créer les autres events disponibles en D&D sur Game Maker, il faut l'écrire en GML dans un fichier script.

Exemple:

if mouse_check_button_pressed(mb_left)
{
show_message("ceci est l'event clic droit pressé");
}

Aide: utilisez mouse_in(x1,y1,x2,y2); si vous voulez un event de clic de souris à une certaine zone précise de l'écran.
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par SuperOuf le Dim 24 Juin 2012 - 9:45

Impressionnant !
C'est totalement réalisé par toi même ?


  Index || Réglement || Tutoriels || Aide || Projets    
avatar
SuperOuf
Administrateur général et DRH
Administrateur général et DRH

Messages : 3908

Voir le profil de l'utilisateur http://www.deuxmetrescubes.fr

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Dim 24 Juin 2012 - 17:22

Oui, mais il y a encore beaucoup de bugs dans certaines fonctions comme par exemple l'utilisation de draw_page() et de message_box() dans les jeux 3D ou l'utilisation de draw_2D() dans les jeux 3D à la 1ere personne, mais j'y travaille Smile
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par kanai le Dim 24 Juin 2012 - 18:03

Sa peut être pratique pour utilisé 2 logiciels en même temps. (style fighter maker qui est meilleur que game maker niveau combat mais médiocre pour tout menu mode histoire)
avatar
kanai
Vétéran de GM
Vétéran de GM

Messages : 1781
Pourcentage d'avancement : 50%

Voir le profil de l'utilisateur http://katanagames.netne.net

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Dim 24 Juin 2012 - 20:07

J'ai amélioré quelques fonctions, dont principalement la fonction camera_3D(hauteur);
qui s'appelle maintenant camera_3D(activé/désactivé,hauteur);

Les améliorations de cette fonction:

- Cette fonction supporte maintenant les draw_2D. On peut donc afficher une barre de vie ou d'inventaire sur l'écran sans problème.

- Le contrôle de la camera par le jeu sera désactivé si vous mettez false dans le 1er argument. ça peut être pratique pour libérer temporairement la souris ou encore pour forcer la camera à rester immobile à un moment précis du jeu (pour des cinématiques par exemple).

Pour vous montrer ça plus en pratique j'ai créé un exemple supplémentaire il se nomme "camera_3D (avancé)".
Cet exemple est inspiré de la vidéo suivante:



Je viens de changer réuploader les executables dans le 1er post. Le lien de téléchargement s'y trouve.

PS: J'édite ce post (le 25/06/12 à 11h22) juste pour dire que je viens de réupload encore une fois pour améliorer un peu l'exemple "camera_3D (avancé)" (celui avec le train). C'est pas encore finis, j'en ferais un jeu quand ça sera prêt.

PSS: J'édite ce post (le 25/06/12 à 16h19) juste pour dire que je viens
de réupload le fichier. J'ai ajouté des rails sous le train. x)
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Mar 24 Juil 2012 - 4:25

Nouvelle mise à jour avec des fonctions et des exemples supplémentaires. J'ai modifié le 1er message de la page, vous y trouverez tous les changements ainsi que le nouveau lien de téléchargement. Bon jeu ! Smile
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par SuperOuf le Jeu 9 Aoû 2012 - 13:51

Pour le téléchargement, cela me met "invalide or inexistant files" Question


  Index || Réglement || Tutoriels || Aide || Projets    
avatar
SuperOuf
Administrateur général et DRH
Administrateur général et DRH

Messages : 3908

Voir le profil de l'utilisateur http://www.deuxmetrescubes.fr

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Jeu 9 Aoû 2012 - 22:07

Ah oui, je viens de changer le lien, voici le nouveau lien:

mediafire.com ?kmd16o4olibqm9i

Si tu comprend mal comment le programme fonctionne, je peux t'aider via skype (et te passer les codes sources si tu veux)
Je vais bientôt mettre en ligne une nouvelle version de cet executable. Ca sera un logiciel game maker spécialisé en 3D (avec toutes les fonctions 3D en D&D, schematisés et visualisables pendant la conception du jeu). Je réutiliserais les codes de l'éditeur de maps SCP pour le faire.
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par SuperOuf le Ven 10 Aoû 2012 - 9:27

Lorsque je lance l'exe, cela me met le message d'erreur :

___________________________________________
FATAL ERROR in
action number 1
of Draw Event
for object Controller:

erreur: Ce jeu ne possède pas les fichiers externes nécessaires pour pouvoir fonctionner.

Pourtant, tout les fichiers du zip sont dans le même dossier.


  Index || Réglement || Tutoriels || Aide || Projets    
avatar
SuperOuf
Administrateur général et DRH
Administrateur général et DRH

Messages : 3908

Voir le profil de l'utilisateur http://www.deuxmetrescubes.fr

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Ven 10 Aoû 2012 - 11:24

Normal, c'est le mauvais exe. Il y a plusieurs exe dans le zip, ils sont tous identiques mais ce sont des jeux différents. Un seul de ces exe affiche ce message d'erreur car c'est un jeu incomplet.
En fait, on pourrait comparer l'executable à un launcher. Le jeu n'est pas contenu dans l'exe mais dans les fichiers externes.
Seul les exe possédant un dossier "res" à côté d'eux est un jeu, les autres sont juste des launcher (ou des lecteurs de fichiers externes).

J'ai remarqué que le fps de ces jeux est assez faible, c'est parce qu'il actualise constamment les scripts externe (de sorte qu'on puisse voir les modifications directement pendant qu'on écrit les scripts). Dans une prochaine version je vais remplacer cette actualisation constante par une actualisation periodique pour économiser les fps.
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par thomaslegeek le Sam 27 Oct 2012 - 0:37

il permet de creer des jeux en 3D? 0o
avatar
thomaslegeek
Petit créateur
Petit créateur

Messages : 81

Voir le profil de l'utilisateur http://www.youtube.com/channel/UCe6DAeiOut71K9Jc_fQ3X5g?feature=

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Dim 28 Oct 2012 - 16:42

Oui mais je vais entièrement le refaire car il me semble trop incomplet.
Il est cependant très pratique pour créer des jeux en 3D facilement. Je l'utilise actuellement pour créer mon futur jeu: http://234x24studio.wix.com/scp
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par thomas89300 le Mer 31 Oct 2012 - 5:23

Ce sujet ne serait pas mieux dans la catégorie " Ressource/ Programmation " ?


Déjà un bout de temps au service de Game maker !
Besoin d'une question ? => Mp, ravi d'y répondre !
Dispo sur Discord: [EG]Shinshikun#5496
avatar
thomas89300
Modérateur
Modérateur

Messages : 1460
Pourcentage d'avancement : 666%

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par thomaslegeek le Dim 4 Nov 2012 - 19:58

Ok,je teste et je te dis des nouvelles ^^
avatar
thomaslegeek
Petit créateur
Petit créateur

Messages : 81

Voir le profil de l'utilisateur http://www.youtube.com/channel/UCe6DAeiOut71K9Jc_fQ3X5g?feature=

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par thomaslegeek le Dim 4 Nov 2012 - 19:59

UP,ton lien est mort ^^
avatar
thomaslegeek
Petit créateur
Petit créateur

Messages : 81

Voir le profil de l'utilisateur http://www.youtube.com/channel/UCe6DAeiOut71K9Jc_fQ3X5g?feature=

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Morgan9195 le Ven 8 Fév 2013 - 22:13

Je viens de m'apercevoir d'un truc que j'ai oublié de dire. J'ai créé un site internet sur lequel je poste l'avancement du projet, des aides et le téléchargement (comment j'ai fais pour oublier de l'annoncer sur ce topic ^^).
Donc voici le lien du site:
http://234x24studio.wix.com/script

EDIT (pour avoir oublié de répondre à une question):

thomas89300 a écrit:Ce sujet ne serait pas mieux dans la catégorie " Ressource/ Programmation " ?
Vu les très nombreuses nouveautés qu'offre ce programme depuis sa création, je commence à réaliser que je me suis trompé de catégorie. Je ne pensais pas que le projet irait ci loins. J'ignorais qu'aujourd'hui arrêterais completement d'utiliser game maker pour programmer, je n'aurais jamais pensé que Script serait capable de le remplacer à ce point. x)
avatar
Morgan9195
Créateur amateur
Créateur amateur

Messages : 167
Pourcentage d'avancement : 69%

Voir le profil de l'utilisateur http://www.scriptdev.xyz/

Revenir en haut Aller en bas

En cours de résolution Re: Scripts externes

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum