RPG Maker MZ, Preview #5: TPBS, A Closer Look

Status
Not open for further replies.

SJWebster

Too old for this ****
Veteran
Joined
Apr 8, 2012
Messages
133
Reaction score
241
First Language
English (UK)
Primarily Uses
RMMV
I don't understand the ES6 controversy. I'm not a coder, can someone explain it to me please?

For me, personally, the 20% discount took the asking price down to £50.39 GBP. For that price, I'm getting:
  • The return of XP's mapping system, something that made me unbelievably hyped and happy
  • Effekseer support, which I was on the fence about prior to seeing the amazing entries to Drifty's contest
  • A new and improved battle system that makes the Agility stat worthwhile
  • Being able to change the resolution and such without needing Yanfly's plugins
  • An improved plugin manager and commands
  • Performance improvements
  • Ongoing support and updates
I'd say I'll get more than my £50.39's worth out of that purchase. I'm looking forward to making a game in MZ.
 

TheoAllen

Self-proclaimed jack of all trades
Veteran
Joined
Mar 16, 2012
Messages
5,573
Reaction score
6,497
First Language
Indonesian
Primarily Uses
RMVXA
I don't understand the ES6 controversy. I'm not a coder, can someone explain it to me please?
I will try to make it simple.

ES6 means that the code structure is written in a certain way so that it is easier to read and navigate.
ES5 (which is what we have) means that the code structure is still using the old javascript way of writing.

And yes, plugin devs actually were suffering to see the default RMMV codes because how bad was the "structure" of the code and hoping they will have an easier time in RMMZ, then apparently, they will not.
 

TWings

The Dragon Whisperer
Veteran
Joined
Jul 26, 2017
Messages
527
Reaction score
857
First Language
French
Primarily Uses
RMMV
I don't understand the ES6 controversy. I'm not a coder, can someone explain it to me please?
Putting aside the fact that we were sold a "reworked the code for almost every part of RPG Maker" and a "Game Engine code entirely rewritten to follows current JS standards (ES6) ",
the code we have available at the moment shows that a lot less work has been put in this core version than what we were initially hoping. Hence a lot of programmers feeling disapointed.

Will MZ be better than MV ? Most likely.
Should the average RM user buy it ? I don't see why not.

People who are feeling down right now (because of the ES6 part or anything else) are most likely advanced users who were just expecting more from MZ (because the potential is there). This can eventually lead to reconsidering going forward with RM (as there are a lot of pretty good alternatives nowdays).
 

SJWebster

Too old for this ****
Veteran
Joined
Apr 8, 2012
Messages
133
Reaction score
241
First Language
English (UK)
Primarily Uses
RMMV
Thanks @TheoAllen & @TWings. So, moving from ES5 to ES6 is sort of like an agreed grammar or design pattern then? To equate it to my day job, sounds like it would be the equivalent of the branding team releasing a new set of visual guidelines, colour palettes, and logos only for someone on the team to keep using the old standards?
 

_Shadow_

Tech Magician Level:
Moderator
Joined
Mar 2, 2014
Messages
4,077
Reaction score
2,654
First Language
Greek
Primarily Uses
RMMZ
@slimmmeiske2 I would like to have it stand alone too. Hopefully they can give us a key later on or something. Actually fk this ****, who cares about the discount I wanna support this. Buying from store.

@SJWebster let me put this in a different way.
ES5 prototypes: Pain in the a$$ to read and understand if you know nothing about JS.
ES6 classes: If you worked with classes on Java or python, you will easily get what is going on. I don't know JS and I can understand the class based code perfectly. This is very important.
Also: Plugin Commands is a game changer. That alone can do magnificent stuff.


Edit: And now it's mine too!


EDIT 2:
RPG Maker MZ Script Call List
Will there be one or is it the same as MV?
Obviously things have changed.
 
Last edited:

Anyone

Veteran
Veteran
Joined
Aug 24, 2019
Messages
228
Reaction score
311
First Language
German
Primarily Uses
RMMV
I don't understand the ES6 controversy. I'm not a coder, can someone explain it to me please?

For me, personally, the 20% discount took the asking price down to £50.39 GBP. For that price, I'm getting:
  • The return of XP's mapping system, something that made me unbelievably hyped and happy
  • Effekseer support, which I was on the fence about prior to seeing the amazing entries to Drifty's contest
  • A new and improved battle system that makes the Agility stat worthwhile
  • Being able to change the resolution and such without needing Yanfly's plugins
  • An improved plugin manager and commands
  • Performance improvements
  • Ongoing support and updates
