Creating the Framework for an Adventure/RPG Hybrid in RPG Maker MZ

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
Tutorial series on hold. About to start a needed project that will eat into my free time. Just to be clear, I am not abandoning this series. There's just no way I can juggle it and this project and still remain sane.
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
Well folks, yours truly had to spend a week in the hospital due to an infection and had to have surgery as a result. Life keeps throwing me curveballs. I am currently without a job and without insurance. So the full financial weight of the resulting medical bills is falling squarely on my shoulders.

What does this have to do with RPG Maker MZ or this tutorial series?

As I continue to look for regular work, I am also working on a MZ soap-opera-style series which I intend release on itch.io at a minimum price point of $1 per episode. Each episode will be released as quickly as possible and will last roughly 30 minutes.

As much as there is an aversion to using the RTP for games, that is exactly what I will be doing, with some modifications here and there to add elements pertinent to the on-going story. The focus is on character development and worldbuilding above monster bashing. If I do my job right as a storyteller, my choice of graphical assets shouldn't matter.

I figure that if I release episodes regularly, and if my storytelling is good enough, and if I can spread the word to enough people interested in seeing where things go, then at the very least I can cover some of my smaller regular bills. Anything that can take the edge off during this transitional period. I could do a go fund me campaign and beg for money, but I would rather produce something to offer in exchange.

Anyway... That's where I'm at. I have faith that things will turn around. Until they do, it's going to be rough.
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
While working on the project I created an encounter system event (ENCSYS). Because it is a system event, it should be placed on a map before any non-system parallel events to ensure high priority processing.

ENCSYS references Region ID 5, which needs to be placed on the map where you want an encounter to be possible.

What it does:
It randomly selects a non-border X and Y coordinate, then checks that location to see if it is Region ID 5. If so, it moves the actual encounter trigger events to the coordinates. If not, it selects new random coordinates and checks them. The process repeats until Region ID 5 is confirmed. Once all encounter triggers have their location set, ENCSYS erases itself.

For those who are not aware, the Erase Event command removes the event until the player leaves the map and then re-enters it. This makes it ideal for making encounter locations reset and always be in a different location whenever the player enters a map that will have random encounters on it.

So why not just use MZ regular encounter mechanics?

With ENCSYS, you have precise control over how many possible encounter triggers will occur on a map. And because they are actual events, they can be given form as a visible character that can move bout on its own, or they can be invisible, non-moving triggers.. Whatever you want them to be. That lends itself to some clever battle simulation, that occurs on the map, rather than on a battle screen, if desired.

So let's look at the ENCSYS event itself:
Priority - Below Characters
Trigger - Parallel
Code:
◆Label:1
◆Control Variables:#0016 EncX = Random 1..15
◆Control Variables:#0017 EncY = Random 1..11
◆Get Location Info:EncReg, Region ID, ({EncX},{EncY})
◆If:EncReg = 5
  ◆Set Event Location:Enc1, ({EncX},{EncY})
  ◆
:Else
  ◆Jump to Label:1
  ◆
:End
◆Label:2
◆Control Variables:#0016 EncX = Random 1..15
◆Control Variables:#0017 EncY = Random 1..11
◆Get Location Info:EncReg, Region ID, ({EncX},{EncY})
◆If:EncReg = 5
  ◆Set Event Location:Enc2, ({EncX},{EncY})
  ◆
:Else
  ◆Jump to Label:2
  ◆
:End
◆Label:3
◆Control Variables:#0016 EncX = Random 1..15
◆Control Variables:#0017 EncY = Random 1..11
◆Get Location Info:EncReg, Region ID, ({EncX},{EncY})
◆If:EncReg = 5
  ◆Set Event Location:Enc3, ({EncX},{EncY})
  ◆
:Else
  ◆Jump to Label:3
  ◆
:End
◆Label:4
◆Control Variables:#0016 EncX = Random 1..15
◆Control Variables:#0017 EncY = Random 1..11
◆Get Location Info:EncReg, Region ID, ({EncX},{EncY})
◆If:EncReg = 5
  ◆Set Event Location:Enc4, ({EncX},{EncY})
  ◆
:Else
  ◆Jump to Label:4
  ◆
:End
◆Label:5
◆Control Variables:#0016 EncX = Random 1..15
◆Control Variables:#0017 EncY = Random 1..11
◆Get Location Info:EncReg, Region ID, ({EncX},{EncY})
◆If:EncReg = 5
  ◆Set Event Location:Enc5, ({EncX},{EncY})
  ◆
