RMEBuilder, the first package manager for RPGMaker !

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 34
RMRK Junior
For a best readding, go here http://rmex.github.io/RMEBuilder/uk.html

Package Manager for RPGMaker VXAce


RMEBuilder is a tool for installing scripts in RPGMaker VXAce.It makes dependency management easier. On top of the comfort it provides, RMEBuilderis free software, licensed under LGPL.
RMEBuilder synchronizes via internet with the latest versions of scriptsin order to guarantee that they are always up-to-date (and cover all known bugs)!
Overview


The idea behind RMEBuilder is to allow script users to easily and quicklyinstall scripts. Indeed, RMEBuilder is a tiny executable that permits theadding of scripts to one or several projects. Here is an example of a typical method ofusing RMEBuilder.
  • Select a project
  • Add (with commands) the script list for the project
  • Start the project building routine
  • Start working!
It's also possible to update scripts and, obviously, any script writer can add to the databaseof available scripts (we hope they do)!
Downloading


RMEBuilder can be obtained really easily, just go to theReleases pageand download the file RMEBuilder.zip.
Installing
In order for RMEBuilder to work perfectly, configuring your antivirus/firewallis sometimes necessary so that it lets RMEBuilder download files.

Installing RMEBuilder is very straightforward, just unzipRMEBuilder.zip in the chosen folder (not necessarilyinside an RPGMaker project folder, you can use RMEBuilder to buildseveral projects at once).
Normal use

First launch


To launch RMEBuilder, you simply need to click onRMEBuilder.bat (which is a shortcut to launch the application).Upon starting for the first time, the application will ask you to choose the target project.Choosing a valid RPGMaker VXAce project is mandatory.
Once the application knows the target project, a command line device can be accessed.With it, you can enter commands relating to project building.You can change your target project at any time by entering the targetcommand, which, on top of giving you the current target project path, allows you to change it.

Here is an example of RMEBuilder's first launch.
Zoom in!

Composition of a schema


After a project has been chosen in the application, you can now add to it any scripts you want.To do so, you can use the show command which displays the listof available packages on the internet.
The about package-name returns information (description, authors,etc.) about a package.
Zoom in!


In order to add packages to a project, simply use theadd package-name command. This command's effect is to adda package to the list of packages to be added to the project.
The schema command displays the list of packages to be installed.
Zoom in!
It is obvious that if RMEBuilder is closed, all scripts in theschema will be saved and will still be there when you reopen it!
Modifying the schema


By default, during the compilation step (which we will see later),scripts are installed in the order in which they were added. Obviously, you can change the order:
  • remove package-name: removes the package from the list
  • move package-name up: moves the package up one place
  • move package-name down: moves the package down one place

Zoom in!
Haha I made a typo in the gif (mouwe instead of mouse, aha) :D sorry!
Compiling the project


Once your schema is complete, you can compile your project.Compiling in RMEBuilder consists in downloading the scripts currently in the schemaand assembling them in the Scripts.rvdata2 file.Be aware that, before compiling your project, it is mandatory that you close it in RPGMaker.You will be able to open it back later, once the compilation is done.
Zoom in!


When the build command is used, the application will download allunknown scripts, and will then make a Scripts.rvdata2 file, which itwill merge with the other scripts.This means your project can have pre-installed scripts without problem.
Each time the build command is called, elements built byRMEBuilder are purged. Thus, if you decide to remove an element from your schemaafter compiling (with the remove command), then it will be takeninto account upon recompiling (build).
Managing assets


When compiling your project, RMEBuilder sometimes will ask you if you wantto merge assets. It happens when packages contain external files (images or DLLs for example).Upon first compiling the project with a script that requires assets, it is recommended to answerYes (Y). However, after the script has been added once, you do not need to merge its assets again.If you edit the images, merging the assets again will override all your edits, it would be bad!At any time, you can fetch a package's assets with theget assets of package-name command.
Updating packages


Upon launch, RMEBuilder will check if updates for your installed scripts exist.It's very useful for keeping up-to-date with script versions and edits:
Zoom in!


You can also use the check updates command,which will check if packages are up-to-date.Once a package is updated, running the build command(after closing the RPGMaker project) is mandatory in order to take the update into account!
Dependency management


