MZ Core Documentation

A few days ago the documentation for the upcoming RPG Maker MZ’s core codebase was publicly announced on the official RM forums. The code is fairly well documented (using jsdoc) and even the source code (for the engine core only) is publicly available!!
RPG Maker MZ Documentation Link

This image has an empty alt attribute; its file name is 5mCt7eC.png

Since it was announced, I have spent the majority of my time studying this codebase to better prepare myself for the official release, and for the multiple systems I intend to port over to MZ. After spending a little bit of time with the code I have noticed a few things that are worth mention…

When RPG Maker MZ information got announced, it was stated that the MZ engine would use modern ‘ES6’ javascript standards. Ignoring the fact that ES6 could only be considered ‘modern’ in 2015 when the current MV engine was first released, there are still some issues when comparing the released code to ES6 standards. The most notable thing is that the ‘class’ syntax that made ECMAScript 2015 so popular (ES6) is completely non-existent within the code.

For an actual example, here is a copy of the ‘Point’ class as shown in the official RPG Maker MZ documentation (linked above):

function Point() {
    this.initialize(...arguments);
}
Point.prototype = Object.create(PIXI.Point.prototype);
Point.prototype.constructor = Point;
Point.prototype.initialize = function(x, y) {
    PIXI.Point.call(this, x, y);
};

Which BTW, is almost identical to the current MV class. Now compare that to how it might have looked if it actually used the class syntax:

class Point extends PIXI.Point {
    constructor(...args){
        super(...args);
    }
}

Granted, there are some additional differences, such as it being more challenging to alias a class’s function, but its certainly worth mentioning as the two styles of syntax is dramatically different, and judging from most of the recent forum discussions, people seem to be convinced that the class syntax will be used. There is still some time before the release of the new MZ engine, and the actual game object classes may actually have been updated to a more modern syntax style, but judging by the core code that has barely changed at all, it would be unlikely in my opinion. The minor changes in the core codebase when compared to the current mv code suggests to me, that it’s quite likely that the rest of the game engine has seen just as many changes, which doesn’t really bode well.

For example, the ‘new mapping features’ that seems to be highly anticipated is a change in the editor only. The core code hasn’t seen any real changes and they are simply using the existing layering features that the engine code had in MV, which further suggests that most of the other features and changes are going to be minor tweaks to the editor as well. Of course, the codebase from the older makers that used a Ruby scripting system didn’t really change too much between later engine releases, it was always mostly just minor tweaks and an overhaul to the editor. For some reason I had thought this time might be different…

Perhaps the way that information on the new engine is drip fed to the community in small amounts causes a hype that’s hard to escape and not imagine that the new engine might actually be good… This is obviously intentional by the publisher/developer of RPG Maker, because they want hype, as hype helps drive sales. However, I feel that it may backfire somewhat when people realise that the shiny new engine they just purchased is nothing more than a premium update to the existing mv engine.

With all that being said, my plans haven’t changed any. The launch of the new maker seems like a perfect time to begin a new series of plugins and enhancements. I’ve already written a simple one for adding antialiasing to your game’s renderer!! This is a must have for any game that features complex geometry (such as projects that might use my hexagon mapping system).

Please keep in mind that most of this post is speculation based on the current information available. There are also a number of improvements that I havent been able to really test yet, such as the inclusion of effekseer particles, or the default atb system – both of which are awesome enhancements to the default maker capabilities.

If you found this post helpful or informative, please leave a comment with your feedback, and like/share where applicable! ❤

2 thoughts on “MZ Core Documentation

  1. Jeremy Espinoza says:

    Dang that is kinda disappointing to hear. Javascript/ES has really evolved in the last 5 years; you’d think they’d have a more fluid-looking core codebase, but… as ya said, it is what it is.

    You do good work my dude, I like your more technical dives into RM, so keep it up! 🙂

    1. Dekita-RPG says:

      Yea for sure! There are so many changes and enhancements that they could have used and had a better overall product, but yea, it is what it is. Non programmer devs are still gonna use it as it does offer a fair change over mv (default engine comparisons), but as soon as plugins get added, there is nothing mz can do that mv couldnt..

      Also, much thanks ❤
      I plan to do a review of mz (from a programmer perspective) once I've spent some time with it too. But i'll try to keep the technical posts coming 😀

Leave a comment