RMMV Grid Battle System (early access test: tile states)

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Second round of public testing is coming up soon. I'm in the process of finalizing the post, but I've made a demo that you can try here to explore some of the functionality.


This post will be edited with a link to the actual test page when it's done with more information about the plugins.
 
Last edited:

winkr7

Veteran
Veteran
Joined
Oct 27, 2015
Messages
99
Reaction score
31
First Language
english
Primarily Uses
N/A
Hello;

I tried the demo above 12 hours after the posted date (in case it changed). Am I supposed to click where I want to move, a blank square? I tried clicking here and there including the yellow square. I tried move as a spell too. No effect for me. It did move one time but I am not sure why.

Keep at it, it looks promising.

yours
winkr7
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Hello;

I tried the demo above 12 hours after the posted date (in case it changed). Am I supposed to click where I want to move, a blank square? I tried clicking here and there including the yellow square. I tried move as a spell too. No effect for me. It did move one time but I am not sure why.

Keep at it, it looks promising.

yours
winkr7
Actually there's a bug with the mouse clicking in the demo. At that time I only focused on keyboard support, so you have to use arrow keys to do your selection.

This is like really old RPG Maker style with no support for mouse. Actually I guess since MV supports mouse, I should also specify how to actually play the game since there are different modes of input now.

Mouse support has been improved in newer versions but still clunky (MV style menus where you have to click, and then click again to confirm)
 
Last edited:

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Finalizing some code for an initial release.
You can read about what you can expect for the initial release


I have devised an input system for you to manage your grids, that you can read about here:

 

ChatS

Villager
Member
Joined
Mar 6, 2015
Messages
20
Reaction score
11
First Language
French
Primarily Uses
RMMV
Would it be possible to use non-battle maps? Like say you travel in a forest map then the encounter triggers and you battle directly on the map the actors already are into without going into the usual SV battle maps.

I ask because seeing your video examples you used a few table top RPG maps, which got me thinking that this system could simulate a very cool animated D&D/roll20 style of game, completely seen from top down view. That said the battlers would need to be 48x48 pixels and or whatever size the makers use for their games, but I think you've got that covered already if I'm not mistaken.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Would it be possible to use non-battle maps? Like say you travel in a forest map then the encounter triggers and you battle directly on the map the actors already are into without going into the usual SV battle maps.

I ask because seeing your video examples you used a few table top RPG maps, which got me thinking that this system could simulate a very cool animated D&D/roll20 style of game, completely seen from top down view. That said the battlers would need to be 48x48 pixels and or whatever size the makers use for their games, but I think you've got that covered already if I'm not mistaken.
Here is a "map battle" concept. It uses an add-on plugin called "Grid Map Battle" which allows you to choose to use "map battle" mode instead of default sideview battle mode.

The battle mode that's used is based on your grid configuration, so you can have your sideview battle for certain battles, and then you can have your on-map battles for other battles.

So it might look something like this, your default "two grid" set up where you put actors on

Code:
var grid1 = GRID.getBattleGrid("Two Grid", 1)
grid1.setActorPosition( ... )

var grid2 = GRID.getBattleGrid("Two Grid", 2)
grid2.setEnemyPosition( ... )

GRID.useBattleGrid("Two Grid")
vs, your map battle mode

Code:
var grid = GRID.getBattleGrid("Map Battle", 1)
grid.setMapData($gameMap)
GRID.useBattleGrid("Map Battle")

Right now I don't do anything with the enemies, but all enemy battlers are tied to events the map, so in theory you could trigger events as well, maybe run a "Battle event" when they die, etc.
 
Last edited:

ChatS

Villager
Member
Joined
Mar 6, 2015
Messages
20
Reaction score
11
First Language
French
Primarily Uses
RMMV
Can't see the video for some reason, but I get what you're doing based on your description. Very cool!
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Can't see the video for some reason, but I get what you're doing based on your description. Very cool!
Seems like a twitter issue. I sent another tweet and this time maybe it's visible...

Anyways the "map battle" concept ideally would be used for the regular battle as well. Instead of loading "the current map" you might load a specific "battle map" which is basically the same idea except instead of using the map graphics, you're only using the map properties like passage tiles, maybe some events that are designated to appear in battle, and so on.

Something that might be interesting would be to turn it into real-time map battle where you use arrow keys to move around and then press like certain buttons to perform attacks or skills. But at this point it's just a cool idea, I'd probably get the turn-based system fully integrated with RM battle system at least (scopes, etc)
 

winkr7