:Else
  ◆Jump to Label:5
  ◆
:End
◆Erase Event

The above configuration assumes five encounter triggers, named Enc1, Enc2, Enc3, Enc4 and Enc5, respectively. You can have as many as you want, but there needs to be a labeled block of the script to handle each of them.

When I am able to get back to doing the tutorial series, I'll be including the explanation for ENCSYS. It was always going to be an element I's be using.
 
Last edited:

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
For those new to RPG Maker, the Label and Jump to Label commands will quickly become your friends. In the above example, we are dealing with five different trigger events that must only have their locations set in region 5 tiles. So just the random X/Y coordinates by themselves won't cut it. Without region ID checking, the encounter triggers could end up being placed in tiles that are impassable to the player. This means before moving on to process subsequent encounter locations, the current one MUST be valid. By starting the section for each location process with a label and then making the event jump to that label if the location is not in a region ID 5 tile, it ensures that the section is repeated until the results are valid.

When we get to the NODESYS event, which will be a common event that gets called whenever the player attempts to harvest a resource node, there will be heavy usage of the label and jump to label commands. NODESYS will be a very large, complex event with lots of different elements, only one of which will need to be processed at any given time. So Jumping to different labels will route the processing of NODESYS directly to the relevant sections and finally to a label at the very end called "finish." Don't worry. When I add resource nodes to my project, I'll post detailed instructions for setting it up.

Using labels in dialogue events can allow you to jump from point to point in a conversation. Useful if you want to allow the player to go back and make different dialogue choices to go down different branches of the conversation without having to start the conversation over. One application of this is setting up an entirely conversation-driven store Using choices 2 - 5 for item options, with choices 1 and 6 reserved for previous and next you can use labels to jump directly between choice pages.

Please feel free to ask any questions you may have. I may not have the time to produce tutorial videos, but as you can see, I still want to share knowledge. The hold on the video tutorial series is a time management issue. I cannot be working on my project if I am working on tutorial videos. I will get back to doing them, but for now I need as much time as possible to work on the actual project.

Hoping the day finds you all well. Until next time...
 
Last edited:

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
A look at the project:

I've been building the overworld for Chapter One. Or more specifically the overworld for Chapter 1's first point of view character, Aron Parker... Chapter 1 will have 3 point of view characters: Aron, Moreen Trell and Aldebrand Vilar. Each will have their own unique sections of the overworld and will share other sections.

I thought I would share a look at one of the screens and its location on the overworld map as it has come so far:

Parker Farmhouse SW:
Parker Farmhouse SW.jpg
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
Aron's Map as of 4/6/21
Aron Map 4-6-21.jpg
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
When completed, Aron's map will fill the entire image and consist of up to 221 screens. I cannot say exactly how many as some screens would be solid rock or forest, thus inaccessible. They will be represented on the overworld map, and built. The reason being is that in future chapters, I may make use of certain overlapping areas from previous chapters. Continuity is very important to me for world building. By already having sections of the map designed, not only will I not have to redesign them, but I can just move them to the correct branch in the map list tree and delete the branches that play no role in the chapter. I am, however going to try to make all screens accessible in some way, even if I do some sort of cinematic map scroll from a far-flung corner to where a character's point of view starts. And something to consider... Overworld screens represents what is on the surface of the world... Just because that screen may be solid mountain doesn't mean that there won't be caverns or dungeons below the surface occupying the same relative space.

I'm building the world to scale. As big as a house is on the inside is how big it is on the outside. Based on the 999 map limit, this means for large maps, like cities where I want to let the player explore streets and back alleys, the overworld for that chapter will be up to 884 totasl screens with up to 115 maps reserved for interior areas...

Interior areas will not use screen-by-screen navigation, but will be one contiguous map of equivilant size.

Regarding the edges of the map... While I hate invisible barriers in games, I don't want to physically wall an overworld map in. The idea is that everything needed for a character's point of view in a given chapter is in or accessible from that character's overworld.

Keeping Score:
While the focus of the gameplay is story, a game needs to keep score somehow. Every screen or map the player can access will increase an exploration variable. At the end of the chapter the percentage of the overall total of the chapter's possible exploration points will be displayed...

Other things like lore discoveries will be scattered throughout the overworld. Those will get their own score.

