RPG Maker MZ, Preview #3: Character Generator, Plugin Manager, Event: Plugin Command!

Status
Not open for further replies.

Sword_of_Dusk

Keyblade Master
Veteran
Joined
Sep 13, 2015
Messages
247
Reaction score
290
First Language
English
Primarily Uses
RMMV
Yep and those people doesnt realise they rewritten the whole goddamn engine. The whole corescript as well to a new version of framework...
But not they must be senior software enginer. We should let these people write the engine.

all sarcasm aside.

No this isn't just a 'patch' when you rewrite the whole engine from scratch to a new version. and as well the full corescript to be more performant.
Updating an engine cost a lots. fixing bug cost money. people have to realise that it's an one time purchase engine. At some point they will need to create a new RM to give them the budget or this would create a budget deficit to kadokawa.

as I said once in a comment : for a constant update engine to work you have either to offers it free but require royalties or have subscription based. which allow them to pay their workers to update the engine.

as you want to fix an engine at some points it doesn't worth the cost and it's better to start from scratch and starting from scratch to an existing engine will just cause angry people.

but what I know? those people must know more than me the guy who work in game dev for years , used software who cost you 300$ a month to use. but eh must not known I guess.
I don't know how to code whatsoever, but even I understand that the core script being rewritten is a big deal.
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,039
First Language
French
Primarily Uses
RMMV
@Sword_of_Dusk yep sadly people doesn't see those change since they are under the hood and think they know how software engineering work.

It's literally what Software like Unreal does. They literally threw one software away each version (Unreal 4 , Unreal 5) yes their somewhat similar in interface but what's under the hood that change everything that required an whole new version.

people thinking MZ is just a patch to MV show that they know zero nada to how Software engineering works nor Game dev.

MZ was rewritten to be a better, more stable and performant engine while keeping the familiarity of MV.
 

Anyone

Veteran
Veteran
Joined
Aug 24, 2019
Messages
228
Reaction score
311
First Language
German
Primarily Uses
RMMV
@Sword_of_Dusk yep sadly people doesn't see those change since they are under the hood and think they know how software engineering work.

It's literally what Software like Unreal does. They literally threw one software away each version (Unreal 4 , Unreal 5) yes their somewhat similar in interface but what's under the hood that change everything that required an whole new version.

people thinking MZ is just a patch to MV show that they know zero nada to how Software engineering works nor Game dev.

MZ was rewritten to be a better, more stable and performant engine while keeping the familiarity of MV.
That's all true, but at the end of the day, it's a value proposition like any product:
Do you believe you will get enough new value out of this product to justify the cost of purchase?

That's a question everyone has to answer for themselves.

What you'll never get is a "this much effort has been put into x, so it must be worth y."
Life doesn't work that way.

As an author, it doesn't matter how often I revise a book, how much time I spend planning out concepts, outlining, creating in-depth articles on parts of the world, how much time it takes to create the story, at the end the book will be sold at the same price as all others books and it's up to every last customer to decide for themselves whether they want to buy it or not.

The amount of blood, sweat & tears I put into it does not factor into their calculation. That's just how it is as a creator. No one is entitled to a customer purchasing your product.

That's why under-the-hood changes that might matter to people who create plugins like you and me, while others may look at how it impacts and improves their MV experience if they were to transition to MZ and find it lacking - because all that work under the hood won't actually benefit them much in what they are usually doing.
 

MajinSonic

CupHog
Veteran
Joined
Jan 19, 2014
Messages
38
Reaction score
50
First Language
German
Primarily Uses
N/A
It doesn't matter if they rewrite the whole thing. It has to be better and I said it is better. But it doesn't seems to be worth to buy it. It FEELS like a patch. Nothing more nothing less.

Everyone have to find his own way with the new maker. That's it.
 
Last edited:

Galenmereth

Retired
Veteran
Joined
May 15, 2013
Messages
2,248
Reaction score
2,158
First Language
English
Primarily Uses
N/A
The thing is, even if you consider it a patch, it's a major patch that changes a lot. And given that there are no royalties and no recurring fees with RM, expecting a major patch of this kind to be free isn't fair from my point of view. Think of it like this: Windows 10 was only an upgraded version of Windows 8, but it costs money and we're all fine with that. And I prefer that rather than pay in perpetuity ala. what Adobe is doing with its software.
 
Last edited:

Nolonar

Veteran
Veteran
Joined
Feb 18, 2018
Messages
160
Reaction score
232
First Language
French, German
Primarily Uses
RMMZ
Just knowing that MZ will have:
Code:
class Bitmap {
    constructor() {
        this.initialize(arguments);
    }