I'd say I'll get more than my £50.39's worth out of that purchase. I'm looking forward to making a game in MZ.
Well the first thing would be, that while what you're saying is absolutely right from one perspective, a cynical person could reverse most arguments and not be entirely wrong.

This is not entirely my personal view, but how some people might see it:
  • Return of XP's System: Why was it gone in the first place? Something that's first taken away and then returned is not an improvement. It's the undoing of a downgrade.
  • Direct Effekseer support is nice - but it's actually possible to turn Effekseer assets into animation sheets that can be used in MV. What isn't possible anymore is using all your own animations or the ones you bought in MZ, because no matter what plugins do, you won't have an editor to handle & manipulate those animations anymore. So if you paid for the Animations collections? You won't be able to use them in MZ. And the guy who spent a lot of time to make them? Isn't going to see revenue from MZ owners for those animations.
  • The battle system is good for beginners (can't argue that point) but given what we've seen with previous battle systems in RPG Maker - it'll take plugins anyway to make it good.
  • There were actually dozens of plugins that allowed you to change the resolution, so while having it internally is a good thing, this isn't and never was a pressing need. This was an overdue addition of something that should've been native long ago.
  • While the improved plugin command makes it easier to use difficult commands, it also makes it more difficult to use simple fast commands. It averages out. Simple fast intuitive lines will now take a lot of clicking through lists, difficult and nigh impossible commands will now require merely a bit of clicking through lists. If they'd left a direct command line as backup option, they could've had the best of both worlds. They didn't.
  • While performance improvements are welcome, one could argue: they improved the performance of MV...not in MV, but MZ, for a new full price. What would you say if, a gamedeveloper for instance, released a game with badly optimized code, then 5 years releases a slightly improved version with the main selling point that the engine problems were fixed...for a full price? If performance improvemts are such a big improvement over MV, why didn't they happen in MV as part of the...
  • ...ongoing support and updates that didn't implement the above engine improvements in MV?
Now, to be clear: the above is unfair. It simplifies the arguments & focuses only on a negative perspective.
But those points, unfair as they may be, are not entirely without merit and not entirely untrue.

So what to you seems like a list of absolutely clear improvements, in someone elses eyes, might be less clear & less of an improvement.

What allowed a lot of people to move past some of the ambiguity is the promise of ES6. We didn't get as much as we wanted, but at least we'll get ES6!

I don't understand the ES6 controversy. I'm not a coder, can someone explain it to me please?
Every once in a while, Javascript gurus get together and decide how to improve our magical spellwork.
Three of the main things they look for is conciseness, ease of use, and readability.
As coder you want to code...
  • ...what you're coding with as little work as possible and as efficient as possible
  • ...it easily with clear commands, that don't require you to wrap your head around some supermagical nonsense
  • ...it in a way that it's obvious what you're doing and easy to read. You'll probably have to read your code again, tomorrow or in a year, and you'll want to easily grasp what's happening. Sometimes you work with others, or other people want to see what you did and learn from it. So code must be short (so JS files don't get too long), clear in its intention (naming conventions for variables, etc.) and used in a specific manner that indicates what you're trying to do (shorthand code instead of general code).
ES6 basically takes a lot of things people were already doing in longer code and gives, for those specific purposes, a shorthand form that makes it simpler to use, and clearer in its use.

This is one of the original functions, the while loop.
JavaScript:
var i = 0;
while (i < army.length) {
    if (army[i].state === "alive") {
        army[i].health += 20;
    }
    i++;
}
This is the same loop, same purpose, with a different shorthand that recognizes that we're looping through an array, from a starting point, to an endpoint, while the index is changing in each iteration (i++ means i is +1 larger every time we go through it)
JavaScript:
for (var i = 0; i < army.length; i++) {
    if (army[i].state === "alive") {
        army[i].health +=20;
    }
}
In ES6, they added another shorthand, and this is how it now looks:
JavaScript:
for (let soldier of army) {
    if (soldier.state === "alive") {
        soldier.health += 20;
    }
}
This makes it a lot clearer that we're checking each solider of an army whether he's alive, and if he's alive, he gets 20 additional health points, 'cause this a healing spell in an army-based game.