If a package depends on another package, it's not necessary to reference the latter in the schema.When building the project (with the use of the build or build devcommands), the application will download and install all dependencies. If a package with dependencies is removed from the schema,the dependencies will be removed as well (unless they were explicitly added (with add) to the schema).
Temporary compilation


The problem with RMEBuilder is that you have to close it after every edit.In order to address this, it is possible to compile temporarily. Using the build devcommand will make a temporary file that, when the project is launched, will read the scripts from where they were downloaded.This allows you to only use build dev (and so, close the RPGMaker project) whenadding or removing a file in the schema.Package updates don't force a project rebuild. It's very convenient for oft-updated scripts.
However, before distributing your project, executing a build is mandatory so that your project does notrely on temporary files anymore!
Updating RMEBuilder


When an update for RMEBuilder is available, the application will warn you.You simply need to confirm it and it will update itself.
Zoom in!

Before publishing your project


Once your project is complete, you can remove the build_schema.rbfile from the project folder (don't forget to build, in order tomake sure all your scripts are installed). Now all that's left is to encrypt (or not) your projectand diffuse it!
For script writers


RMEBuilder is obviously not destined to be used to publish and store onlyour scripts. We hope that it will be used by a lot of people to easily sharescripts throughout the world! (starry eyes)
Make a script available in RMEBuilder

Publishing medium


In order for a script to be available in RMEBuilder, it is important to understandthat it must be available on the internet. For that, we personally use Github,which allows us to manage versions of our scripts. You can also use Dropbox, but Github is really suited for the job!
Packages


In order for a script to be fully compatible with RMEBuilder,its structure must be described in a file that will always be named package.rb.
Example with a simple package


The package used in this example is nuki-break-scene,which allows users to easily create pause systems.Its Github folder can be found here.
The package's structure is simple enough: script.rb is the script (elementary!)and package.rb describes the package:
Code: [Select]
# Package descriptionPackage.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',)
As you can see, you simply need to instantiate a Package object.This is the minimum required for a package.
  • name: name of the package
  • version: version number (updates can work thanks to this argument)
  • authors: a hash with the authors as keys and their email addresses as values
  • components: an ordered list of the script files. Their path is relative to the package.rb file
  • description: a little description for the package
Example with several files


This time we are going to use the RMD package as an example.As you can see, there is not a lot of changes, except that there are several authors and several files:
Code: [Select]
# Package descriptionPackage.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!')
Example with dependencies


The DisplayText script(which can be found here)requires installing the StandardizeRGSS script beforehand.You simply need to specify it in a dependancies argument, whichtakes a list of scripts on which the current script depends:
Code: [Select]
# Package descriptionPackage.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"])
That's it, you know enough to start correctly packaging your scripts!
Example with assets


It may be that a script contains additional files: assets. For example, a DLL or images.To include them you simply need to add an assets parameter, which isa Hash whose keys are resource URLs (relative or not) and values are their positions in the project.For example, here is the "raho-useless" package filewhich doesn't have any use except demonstrating how assets work:
Code: [Select]
# Package descriptionPackage.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')
This package uses two images: one with a relative paht and the other with an absolute path.Beware! Don't forget that RMEBuilder's goal is to be used by lots of people,so consider prefixing your assets in order to avoid collisions!For example, if I publish a menu that uses an image, I should name the imagenuki-menu-my-image.png in order to guarantee that it does notoverride (and that it is not overriden by) any other image.
Submit a package as an RMEBuilder patch


The package list is a Github respository. To contribute, you simply need to "fork"this project.To add a package, just edit the list of available packages in the packages.rb file,and add a relation as such: "package name" => "URL of the corresponding package.rb".Be careful that the URL must point to a raw file, not to an HTML page.For Github you have to use the raw link so that only the file contentsare exported, and not the entire HTML page.
About package naming semantics


There aren't any formally stated semantics. However, in order to avoid package collisions,we suggest that you prefix your package names with the author's nickname.If the package is major and/or renowned, it is possible not to prefix it. However, we reserve the right to rejecta package list edit if a package would override another.
The customPackages folder


In the RMEBuilder/customPackages folder, you can add your in-progressscripts. It allows for reading packages without them being hosted. This means you can make foldersfor your WIPs in there and work on them as if they were already published.This prevents you from having to publish an unfinished script.
Moreover, thanks to the build dev compilation command, you can alsoedit your code from your favorite editor (like emacs), without having to constantly copy-paste after every minor edit.
Cloning existing packages


For whatever reason, you might want to edit a package already published by someone else.In RMEBuilder you can use the clone package-name commandand the package will be copied into your RMEBuilder/customPackages folder.A package in RMEBuilder/customPackages will always be added at the expenseof an external package in the building step, so if you want to revert to the original package, you willhave to remove it from RMEBuilder/customPackages or use thereclone package-name command to override the local copy with the latestpublished version.
Conclusion


That's it with the RMEBuilder, presentation tour, we hope that it will be really usefuland that it will change (and simplify) users' ways of installing scripts. We also hope that script writerswon't hesitate in publishing their scripts! The more the merrier :D
GOODBYE.

*
The Hero of Rhyme
Rep:
Level 82
( ͡° ͜ʖ ͡°)
2014 Best RPG Maker User - StoryProject of the Year 20142014 Queen of RMRK2011 Best Newbie2014 Best RPG Maker User - Creativity2014 Kindest Member2013 Queen of RMRKBronze SS AuthorBronze Writing ReviewerSecret Santa 2013 ParticipantFor taking arms in the name of your breakfast.GOOD!For frequently finding and reporting spam and spam bots2012 Best Yuyubabe Smiley2012 Best RPG Maker User (Creativity);o
I don't know much about any of this, but it looks cool :D
Spoiler for My Games and Art:
ℒℴѵℯ❤


My Artwork Thread

The Lhuvia Tales [Current]

Ambassador [Complete]

The Postman [Complete]

The Wyvern [Complete]

Phoenix Wright: Haunted Turnabout [Complete]

Major Arcana [Cancelled]


*
( ´ิ(ꈊ) ´ิ) ((≡^⚲͜^≡)) (ી(΄◞ิ౪◟ิ‵)ʃ)
Rep:
Level 102
(っ˘ڡ˘ς) ʕ•̼͛͡•ʕ-̺͛͡•ʔ•̮͛͡•ʔ (*ꆤ.̫ꆤ*)
2014 Avast Ye Merry Pirate!2013 Avast Ye Merry Pirate Award2012 Avast Ye Merry Pirate AwardFor frequently finding and reporting spam and spam bots2011 Avast Ye Merry Pirate2011 Most Unsung Member2010 Avast Ye Merry Pirate Award
Impressive =o

bringing sexy back

**
Rep:
Level 34
RMRK Junior
Here is a little video to show how to add yout own scripts : https://www.youtube.com/watch?v=6xGaE0oBHds
Thanks for your feedbacks and sorry for my english :D

***
Rep:
Level 82
aka DigiDeity
Hay,
its a great tool for someone who is actually willed to put some effort into learning project managing.
I hope it will find many useres since people pick the RPG Maker for its simplicity. :/
Greetings
DigiDeity

├Work┤
├Contact┤


**
Rep: +0/-0Level 25
RMRK Junior
"L'essayer, c'est l'adopter". - RMEx

Try it now, no need to read, it's fast and awesome, tell us about the pOwEr you feel with it! :sdog:

(Hello RMRK, I'm Joke, from nowhere in France, working with nukiFW as a kind of developer-designer-coach, I love lovely things like RMEBuilder, nice to meet you all <3)
« Last Edit: July 20, 2015, 05:16:57 PM by Joke »

*
A-pow 2015
Rep:
Level 80
2014 Best RPG Maker User - GraphicsFor frequently finding and reporting spam and spam bots2013 Most Unsung MemberSecret Santa 2013 ParticipantFor taking arms in the name of your breakfast.a^2 + b^2 = c^2How can I help you? :DSecret Santa 2012 ParticipantSilver - GIAW 10Silver - GIAW 9Bronze - GIAW HalloweenGold - Game In A Week VII
Nice to meet you too! You all seem like very talented people.  :D