    initialize() {
        // code
    }

    get smooth() {
        // code
    }

    set smooth() {
        // code
    }
}
instead of MV's:
Code:
function Bitmap() {
    this.initialize.apply(this, arguments);
}

Bitmap.prototype.initialize = function() {
    // code
}

Object.defineProperty(Bitmap.prototype, 'smooth', {
    get: function() {
        // code
    },
    set: function(value) {
        // code
    },
    configurable: true
});
makes me happy.

Non-devs may never understand, but I know how to appreciate under-the-hood changes. Especially when they're meaningful.
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,039
First Language
French
Primarily Uses
RMMV
The thing is, even if you consider it a patch, it's a major patch that changes a lot. And given that there are no royalties and no recurring fees with RM, expecting a major patch of this kind to be free isn't fair from my point of view. Think of it like this: Windows 10 was only an upgraded version of Windows 8, but it costs money and we're all fine with that. And I prefer that rather than pay in perpetuity ala. what Adobe is doing with its software.
Yeah you also explain it way better than I can. People expect that the engine have HEAVY change and new features but REMEMBER guys they complained that plugins was broken because the devs UPDATED the corescript to make it more performant.

They also complain that if we do to much change they say they prefer the old way lol
(such as the arguments for the plugin Commands)

kinda counter intuitive eh?

Just knowing that MZ will have:
Code:
class Bitmap {
    constructor() {
        this.initialize(arguments);
    }

    initialize() {
        // code
    }

    get smooth() {
        // code
    }

    set smooth() {
        // code
    }
}
instead of MV's:
Code:
function Bitmap() {
    this.initialize.apply(this, arguments);
}

Bitmap.prototype.initialize = function() {
    // code
}

Object.defineProperty(Bitmap.prototype, 'smooth', {
    get: function() {
        // code
    },
    set: function(value) {
        // code
    },
    configurable: true
});
makes me happy.

Non-devs may never understand, but I know how to appreciate under-the-hood changes. Especially when they're meaningful.
You goddamn right haha this make the plugin dev soooooo much more fun to do than having to write everything.
WE STILL have to use ES5 to overwrite/ alias/ add new method to existing class tho xD
but honestly it's fine.
 

The Stranger

The Faceless Friend
Veteran
Joined
Sep 14, 2012
Messages
3,340
Reaction score
21,490
First Language
British English
Primarily Uses
RMMV
@nio kasgami What was the point of that screenshot? Other than it showcasing you laughing at someone behind their back, I mean. To me, it looks like it's simply reaffirming the idea that it is little more than a patch.

If @MajinSonic sees MZ as a patch, then there's nothing you can do about it. It's just how things are.
 

Dororo

Gespenst MKII pilot
Veteran
Joined
May 24, 2020
Messages
254
Reaction score
895
First Language
Italian
Primarily Uses
RMMV
That's all true, but at the end of the day, it's a value proposition like any product:
Do you believe you will get enough new value out of this product to justify the cost of purchase?

That's a question everyone has to answer for themselves.

What you'll never get is a "this much effort has been put into x, so it must be worth y."
Life doesn't work that way.

As an author, it doesn't matter how often I revise a book, how much time I spend planning out concepts, outlining, creating in-depth articles on parts of the world, how much time it takes to create the story, at the end the book will be sold at the same price as all others books and it's up to every last customer to decide for themselves whether they want to buy it or not.

The amount of blood, sweat & tears I put into it does not factor into their calculation. That's just how it is as a creator. No one is entitled to a customer purchasing your product.

That's why under-the-hood changes that might matter to people who create plugins like you and me, while others may look at how it impacts and improves their MV experience if they were to transition to MZ and find it lacking - because all that work under the hood won't actually benefit them much in what they are usually doing.
Nah, you're getting wrong. What you're saying is valid for a customer end product, that's mean the book/game. An EDITOR is like your typing machine. Think about the difference between an old typing machine and your last wordprocessor - there you can perceive the difference between an old and new technology.

EDIT: not speaking the full set of advantages in the publishing of your book. In old times someone had to retype your manuscript, another guy have to create cyanotypes to print and so on... While now the same file can be used to immediatedly process a laser printer or you can format raw data using XML. A new advanced core in an editor open to modern features, with compatibility across different apps, new devices and interfaces. Is not just "boosting", is "globalizing", with all subsidiary advantages. If you want to be serious, you should know your tools.
 
Last edited:

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,039
First Language
French
Primarily Uses
RMMV
not really he explained properly but you can interpret it as you want.