And that's what ES6 does. Whether it's the arrow function, the new loop, the const and let additions to make var more specific or the ES6 Classes - it takes something coders use frequently, makes it easier to use, more concise in its writing, and much more clearer as to what it is you're doing.

For a coder it's very helpful when the stuff you're working with is easily comprehensible. The prototype in JS is not easy to wrap your head around, especially for a beginner. You can use it, you can work with it, but it does a couple of things and requires you to jump through a couple of hoops, especially in the way RMV uses it, that makes it very, very hard to really understand what's happening at what point during the prototype process.

Classes give you an object-based alternative that essentially does the same thing: but it's just so damn much more easy to read and work with. It's like climbing up a steep hill without chains around your legs for the first time.

Thanks @TheoAllen & @TWings. So, moving from ES5 to ES6 is sort of like an agreed grammar or design pattern then? To equate it to my day job, sounds like it would be the equivalent of the branding team releasing a new set of visual guidelines, colour palettes, and logos only for someone on the team to keep using the old standards?
It's a bit more than just visual guidelines or color palettes. Imagine that every time you have to do something, your boss asks you to run around in circles, quack like a chicken and and do jumpingjacks on the rooftop of your no-nonsense neighbour.
ES6 means you now get to just do what you need to do - without any of the nonsense.
 
Last edited:

_Shadow_

Tech Magician Level:
Moderator
Joined
Mar 2, 2014
Messages
4,077
Reaction score
2,654
First Language
Greek
Primarily Uses
RMMZ
Iterable soldier will iterate for each... soldier in army. Clean and clear.
Both python and java programmers can get it instantly.
 

PixeLockeT

Demon Lord Lady
Veteran
Joined
Jan 11, 2020
Messages
136
Reaction score
205
First Language
English
Primarily Uses
RMMZ
@Touchfuzzy one question. If we bought MV on Steam, how can we get a discount on your website store? I mean, what if I want the full discount, but also wanna give the money directly to Degica?
I'm still waiting hopefully on the discount bundles to go onto the webstore, but I'm getting to a point I might just Idunno, buy non-bundle.......I'm getting afraid they won't put it up in time for the pre-order pricing.
 

Alexandr_7

Veteran
Veteran
Joined
Apr 22, 2016
Messages
96
Reaction score
27
First Language
Russian
Primarily Uses
Question about the functionality of RPG Maker MZ messages:
I hope now it is possible to set not fixed 30 colors in messages, but set HTML color. Or did the beloved KADOKAWA not have enough time to do it? 30 colors in Window is not enough and it is inconvenient to customize. For a long time it was necessary to cut out this system and replace it with HTML colors. You still use HTML colors in your code.
But I bet this system hasn't changed in any way.
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,949
Reaction score
3,039
First Language
French
Primarily Uses
RMMV
The good thing it's Except of ES6 class MZ code is using most f the features from ES6 such array.include and for of so we will not see for each anymore since it is now deprecated.


also some missing information that wasn't mentioned about the PluginManager

A warning message is displayed at the bottom of the screen
When the base plugin is not registered

When a plugin other than the one created for MZ is registered

When the plugins are out of order

When a plugin that does not exist is specified, etc.
Which means that they might have changed a little how plugin are registered.
 

SOC

Be your own hero
Veteran
Joined
Mar 22, 2012
Messages
570
Reaction score
490
First Language
English
Primarily Uses
RMMV
Sorry if this was covered in the replies, I may have missed it.

Is there a way to set how much a "charge" time is for the action? Is it just universal or can we set different charge times for each particular skill/action? Will we need a plugin to "interrupt" those?

Is there a way to turn off "rubberbanding" for AGI so players can actually feel like the ATB bar speed increases as their AGI increases and we, as the designers, can balance enemy AGI accordingly?
 

Touchfuzzy

Rantagonist
Staff member
Lead Eagle
Joined
Feb 28, 2012
Messages
7,227
Reaction score
8,725
First Language
English
Primarily Uses
RMMZ
Sorry if this was covered in the replies, I may have missed it.

Is there a way to set how much a "charge" time is for the action? Is it just universal or can we set different charge times for each particular skill/action? Will we need a plugin to "interrupt" those?
You define the charge time per skill/item. If you mean if you get hit during casting time it doesn't go off by "interrupt" then you would need a plugin for that.