There will be items that can be picked up that will provide a score as well. In chapter 1, gathering grain will not only play a part in the story, but scattered around the map, will be extra grain that will exist just for earning points. Those who want to just play through he story and don't care about score can do so. But those who want to find everything that can be found in a game will have a way to measure their success...

There won't be too many hidden zelda-like secrets in Chapter One. It's more about introducing some of the characters and getting them started on their journey. But in later chapters, more of that sort of thing will start showing up and will be expanded upon. I will be placing... something... in one of the Chapter One overworlds that, while it won't have a function yet, later chapters one of the point of view characters introduced in Chapter One will learn about what it is and how it works, and if that character's journey leads them back home, revisiting that screen may prove to be productive...

The distance between points on the world map:
The City of Parl is a ten day journey to the east of Ilos, where the story will begin... Obviously, I am not going to be building a gameworld that includes a span of a map that would take 10 days to traverse.That would be insane... So going back to the invisible barrier at the edge of an overworld map, there will be an event in every edge tile that will make the character take a step backwards with a comment popping up like "Parls is a ten-day journey from hee, and I am in no way prepared for that." Or something like "Nothing but rough landscape as far as the eye can see..."

But...

If there is a road that leads to Parl, then Parl will eventually be a place the story will take the player. And at some point, the player will be prepared to take the journey. It just may not be in the first chapter. I know the story elements that need to be in Chaptr One. But I do not know where the story is going to ultimately go. But I will say this... Any character that has an actual name is a potential point of view character. So someone you bump into in a tavern who may have just one line of dialogue might be someone you end up playing or having in your party later.

Well, that's it for this info drop. Gotta get back to it...

You all have a good day...
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
Today I bring you another screen from the project - The Crossroad:
The Crossroad.jpg
Located at the center of Aron's overworld map, heavily traveled paths lead off in all four directions. The north dirt path leads to the Parker farm, and the west dirt path leads to the Trell farm, where Moreen's point of view begins. The cobblestone path leading east leads to the city of Parl, which will factor into later chapters. The cobblestone path leading south will take the player to the village of Ilos itself, where Aldebrand's point of view begins, and where chapter one concludes.

And like last time, here is the current version of Aron's map:
Aron Map 4-11-21.jpg
I used tiles from the overworld A tileset to give a general reference to the type of screen that will be there. As I complete a screen, I update the paralax image and with a 48x48 scaled image of it and delete the overworld tile The gray solid mountain tiles in the upper left corner represent exactly that: Solid mountains, which means the player will not be able to actually enter those screens. But the sandstone tiles below will be the foothills where rocky landscape gives way to the roots of the mountains.

If you look at the completed north edge of the map, you will notice that every part except the last three tiles has open edges leading north. This is what I was referring to in the last post where I talked about using invisible barriers at the edge of the overworld map. Chapter One does not take the player that way, and if the player tries to go that way, the character will take a step back with a message about the rocky landscape continuing ahead, but giving way to more boring farmland...

The castle and pavement tiles in the bottom left corner are placeholders, representing where the Trell house and herb field will be.

Chapter One's first two tasks are completable. The player must complete them before the game will allow Aron to travel further west or south than the crossroad. Aron is a responsible individual. He knows he's got duties to complete before he can go wandering off, and just like the edgese of the overworld, attempts to go beyond those bounds will fail.

Regarding encounters, the ENCSYS event has been implemented and tested, and it works as intended. I just will need to hook encounters up to the triggers once I decide what those will be. There are a lot of woods and rough terrain in the area. Probably wild animals. This region is relatively peaceful, and like I said, this series is not supposed to be about fighting wave after wave of enemies to grind experience for leveling up. But not having anything to encounter as one wanders around exploring the map just feels too... Dead...

One technical issue I ran into came after adding a couple of visustella plugins so I could get access to self variables and extended self switches, as well as diagonal movement, I found that a diagonally moving character can slip between border tiles and end up in a screen's corner. This causes the region ID based screen transitions to fail. With the default ability to only move U D L and R, i was impossible to end up in a corner. The solution is to use an empty event with priority set to same as characters. This creates an invisible solid object that the player cannot move into. So if any of you are using my NAVSYS technique, and you also use a diagonal movement plugin, this will be an occasional issue..

Well that's it for this update.
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
OVERWORLD SCREEN CREATION
Hello, everyone. I'm bak with another how to post that offers examples based on what I am doing in my project.

