BEFORE: Tuto RME: installation
-------------------------------------------------
Yahallo,
Alors voici comment utiliser RME builder, car il ne sert pas qu'a installer RME
RMEbuilder
UTILISATEUR
Premier lancementPour lancer RMEBuilder, il suffit de cliquer sur
RMEBuilder.bat (qui est un raccourci pour lancer le logiciel). Au premier lancement, le logiciel demandera de choisir le projet cible. Il est impératif de pointer un projet RPGMaker VXace valide.
Une fois que le logiciel connait le projet cible, un dispositif de saisie de commande est accessible. L'usage de ce dispositif permet d'entrer des commandes relatives à la construction d'un projet.
A tout moment il est possible de changer de projet cible en entrant la commande
target, qui en plus de donner le chemin du projet cible, permet de changer cette cible.
Voici un exemple de premier lancement de RMEBuilder.
Composition d'un schémaUne fois qu'un projet est ciblé dans le logiciel, on peut désormais ajouter les scripts que l'on veut dans son projet. Pour cela, on se sert de la commande
show qui affiche la liste des paquets disponibles sur le net.
La commande
about nom-du-paquet permet de renvoyer les informations (description, auteurs etc) relative à un paquet.
Pour ajouter des paquets au projet, il suffit d'utiliser la commande
add nom-du-paquet. Cette commande aura pour effet d'ajouter un paquet dans la liste des paquets à intégrer au projet.
La commande
schema permet d'afficher la liste des paquets à installer.
Il est évident que si RMEBuilder est fermé, à sa réouverture, l'ensemble des scripts présents dans le schéma seront toujours visibles ! Moduler le schémaPar défaut, lors de la phase de "compilation", que nous verrons un peu plus tard, les scripts sont installés par ordre d'ajout. Il est donc évidemment possible de changer cet ordre :
remove nom-du-paquet : supprime le paquet de la liste des paquets à compiler
move nom-du-paquet up : monte le paquet référencé d'une place
move nom-du-paquet down : descend le paquet référencé d'une place
Compiler votre projetUne fois que votre schéma est, de votre point de vue, complet, vous pouvez compiler votre projet. Une compilation dans RMEBuilder consiste à télécharger les scripts présent dans le schéma et de les assembler dans le fichier
Scripts.rvdata2.
Attention, avant de "compiler" votre projet, il est impératif de fermer votre projet dans RPGMaker. Vous pourrez l'ouvrir après, une fois la compilation exécutée. Au lancement de la commande
build, le logiciel va télécharger les scripts s'il ne les connait pas, et va créer un fichier
Scripts.rvdata2 qu'il va fusionner avec les scripts déjà existants. Votre projet peut donc déjà contenir des scripts pré-installés.
À chaque fois que la commande
build est appelée, les éléments construits par RMEBuilder sont purgés. Donc si vous retirez, après une compilation, un élément de votre schéma (via la commande
remove) et que vous recompilez (
build), les mises à jour auront bien été prises en compte.
Gestion des AssetsIl arrive parfois que lors de la compilation de votre projet RMEBuilder vous demande si vous désirez fusionner les assets. C'est lorsque le paquet propose des fichiers externes (des images ou une DLL par exemple). Lors de la première compilation avec un script requierrant des assets, il est généralement conseillé de répondre oui (Y). Par contre, lorsque le script a déjà été ajouté, il n'est pas nécéssaire de re-fusionner les assets. Imaginez par exemple qu'il s'agit d'image que vous avez déjà modifié, il serait dommage de perdre ces modifications!
A tout moment, vous pouvez récupérer les assets d'un paquet en utilisant la commande get assets of package-name.
Mettre à jour des paquetsAu lancement de RMEBuilder, ce dernier vérifie s'il existe des mises à jour pour vos scripts installés. C'est très pratique pour rester au courant des ajouts dans les scripts :
Vous pouvez aussi vous servir de la commande
check updates, qui vérifiera si des paquets ne sont pas à jour.
Une fois qu'un paquet est mis à jour, il est impératif de refaire un build, donc en fermant le projet RPGMaker pour que la mise à jour soit prise en compte !Gestion des dépendancesSi un paquet dépend d'un autre paquet, il n'est pas nécéssaire de le référencer dans le schéma. Au moment de la construction (à l'appel de la commande
build ou
build dev), le logiciel téléchargera les dépendances et les installera. Si un paquet à des dépendances et qu'il est supprimé du schéma, si la dépendance n'est pas explicitement (
add) membre du schéma, elle sera aussi supprimée.
Compilation temporaireLe problème de RMEBuilder, c'est qu'il faut le fermer à chaque ajout/modification. Pour palier à ce problème, il est possible de faire une compilation temporaire. En utilisant la commande
build dev, vous créez un fichier temporaire, qui, au lancement du projet lira les scripts depuis l'endroit où ils sont téléchargés. L'avantage de cette méthode est qu'il ne faut utiliser le
build dev (et donc fermer le projet RPGMaker) que quand on ajoute ou supprime un fichier dans le schéma. Chaque mise à jour de paquet n'implique pas de "rebuilder" le projet. C'est très pratique pour les scripts qui sont souvent mis à jour.
Par contre, avant de diffuser votre projet, il est impératif de faire un
build pour ne plus faire dépendre le jeu des fichiers temporaires!
Mettre à jour RMEBuilderQuand une mise à jour de RMEBuilder est disponible, le logiciel vous prévient, il suffit de valider la mise à jour et le logiciel se met tout seul à jour.
Avant de diffuser son projetUne fois que votre projet est fini, vous pouvez supprimer le fichier
build_schema.rb (sans avoir oublié de faire une dernière fois
build, pour être sur que tous vos scripts sont installés) du répertoire du projet. Et il ne vous reste plus qu'a crypter (ou pas) votre projet et le diffuser !
--------------------------------------------------------------
Pour les scripteurs
RMEBuilder n'est évidemment pas destiné à ne rester qu'un outil pour diffuser nos scripts. Nous espérons qu'il sera utilisé par un maximum pour partager facilement des scripts à travers le monde ! (étoiles dans les yeux)
Rendre un script accessible depuis RMEBuilder
Medium de publicationPour qu'un script soit accessible depuis RMEBuilder, il est important de comprendre qu'il doit être disponible depuis le net. Pour cela, nous avons pris l'habitude d'utiliser Github, qui nous permet de versionner nos scripts, cependant, vous pouvez vous servir de Dropbox (même si Github est vraiment adapté à ça!).
Notion de paquetPour qu'un script soit compréhensible par RMEBuilder, il est important que son anatomie soit décrite dans un fichier, qui devra toujours porter le nom
package.rbExemple avec un paquet simpleLe paquet pris en exemple est le paquet
nuki-break-scene, qui permet de créer facilement un système de pause. Son répertoire Github se trouve ici.
L'anatomie du paquet est assez simple,
script.rb est le script (logique!) et
package.rb décrit le paquet :
- Code:
-
# Package description
Package.new(
name: 'nuki-break-scene',
version: vsn(1, 0, 0),
authors: {'Nuki' => 'xaviervdw@gmail.com'},
components: ['script.rb'],
description: 'Provide a little customizable scene for InGame\'s pause',
)
Comme vous pouvez le voir, il suffit d'instancier un objet
Package. Ce paquet correspond au strict minimum.
name: correspond au nom du paquet
version: décrit la version (c'est grâce à cet argument qu'on peut décrire les mises à jour)
authors: un hash avec comme clé l'auteur et comme valeur son courriel
components: une liste des fichiers, dans l'ordre, qui constituent le script. Leur chemin est relatif au fichier
package.rb description: une petite description du paquet
Exemple avec plusieurs fichiersCette fois ci on se sert du paquet de RME. Comme vous pouvez le voir, il n'y a pas beaucoup de changements, si ce n'est qu'il y a plusieurs auteurs et plusieurs fichiers constituants :
- Code:
-
# Package description
Package.new(
name: 'RME',
version: vsn(0, 0, 5),
authors: {
'Nuki' => 'xaviervdw@gmail.com',
'Grim' => 'grimfw@gmail.com',
'Raho' => '',
'Joke' => 'joke@biloucorp.com',
'Mspawn' => ''
},
components: [
'SDK.rb',
'SDK.Gui.rb',
'Database.rb',
'Internal.rb',
'EvEx.rb',
'Commands.rb',
'Incubator.rb',
'EE4Cmds.rb',
'Tools.rb',
'DocGenerator.rb',
'Doc.rb'
],
description: 'RME is a powerful tool to improve your RPGMaker VXAce experience!'
)
Exemple avec dépendancesLe script
DisplayText (visible ici) requiert l'installation préalable du script
StandardizeRGSS. Il suffit de le spécifier dans un argument
dependancies, qui prend une liste des scripts dont dépendent le script en question :
- Code:
-
# Package description
Package.new(
name: 'display-text',
version: vsn(1, 0, 0),
authors: {'Nuki' => 'xaviervdw@gmail.com'},
components: ['script.rb'],
description: 'Provide a full customisable text engine',
dependancies: ["standardize-rgss"]
)
Voila, vous en savez assez pour packager correctement vos scripts!
Exemple avec des AssetsIl arrive qu'un script soit compléter de fichiers complémentaires, des assets. Par exemple, une DLL ou encore des images. Pour ça il suffit d'ajouter un paramètre
assets qui est un
Hash dont la clé est l'url (relatif ou non) de la ressource et la valeur est sa position dans le projet. Voici par exemple le fichier paquet du script "raho-useless", qui ne sert que de démonstration aux assets :
- Code:
-
# Package description
Package.new(
name: 'raho-useless',
version: vsn(1, 0, 0),
authors: {'Hyperaho' => ''},
components: ['script.rb'],
assets: {
'assets/raho1.png' => 'Graphics/Pictures/raho1.png',
'http://full.ouplo.com/f/12/AgkA.png' => 'Graphics/Pictures/raho2.png'
},
description: 'Epic script for Epic projects'
)
Ce paquet utilise volontairement une image relative et une image absolue.
Attention ! N'oubliez pas que RMEBuilder se veut utilisé par un maximum de personne, n'hésitez donc pas à préfixer vos assets pour éviter les collisions ! Par exemple, si je propose un menu qui utilise une image, ne pas hésiter à nommer l'image nuki-menu-mon-image.png, pour garantir qu'elle n'écrase aucune image (ou qu'elle ne soit écrasée par personne).Soumettre son paquet comme un patch à RMEBuilderLa liste des paquets est un dépôt Github. Pour y contribuer, il suffit simplement de "
forker" ce projet. Pour ajouter un paquet, il suffit de modifier la liste des paquets disponibles dans le fichier
packages.rb. En ajoutant une relation
"nom du paquet" => "url du package.rb relatif".
Attention, il faut pointer vers un fichier brut. Pas vers une page html, pour Github il faut impérativement utiliser le lien raw pour que seul le contenu du fichier soit exporté (et non toute la page HTML).Sur la sémantique des nom de paquetIl n'y a pas de sémantique formellement fixée. Cependant, pour éviter des collisions de paquets, on propose de préfixer le nom d'un paquet par le pseudonyme de l'auteur. Si le paquet est un incontournable, il est possible de ne pas le préfixer. Cependant, nous nous réservons le droit de refuser une modifications de la liste des paquets, si un paquet en écrase un autre.
Le répertoire customPackagesDans le répertoire
RMEBuilder/customPackages, vous pouvez placer vos scripts en production. Il permet de lire des paquet sans qu'ils soient déjà hebergés. Vous pouvez donc créer des répertoires pour vos scripts en production dans ce répertoire et les travailler comme s'ils étaient déjà publiés. Cela évite de devoir publier d'entrée de jeu un script non terminé.
De plus, avec la compilation via
build dev, vous pouvez modifier votre code depuis votre éditeur favori (emacs), sans devoir faire sans arrêt des copier-coller à la moindre modification.
Clonage de paquet existantPour une raison quelconque, on pourrait avoir envie de modifier un paquet déjà publié par quelqu'un d'autre, dans RMEBuilder vous pouvez vous servir de la commande
clone nom-du-paquer et le paquet sera copié dans votre répertoire
RMEBuilder/customPackages. Un paquet présent dans
RMEBuilder/customPackages sera toujours placé au détriment d'un paquet externe dans la phase de construction, donc pour reprendre le paquet initial, il faut le supprimer du répertoire
RMEBuilder/customPackages ou alors utiliser la commande
reclone nom-du-paquet pour écraser la copie locale par la dernière version.
FIN -------------------------------------------------
NEXT: Interrupteur/varriable/labels + locaux