Is there a way to turn off "rubberbanding" for AGI so players can actually feel like the ATB bar speed increases as their AGI increases and we, as the designers, can balance enemy AGI accordingly?
I imagine it would be pretty easy for someone to write a plugin that does it, but I would honestly suggest against it from a design perspective. It means either the battles will act really slow at the beginning, or they will be so fast at the end that it will be hard to input commands in fast enough.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,562
Reaction score
3,832
First Language
English
I imagine it would be pretty easy for someone to write a plugin that does it, but I would honestly suggest against it from a design perspective. It means either the battles will act really slow at the beginning, or they will be so fast at the end that it will be hard to input commands in fast enough.
In FF8 I could increase my speed so much that the gauge literallys fills up in like half a second while everyone else is still slowly trying to get their gauge up.

It's funny but ya it doesn't really work...
 

SOC

Be your own hero
Veteran
Joined
Mar 22, 2012
Messages
570
Reaction score
490
First Language
English
Primarily Uses
RMMV
You define the charge time per skill/item. If you mean if you get hit during casting time it doesn't go off by "interrupt" then you would need a plugin for that.
Thanks for the reply! Yeah, particularly something like dedicated skills with an "interrupt" flag for that, so the player would need to use a skill that can interrupt a large charge time from the boss, and another scenario for a tank-type hero to "cover" another hero so they could pull off their own long charge time skill without getting interrupted from an enemy.



I imagine it would be pretty easy for someone to write a plugin that does it, but I would honestly suggest against it from a design perspective. It means either the battles will act really slow at the beginning, or they will be so fast at the end that it will be hard to input commands in fast enough.
Well, lets look at games like FFRK or FF Dimensions. I feel like they handle this very well. AGI/Speed isn't generally a stat that goes up very much over the course of the game, but you can feel a difference by the end. It's not like you couldn't increase enemies' AGI as the player progresses throughout the game either. You don't necessarily have to increase AGI every single level up or anything, it could be something as simple as starting with 10 AGI at level 1, and finishing with 20 AGI by level 99, with some gear that could increase it a small amount as well. It's a way of increasing difficulty artifically because the faster the bars go, the quicker you need to think and input, especially if in active. But if there's rubberbanding, then what's the point of ever increasing AGI if it always feels the same? Yes, you can make it way too fast (as in FF8 like described above), but you can also make it "just right" like in FFRK/FFD. There's also the question about buffs/states that increase speed, if you increased them with rubberbanding, it would feel pretty arbitrary, no?

I'm also a little concerned about "battle time" being connected to the highest turn count by character rather than "tick" based. This makes certain battle events a bit trickier, especially if you plan to have certain heroes faster than others like thieves, so it might require some compromising from a designer's perspective, but I suppose it does open up opportunities in other areas. All in all, I'm just extremely happy (and grateful) that we're getting an ATB-like system by default for the engine and even more excited to see what plugin creators can do with it now because of it.
 
Last edited:

Touchfuzzy

Rantagonist
Staff member
Lead Eagle
Joined
Feb 28, 2012
Messages
7,227
Reaction score
8,725
First Language
English
Primarily Uses
RMMZ
The one thing to remember is that the battle turn for events only counts ENEMIES when looking for the highest turn count.

Which means there shouldn't be a situation where a player jacks their AGI really high that breaks the patterns.

The agi of everything taken into account for battle turns should be present in the troop screen.
 

Winshifter

Veteran
Veteran
Joined
Feb 24, 2017
Messages
48
Reaction score
48
First Language
Spanish
Primarily Uses
RMMV
In FF8 I could increase my speed so much that the gauge literallys fills up in like half a second while everyone else is still slowly trying to get their gauge up.