Veteran
Veteran
Joined
Oct 27, 2015
Messages
99
Reaction score
31
First Language
english
Primarily Uses
N/A
In the map battle are you setting the troop locations from the map for real or faking it out with pre set troop locations?
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
In the map battle are you setting the troop locations from the map for real or faking it out with pre set troop locations?
I assign an enemy to each event on the map. They're all just "Thug" enemy from the database.

Then, before the battle processing command, I build a grid that's 17x13 in size with 48x48 pixel tiles to match the map view, and tell the grid to use "current map data" which will pull all of the events that are currently in view with a special tag, and dynamically create a new troop for the battle.

I improved it a bit. This might help show how it looks, although now I realize I should've had "moving" characters as well to show that the positions are being pulled in real-time.

 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Got some work done on the area of effects.
This is basically what you'll be doing:

1. You create a map
2. Draw some regions. Each region is one AOE
3. Create some events on the regions (to give a name to your AOE for example, or specify damage/element modifiers on different squares, etc)
4. Go to the skill/item database, and note-tag your skills to reference one of these area of effect regions you set up

1597901350701.png

And that's about it. Now you can use it in battle.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
New devlog is up for area of effects, to go over the details. There's also a video here where the chickens explain AOE.



I've fixed a mouse issue that we have in the second round of testing.
Here's a dev video where I show you exactly what goes on behind the scenes when you click on the grid


I've improved the highlighting system so that you have different colors based on whether the action (including its AOE) affects the target, and some color options for whether the action is a damage type or a recovery type. You can also customize these colors in plugin parameters ("default" options) or through script call (customized for each grid).


I've also tested with MZ. Will need to do a little tweaks to get highlights to work properly, but I think we should be seeing an MZ release shortly after the MV release.


The sprites are still displayed in a top-down 2D grid. I haven't figured out how to best address this, so I'll leave it in there in the meantime.
 

ChatS

Villager
Member
Joined
Mar 6, 2015
Messages
20
Reaction score
11
First Language
French
Primarily Uses
RMMV
I doubt you could change the top-down 2d grid. Reason being that you can't really use any perspective in RPG Maker without modifying everything else visually. Though if you really would like to do that, you'd probably need to change the box size that are closer to our view say (first row on the edge of the screen!) to 192x 192, then the second row above to 144x144, the third row above at 96x96 and the 4rth and last row above 48x48 assuming only 4 monsters and 4 battlers are facing each other. Then you'd need to find a way to make sprites change size accordingly to fit the said tiles. This would give an illusion of perspective like when you drive a car on the road.

In short terms the grid would look like a pyramid. However the above would probably be a huge undertaking to make.

IMO, I think that the flat square grid system looks fine like it is and it fits with the usual RPG maker art style. The flat 45 degree without perspective view style that is!
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
Based on feedback from tests, I'm providing plugin commands and plugin parameters to set up grids.

The plugin parameters will be used to set up "default" grids that will be loaded at the beginning of the game.

The plugin commands is when you need to customize grids for specific battles.

MV and MZ has the fancy plugin parameters, but only MZ has the fancy plugin commands, so you'll still have to make script calls for that part.


I doubt you could change the top-down 2d grid. Reason being that you can't really use any perspective in RPG Maker without modifying everything else visually. Though if you really would like to do that, you'd probably need to change the box size that are closer to our view say (first row on the edge of the screen!) to 192x 192, then the second row above to 144x144, the third row above at 96x96 and the 4rth and last row above 48x48 assuming only 4 monsters and 4 battlers are facing each other. Then you'd need to find a way to make sprites change size accordingly to fit the said tiles. This would give an illusion of perspective like when you drive a car on the road.

In short terms the grid would look like a pyramid. However the above would probably be a huge undertaking to make.

IMO, I think that the flat square grid system looks fine like it is and it fits with the usual RPG maker art style. The flat 45 degree without perspective view style that is!
Ya, we could do something like hardcode individual position and height of each tile, so as you pointed out the ones closer to the bottom would be larger while the ones closer to the top would be smaller. And then we just need to figure out how every tile looks.

That was one of the suggestions from another dev that built a grid battle system and it worked quite well.


On the other hand, I was also looking at this

Which would basically automate the transforms for you so you don't need to calculate values yourself.

Hardcoding it might work for now so you can at least customize how you want the sprites to be positioned on the screen.
 

Solar_Flare

Veteran
Veteran
Joined
Jun 6, 2020
Messages
531
Reaction score
232
First Language
English
Primarily Uses
RMMV
Based on feedback from tests, I'm providing plugin commands and plugin parameters to set up grids.