I am a little unorthodox in how I design my overworld screens. As you know, my methodology for overworld travel is similar in style to the original Legend of Zelda. Screen by screen. This was a conscious choice on my part as this framework is intended to create a navigational style of Zelda with the sort of character interactions and story progression of a CRPG like Dragon Warrior or Final Fantasy as they exiasted on the NES/SNES.

When you look at classic Zelda's overworld map, it is clearly a man-made maze, but with very little organic aesthetics. And when you look at a classic Dragon Warrior or FF overworld, you get a much more organic structure to the different land types. and how they are placed in relation to each other, but those maps are designed to convey large landscapes where each tile could be representative of a square mile, or more.

In order to blend the aesthetics of FF/DW maps with the maze-like functionality of Zelda maps, I sort of take myself out of the actual design equation. I use a random number generator to determine where impassible tiles go, such as trees, rocks or mountain tiles. First I do this for the tiles at the borders of the screen. This establishes the entrances and exits to the screen. I then do the same thing, row-by row for the tiles for the rest of the screen. This random clutter of impassable tiles creates irregularly shaped physical and ensures that no two screens that the player can visit will be identical.

I decide the primary paths the player needs to take, for example, how the roads and dirt paths wander through the land, and in screens that use those, I still do the random number process with natural barriers, but I work around the paths. The result makes it feel like the path was made around the natural barriers, when in fact it was designed the other way around.

One negative to building a world this way is that the way the impassible tiles connect, some areas are sealed off from each other by default. In a finished game, this would be unacceptable. Once all the primary paths are established, what I call the connectivity pass begins. This is where I identify all the places that cannot be reached and do one of two things: Either I fill those areas in with the apropriate impassable tiles, or I remove some barriers and make sure that they can be reached. The former is done when a screen is meant to be in congested areas like dense forests or mountain passes, where there's really only one or two paths to take. The latter is done when I want the region to be more crazy and maze-like. How I decide which action to take is based on how the overworld map looks.

The only screens that may have inaccessible areas on them are the once at the border of the overworld itself. As mentioned in a previous post, I want to convey the idea of the world extending beyond the scope of a given chapter's or character point of view's general area. Any sections of a screen that might be inaccessible, but include an exit to "the world beyond" will be left alone. If I decide to do an overworld in that region, then those inaccessible sections will be accessible to the new locations, and in fact, the areas that were part of the old areas will be what is inaccessible. So it would be like looking at the same screen but on the other side of the "wall"

When I work on adjacent screens, I make sure that the entrances and exists line up with each other, so all of the screens fit together

Even though I don't design the screens voluntarily, the process is still quite involved and time consuming. There is work involved. But by taking myself out of the process and relying on random distribution, the results of how the overworld as a whole looks is far more organic and natural, and even the more maze-like regions look more like say, a forest with twisting paths that lead back on themselves or into dead end where the trees are too dense to get past.

As I said, it is my goal to make almost all screens accessible fully accessible. or ast the very lease, account for the ones that are not.
 

GBJackson

Veteran
Veteran
Joined
Dec 11, 2016
Messages
104
Reaction score
109
First Language
English
Primarily Uses
RMMV
Just a quick update this time. No full-length novel's worth of me rambling.

Here is the latest version of the overworld map. Using a combination of filters in Gimp, I have made the parallax image look like an oil painting on canvas. This will be the form it will take in-game when the player calls up the map. If course, this version is at a higher resolution, but I've tested this in-game, and it doesn't look bad at normal MZ resolution...

To apply this effect to your own images, first scale the image up to at least 1080 pixels in height. Whe width will automatically scale correctly unless you unlink height and width scaling. Next, go to filters, then under Decor, select "Fuzzy Border". Then do Filters > Artistic > Oilify. Finally do Filters > Artistic > Apply Canvas.

Let me know what you think.

AronMap041721.jpg
 
Last edited:

Latest Threads

Latest Posts

Latest Profile Posts

Yay, our new game, Causality is finally released on Steam!
A good way to practice writing is to write "flash fiction"; very short stories. Link
[CM]
5VaUMjAFpz1I6fSsgDrfJc.jpg

Title is star.
Dam, does the night get to me, I sound and look like a monster. Its 3:54 am right now...I need sleep...or...coffee.

Forum statistics

Threads
110,488
Messages
1,053,673
Members
143,582
Latest member
beru
Top