It's funny but ya it doesn't really work...
Technically speaking, every Final Fantasy with an ATB system(FFXIII and FF7Remake don't really use an ATB system.) will allow you to have the ATB bar filled in 1 second, however only in a few was possible to do it(without using some way of cheating or modifying save files or gamesharks or some other way to inject data into the game).

Thanks for the reply! Yeah, particularly something like dedicated skills with an "interrupt" flag for that, so the player would need to use a skill that can interrupt a large charge time from the boss, and another scenario for a tank-type hero to "cover" another hero so they could pull off their own long charge time skill without getting interrupted from an enemy.




Well, lets look at games like FFRK or FF Dimensions. I feel like they handle this very well. AGI/Speed isn't generally a stat that goes up very much over the course of the game, but you can feel a difference by the end. It's not like you couldn't increase enemies' AGI as the player progresses throughout the game either. You don't necessarily have to increase AGI every single level up or anything, it could be something as simple as starting with 10 AGI at level 1, and finishing with 20 AGI by level 99, with some gear that could increase it a small amount as well. It's a way of increasing difficulty artifically because the faster the bars go, the quicker you need to think and input, especially if in active. But if there's rubberbanding, then what's the point of ever increasing AGI if it always feels the same? Yes, you can make it way too fast (as in FF8 like described above), but you can also make it "just right" like in FFRK/FFD. There's also the question about buffs/states that increase speed, if you increased them with rubberbanding, it would feel pretty arbitrary, no?

I'm also a little concerned about "battle time" being connected to the highest turn count by character rather than "tick" based. This makes certain battle events a bit trickier, especially if you plan to have certain heroes faster than others like thieves, so it might require some compromising from a designer's perspective, but I suppose it does open up opportunities in other areas. All in all, I'm just extremely happy (and grateful) that we're getting an ATB-like system by default for the engine and even more excited to see what plugin creators can do with it now because of it.
I personally don't like rubberbanding if it already has a wait time in some form, in this case, a wait time bar or metter. I do understand that in some instances it might serve a purpose, like adding an element of strategy or difficulty. I would also would've like that the rubberbanding could be either removed or edited in the default editor and not through a plugin.
 

MikePjr

Artist
Veteran
Joined
Nov 7, 2012
Messages
758
Reaction score
468
First Language
English
Primarily Uses
I'm slowly starting to consider getting MZ.
I hope there's a way to change some of the way things are presented, possibly with plugins.
Since i'm not making games for a smart phone, i don't need all the smart phone additions for point and click.
I also kinda prefer the old battle system status box over having faces.
I mean, having 4 manual layers is already a pretty big bonus on it's own.. i can work around making maps that don't look so.. square.
I was looking at an old SLAYERS fan game i was working on.. looking at the map and graphics i was making.. thinking to myself how much better i could make my graphics look if i had total control over layers and what goes on what layer.

Also.. maybe i missed it.. but i can still choose to just have turn based battles if i want, correct?
All in all.. the price is right.. so.. i'm maybe gonna look into it.
 

Touchfuzzy

Rantagonist
Staff member
Lead Eagle
Joined
Feb 28, 2012
Messages
7,227
Reaction score
8,725
First Language
English
Primarily Uses
RMMZ
Define what you mean by rubberbanding?

If you mean the fact that all the speeds are relative, then I will just go with my previous responses: Handling all speeds as relative is the best way to deal with things. Mechanically, everything works the same, it just evens out the problems of late game having to make decisions stupidly fast, and/or early game having to wait forever for your turn. And if you go with Wait to fix the problem of having to put in stuff stupidly fast, then it really really doesn't make any difference how fast the bars are.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,562
Reaction score
3,832
First Language
English
Technically speaking, every Final Fantasy with an ATB system(FFXIII and FF7Remake don't really use an ATB system.) will allow you to have the ATB bar filled in 1 second, however only in a few was possible to do it(without using some way of cheating or modifying save files or gamesharks or some other way to inject data into the game).
Most games, ATB was affected by states like "haste" or "slow" or "stop".

But ya, in FF8, the ATB gauge was also affected by the "speed" stat which you could alter in-game provided that you had access to it (which wasn't hard anyways)

1596488740102.png

While it felt great to be able to attack very frequently, it was impractical because it took me 5x as long to respond to it since I'm a slow human. When I put them on berserk state though so they just attack themselves, then it was fun

So if the TPBS's ATB gauge was based on the battler's AGI param, that would be something to think about for balance.
 
Status
Not open for further replies.

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

Latest Threads

Latest Posts

Latest Profile Posts

Anyone can recommend a good gaming mouse? My mouse wheel has given up. Last mouse was steel series diablo iii edition (I know, it's been a while)
And then I figured out a way to doing a "regular animation" that's affected by PIXI particles. So now each frame of the animation gets particle effects. Soon my dreams of a world without QSprite will be realized. :kaopride:
Currently every NPC in my RPG gets a name, its kinda useless to name all, but Its also cool, somehow.
Biggest prob is to come up with different names. xD
I'm back from my visit to my family. Was really great to see them again after a year even if I had to get tested for covid for the visit.
Procrastination at it's finest.

Forum statistics

Threads
104,266
Messages
1,005,088
Members
135,780
Latest member
allmee
Top