The plugin parameters will be used to set up "default" grids that will be loaded at the beginning of the game.

The plugin commands is when you need to customize grids for specific battles.

MV and MZ has the fancy plugin parameters, but only MZ has the fancy plugin commands, so you'll still have to make script calls for that part.
I guess it's too much effort to provide MV-style plugin commands in MV and MZ-style plugin commands in MZ?

I guess I could manage with script calls though if I decided to use this.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
I guess it's too much effort to provide MV-style plugin commands in MV and MZ-style plugin commands in MZ?

I guess I could manage with script calls though if I decided to use this.
It's about the same I think.

MV plugin commands just gives you COMMAND and ARGS (as a string)
MZ plugin commands give you PLUGIN NAME, COMMAND, and ARGS (as a JSON-like string)

MZ let's you register methods to call for each command so you don't need to do switch cases. I'd probably parse the MV args into a JS object to match how the MZ args is set up, and then now I can just use the same method for both engines.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
I started doing the tile states plugin, and it seems to be working.

You can add states to tiles using skills, and states will be added to a battler when they step on it.


State tiles can be set up in the grid config, or they could be added during battle.

So for example if you wanted to make a final fantasy battle rows system, you can simply add a "front row" state to all the tiles in the front, and a "back row" state to all the tiles in the back, then add the appropriate traits to the state.

1598209938961.png

To check if someone is in the front row or back row, you basically need to check if the target has a certain state applied. So if you want to say "melee weapons" have damage debuff against "back row" battlers, you could check if the target has back row state applied or not.

We can create a skill called "Change row" which basically makes a script call to change the user's position. Maybe toggle between back row and front row using a simple check to see where the battler is currently standing. It's just either column 1 or column 2.

So for example in the screenshot, the first actor is in the front row, and the second actor is in the back row.

Tile states are quite versatile.
They add the state to the battler, but the state can also be removed when you step off the tile by setting up the "auto removal timing".

1598210169567.png
 

Raphael Lourenço

Infinity Door Studio's Lead Designer
Member
Joined
Mar 30, 2017
Messages
20
Reaction score
26
First Language
Portuguese
Primarily Uses
RMMV
1598213923745.png

Testing the 1.1 Release, I have this error in my project, related with the VE Basic Module. I can't explain exactly what is it.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,841
First Language
English
View attachment 156803

Testing the 1.1 Release, I have this error in my project, related with the VE Basic Module. I can't explain exactly what is it.
I found the issue.
If you have the HIME_GridPatch file, add this to it anywhere

Code:
// Victor Engine Basic module. Each sprite is identified by a unique ID
Game_TileBattler.prototype.spriteId = function() {
  return 'tile ' + String(this.getBattleNode().id);
};
If you don't have it yet, grab it from the download page and install it under the grid plugins: https://himeworks.com/2020/08/grid-battle-engine/#patch
 

Raphael Lourenço

Infinity Door Studio's Lead Designer
Member
Joined
Mar 30, 2017
Messages
20
Reaction score
26
First Language
Portuguese
Primarily Uses
RMMV
A good Idea is put a option to Random Positions for Enemies.
It will add more strategie options, and a easy configuration for Random Battles.
And for Bosses, use the option for set-up positions for script command.
 

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

Latest Threads

Latest Profile Posts

My pumpkin! Anyone like Fallout?

It's not terrible, but could be better. This thing took me over an hour to carve. :kaophew:

Dad's watching a WWII documentary while I work on some cool assets for my games. I just love RPG Maker!
Also Happy Halloween! Dad's friend won't be coming unfortunately, but Dad will still be taking me to Boxi Park to have some fun tonight! I'll be posting a video on my YouTube channel of the show, and I'll be sure to post a link here.
"Nightmares exist outside of logic and there's little fun to be had in explanations. They're antithetical to the poetry of fear. In a horror story the victim keeps asking why, but there can be no explanation and there shouldn't be one..." - Stephen King
I feel people seek explanation and demand it sometimes in games, but in the horror genre, well, maybe you shouldn't have one. Silent Hill 1 comes to mind...
Managed to implement QSprite.

Always double check your plugin order.


Finally! I've been puzzling over why it wasn't working for two days now. Turns out all of my calculations were correct, I just forgot to give some events hitboxes. :kaoswt: Now my randomly generated maps check for collision errors, and move stuff around in real time if they finds any. :LZSexcite:

Forum statistics

Threads
104,682
Messages
1,008,067
Members
136,171
Latest member
emcautley1
Top