Jump to content
  • Introducing Eevee


    enu

    “The dev blog was a bit desolate, but now we've rejuvenated it to let y'all know about reborn Reborn.” ~ Stardust

     

    Time for another blog post! Today I’d like to introduce a development tool which we have been using internally for almost two years. Reborn was my guinea pig here but both Rejuvenation and Desolation are using it as well these days. Big thanks to Ame that she was willing to try this out on her game even though I was just an alpha tester at the time and the e19 release period was very busy!

     

    This one is meant especially for those of you who maintain large mods that include map changes and creators of their own games. Several features we’ll be introducing in the 19.5 update and more features that we’re planning for later would not have been possible without this tool.


    The problem


    In my previous post I mentioned that the team is using a version control system called Git. It’s an essential tool for any kind of software development. It lets you keep track of every change that was ever done to the game with the possibility to go back and see the changes, merge together the work of several teammates, and so on.

     

    One notable thing about Git is that it works well with text files but not with binary files. Such files are basically computer gibberish which can mean anything and therefore is unreadable for Git. Think images, audio, video, executable and so on. The issue with RPG Maker XP (the editor which is used to create these games) is that it stores maps and some other things in a binary format. You know, the .rxdata files in the Data directory of the game? Yeah, those. I didn’t like that so after some research I found a super old tool capable of decoding them. So I forked that, made it more useful for actual development and called it the Easy Essentials VErsioning Engine, aka Eevee.


    Eevee basics

     

    Now what can this little fella do for you? Well it can transform .rxdata files to a text format and vice-versa. Git is very good at versioning text: it can track when each line was changed, who did it, let you merge changes from two people even in a single file and so on. So for Git to be able to work with maps it was very important to have the maps in a text format.

     

    For the team this is very important as it allows us to have several long-term projects that need a lot of map changes in separate git branches and we can easily sync them with whatever changes we make in the main branch. Synchronizing that without Eevee would be a nightmare and very prone to accidentally undoing someone’s work. But this way we can easily keep everything up to date internally as a part of our routine and those long-term projects can spend as much time in the oven as they need without causing any problems.

     

    tzqpffyhLwk63xQvTMBSm2BvRZBPsdnwuAeFgwSdThKfs-fBZpVuNa51wKeb2B0pOHGHD58n7uJZB0109s9sRQ4P0ejwpJvbQSUwbJqCTJaD6aSyS1o-OJxfRA2wiB8irtkR84F1eWaXel859O6ammk

     

    Another no less important advantage is that text files are human-readable and search-able.  Wanna know all the places where you can obtain a particular item? Find all events where a mon is removed because all of those were bugged? (Yes they are all bugged in Reborn 19.0.16.) We can do that!


    The format

     

    Now originally the format eevee produced was simply YAML. Which was okay but I didn’t have full control over the output so it still contained a lot of extra gibberish. However, near the end of last year I finally sat down and implemented a custom format for Eevee which makes it even more useful.

     

    It allowed me to make many custom improvements to the format for easier usage - making sure that important data is there in a readable form while useless and redundant data from the old yamls is simply cut. For example all the options that can have one of a limited number of options in RPG maker are transformed from their internal number representation into text here for much better readability.

     

    To give you an idea what a map looks like in this format, here is Lapis Gym in the new format (scroll down a bit, the events at the top aren’t very interesting). You can see all the dialogue and all other data the map contains. We can also easily find all the places where a particular switch or variable is used or where a particular audio track is played. And finally, it allows doing some bulk changes by simply string replacing across the entire project. For instance, some typos were in many places all throughout the game.

     

    There are three other things worth pointing out in the example file. Firstly, the comment at the top of the file shows you where to find the map in question in RPG Maker. Secondly, unlike the rxdata files, the filename also contains the name of the map.


    Other features

     

    Eevee is also able to run in the background while you’re working in RPG Maker and output your changes to ruby files on the fly.

     

    There are more features which you can read about in Eevee’s documentation if the tool looks useful to you! We use it to generate patches and validate our maps so that they don’t contain common errors. There is also a guide to help update your modded maps to the new version of the game. It’s not an easy process but for large mods it should be a lot faster and cause less issues than redoing all the work manually.

     

    The source-code is entirely open on GitHub so you can see how it works internally and help improve it if you find a problem.

    • Like 31
    • Upvote 1

    User Feedback

    Recommended Comments

    oh my lord, a Reborn dev's response (or should I say, "res-puns") to me has been immortalized 🤭

     

    But seriously, Eevee looks really cool. Now you’re giving all fangame devs and modders an Eevoboost. Thanks for this!

    • Like 5
    Link to comment
    Share on other sites

    Its interesting that even after its been several years since the game was released we still get snippets like this that show how it was developed. Cool to see things just never stop getting better for the Rebornverse games.

    Link to comment
    Share on other sites

    • Developers
    16 hours ago, JunKun21002 said:

    Its interesting that even after its been several years since the game was released we still get snippets like this that show how it was developed. Cool to see things just never stop getting better for the Rebornverse games.

     

    It actually wasn't developed with this... I only got access during e19 alpha and implemented the first iteration of eevee shortly before e19 went public - it didn't really have much impact at that point. However it was very helpful afterwards for the ongoing development. And ofc Rejuv and Deso teams are using it too now.

    • Like 1
    Link to comment
    Share on other sites



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • i know i'm, like, criminally bad at updating the sidebar

    but it's just the scripts!

    i never know what's worth mentioning.

    anyway we might redo the battle system.

    (6/15)

     

     

    SPOILER_shaving_luna_head.png

  • 16-4.png
    16-5.png
    16-6.png
    16-7.png
    16-8.png
    16-11.png
    16-12.png

×
×
  • Create New...