he summarized the whole opinion in a few line I was laughing because what he said made senses
but I guess I am 'laughing' in someone back.
 

Anyone

Veteran
Veteran
Joined
Aug 24, 2019
Messages
228
Reaction score
311
First Language
German
Primarily Uses
RMMV
Nah, you're getting wrong. What you're saying is valid for a customer end product, that's mean the book/game. An EDITOR is like your typing machine. Think about the difference between an old typing machine and your last wordprocessor - there you can perceive the difference between an old and new technology.
You mean it's like the difference between word 2013 and word 2016?
 

Dalph

Nega Ralph™ (RM Tyrant)
Veteran
Joined
Jul 15, 2013
Messages
7,765
Reaction score
19,592
First Language
Italian Curses
Primarily Uses
RMMZ
People are certainly entitled to their own opinions, MZ can even be a patch for them, but I'm gonna preorder it anyway and have a looooooot of fun with it.
I do recognize potential when I see it and this RPG Maker seems to have all the papers in order to be the best ever of the whole lot.
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,039
First Language
French
Primarily Uses
RMMV
I think galenmereth kinda summarized why the RM sound like patchs

but this is enter the dilemma of software development. People want change but they don't want to much change or they will get lost. Also some change are just plain to complex such as what Archeia said about multiple tile size support in editor they tried to implement it in MV but it didn't work since the engine code base was making it complex.

They didn't implement it in MZ but maybe in a future they will try to do so. But also what make this feature complex to implement is that RM have an automatic mapping system (btw which isn't that very common in game engine) so that made the whole system hard to deal with.

Oh and also one big motto why would you change something that work?
 

Hudell

Dog Lord
Veteran
Joined
Oct 2, 2014
Messages
3,529
Reaction score
3,679
First Language
Java's Crypt
Primarily Uses
RMMZ
Do we know what version of nw.js is going to be used? I would love to be able to use some newer ES features too (newer than ES6 still)
 

Anyone

Veteran
Veteran
Joined
Aug 24, 2019
Messages
228
Reaction score
311
First Language
German
Primarily Uses
RMMV
I think galenmereth kinda summarized why the RM sound like patchs

but this is enter the dilemma of software development. People want change but they don't want to much change or they will get lost. Also some change are just plain to complex such as what Archeia said about multiple tile size support in editor they tried to implement it in MV but it didn't work since the engine code base was making it complex.

They didn't implement it in MZ but maybe in a future they will try to do so. But also what make this feature complex to implement is that RM have an automatic mapping system (btw which isn't that very common in game engine) so that made the whole system hard to deal with.

Oh and also one big motto why would you change something that work?
True, though some changes aren't big changes - or even terribly complicated or complex.
Folder structures for event character & face selection?
String label search for them?
Item & Common event tab system instead of just one long list for each?

None of those things are terribly complicated but standard fare in pretty much most tools.

One of the biggest issues I have with RM across the board is that while the tools work well for small projects, the moment you have hundreds of character images or face sheets, it becomes just a horribly tedium to find and select them.

RM's biggest problem is that it's horribly inflexible and outright management hostile when you go beyond small projects, and it's a weakness that just doesn't get adressed.

I had to use a regex file-tagging system via plugin to get subfolders working in at least part of RMV to get variable busts based on equipped clothing working, without having thousands of individual facebusts flying around the faces folder. It's...exhausting. :/
 

Kaliya

// Caffeine Overload
Developer
Joined
Nov 1, 2015
Messages
506
Reaction score
566
First Language
English
Primarily Uses
RMMV
Hello,

So, @Archeia has given me the go-a-head to explain properly how the new Plugin Commands work. So this is how they do the things.

To setup a plugin command, a lot of you have guessed that it would be defined in the help file of your plugin. Similar to plugin parameters, well you're right. This is the syntax for defining a plugin command to be displayed in the event editor:

JavaScript:
* @command PluginCommandFunctionName
* @text My Plugin Command
* @desc Plugin Command Description Text
*
* @arg Actors
* @text Which Actors?
* @type actor[]
* @desc Select which Actor ID(s) to affect.
* @default ["1"]
*
* @arg State
* @text State
* @type state
* @desc Which State to apply?
* @default 1
As you can see, it is very similar to the way plugin parameters were created in MV. The difference is the following:

@command - defines a new command, this is how the plugin manager knows what command you are referring to or needing to execute. This is a unique identifier per plugin.

@arg - defines a new command argument/option. This is the name of the property that is passed along when the command is executed.

The above example would net you the following outcome in the event editor:


Other than that, as you can see the defining of a plugin command is extremely similar to plugin parameters, you can even specify data types like you can for plugin parameters.

Now on to how a plugin developer would create the code for such a plugin command. Unlike in MV you no longer have to alias a function, parse a string for your argument, and all that awful stuff. In MZ it is quite as simple as registering a function call with the name of your plugin, and the name of the plugin command you defined. Like so:

JavaScript:
PluginManager.registerCommand("TestPlugin", "PluginCommandFunctionName", args => {
    // Get Arguments
    const actorIds = JSON.parse(args.Actors);
    const stateId = args.State;

    // Use the arguments
    for (const actorId of actorIds) {
        const actor = $gameParty.members().find(member => member.actorId() === Number(actorId));
        if (actor) {
            actor.addState(stateId);
        }
    }
});
What you are doing is registering with the plugin manager that "TestPlugin" has a plugin command called "PluginCommandFunctionName" along with the actual function itself as a lambda. The plugin manager then passes the arguments to that function with the variable "args" as an object containing the values the user selected.

and that is how you would create a new plugin command using the MZ system.

- Kaliya
 
Last edited:

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,039
First Language
French
Primarily Uses
RMMV
Hello,

So, @Archeia has given me the go-a-head to explain properly how the new Plugin Commands work. So this is how they do the things.

To setup a plugin command, a lot of you have guessed that it would be defined in the help file of your plugin. Similar to plugin parameters, well you're right. This is the syntax for defining a plugin command to be displayed in the event editor:

JavaScript:
* @command PluginCommandFunctionName
* @text My Plugin Command
* @desc Plugin Command Description Text
*
* @arg Actors
* @text Which Actors?
* @type actor[]
* @desc Select which Actor ID(s) to affect.
* @default ["1"]
*
* @arg State
* @text State
* @type state
* @desc Which State to apply?
* @default 1
As you can see, it is very similar to the way plugin parameters were created in MV. The difference is the following:

@command - defines a new command, this is how the plugin manager knows what command you are referring to or needing to execute. This is a unique identifier per plugin.

@arg - defines a new command argument/option. This is the name of the property that is passed along when the command is executed.

The above example would net you the following outcome in the event editor:


Other than that, as you can see the defining of a plugin command is extremely similar to plugin parameters, you can even specify data types like you can for plugin parameters.

Now on to how a plugin developer would create the code for such a plugin command. Unlike in MV you no longer have to alias a function, parse a string for your argument, and all that awful stuff. In MZ it is quite as simple as registering a function call with the name of your plugin, and the name of the plugin command you defined. Like so:

JavaScript:
PluginManager.registerCommand("TestPlugin", "PluginCommandFunctionName", args => {
    // Get Arguments
    const actorIds = args.Actors;
    const stateId = args.State;

    // Use the arguments
    for (const actorId of actorIds) {
        const actor = $gameParty.members().find(member => member.actorId() === Number(actorId));
        if (actor) {
            actor.addState(stateId);
        }
    }
});
What you are doing is registering with the plugin manager that "TestPlugin" has a plugin command called "PluginCommandFunctionName" along with the actual function itself as a lambda. The plugin manager then passes the arguments to that function with the variable "args" as an object containing the values the user selected.

and that is how you would create a new plugin command using the MZ system.

- Kaliya
Jesus I was RIGHT hahaha can I say you did an awesome job at explaining it!

@Kaliya my question is does the args are treated as String or literall native? (e.g number etc) so do we still need to 'parse' it like we do with the pluginManager?
 
Last edited:

Sharm

Pixel Tile Artist
Veteran
Joined
Nov 15, 2012
Messages
12,760
Reaction score
10,879
First Language
English
Primarily Uses
N/A
I don't understand everything, because I don't code, but this new plugin command thing is very cool to me. There's been a number of times when I've been trying to set up a plugin and thought "This would be sooo much easier if I could just use a dropdown menu instead of looking this up and copying the commands in."
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Stream will be live shortly with some Darkest Dungeon! Feel free to drop by!
Made a HUGE (YYOOOOJJ) Update to Monstructs and moving towards a Steam Early Access release!
A skill type called: "Rumagic". The intention is Magic with Rum(that pirates drink)
Does it sound strange in English?
So I'm having issues with my steam account... so I can't use MZ right now, so I can't work on my game until its solved, so it be harder to be ready for 31... guess I'll get ice cream :kaopride:
Motivation! Inspiration! There you are. I was worried you guys weren't going to show up today. Let's get this thing going!

Forum statistics

Threads
104,220
Messages
1,004,762
Members
135,727
Latest member
bobcevr
Top