Gw Temp


Tutorial - 'Sound Movement System' by ATARI

An item about RPGMaker 2000 posted on


A tutorial on how to make a sound movement system. This is part six of the shooting and hearing tutorial. (NOTE: This is not a new tutorial to GamingWorld. This tutorial was just not transferred over to GW5.)


Hi folks! It’s ATARI! This time I’m going to talk about how to make a sound movement system in your
RPG. This tutorial is Part VI (six) of the shooting and hearing tutorial mini-series.

Things that you need to know for this tutorial,
1. Fork Options
2. Password Events
3. Variables
4. Switches
5. Set Event Command

So what exactly do I mean when I say a sound movement system in your RPG? Well, if you have ever played any of the Metal Gear Solid series games (if you haven’t you really should), you know when you walk, you make some noise. On some tiles it’s quieter, while on others it’s louder. If guards hear the noise of you walking, they come after you. Anyway, that is what this tutorial is all about. This tutorial (as with all the other shooting and hearing tutorials) are designed to go along with an ABS system.

Setting Up

The first thing that you need to make is a new map for you to try this system on. On this map you will need at least two different tiles to walk on. They need to be walkable tiles. (So for example, you could have grass, and a hard metal floor. One needs to be a loud tile, and one needs to be a quiet tile). Make the size of the map the smallest size, then make half of the map a loud tile (on the top) and a quiet tile (on the bottom). Since you cannot directly split them into half evenly, make the bottom one smaller. Then surround what you made with 1 x 1 things of water on each side. (Putting a border around the map with impassable tile). Then resize the map to 21 x 16. Name the map “Test Map.” (Like all the other maps you make in the other shooting and hearing tutorials, they are test maps, so you don’t need to put them into your game.)

The next thing that you need to do is a get some X and Y coordinates. Of what exactly? Well, look at the picture below.

You want to collect the X and the Y coordinates of the four corners of one of the tiles on the map that you made. Each tile has a different amount of noise that it would make. For now, use the one that makes less noise, like grass for example. Get the X and Y coordinates of the parts circled, and look for the circle of where the X and Y coordinates show up if you don’t already know where.

Bringing The Noise

Now that we have the coordinates down and we have the map set up, we have to make the event that
makes noise come from when you step on the grass tiles. The first thing that you have to create is a new event. Make this event have invisible graphics, and set it out on the impassable tile that surrounds the land. Make this event a parrell process event. Name the event “Sound Event.” In here, put in a change variable event. Make it set the variable “HeroX” to the hero’s X coordinate,” and then set the variable “HeroY” to the hero’s Y coordinate. After that, put in a wait 0.1 seconds event, and then look at a picture I took of code that comes after the wait event.

Now this might be different, but if you put the quiet tiles on the bottom, and you used the same map size like said earlier in the tutorial, you should make something identical below the wait event. If you did it differently, just read on. I’ll explain what I did in the picture of the code first. The first fork option is a fork saying, “IF variable ‘HeroX’ is 1 above, then” followed by “IF variable ‘HeroX’ is 18 below, then.” (Shown as “less,” but in the fork option window, it is “below”) (Remember that above is equal to/greater than and below is equal to/less than). These two forks are basically saying when the hero’s X coordinate is between 1 and 18. Below that is a fork that says, “IF variable ‘HeroY’ is above 8, then”, which is followed by “IF variable ‘HeroY’ is below 13, then,”. Now let’s stop there and figure out what we have done. Basically, these forks combined, ask whether or not you are anywhere on the quiet tile. Now if you did the quiet tile somewhere else, or differently, replace the fork options. Replace the first fork with the X coordinate of the left corner of the quiet tile, the next with the opposite corner on the other (or right side) corner. Then the fork after that with the Y coordinate of the top part of the quiet tile, and the next with the bottom part of the quiet tile. When you have that done, you can continue on.

The part that comes after it is an enter password event. What you want to do in here, is create a new enter password event after the fork options. In here, use a variable called “HeroMove.” Within the password event, make sure that “Wait Until Key Is Hit” is Not selected. The part that you want to select is the “(1,2,3,4)” box. Hit the apply button.

Below that password event, put in a new fork option. Make this fork say, “IF variable ‘HeroMove’ is above 1, then” which is followed below by creating another fork option that says, “IF variable ‘HeroMove’ is below 4, then.” These two fork options are basically asking, when the variable ‘HeroMove’ is being used, it does something. Below, put in a wait 0.1 seconds event. Now hit the apply button. We will finish this event later, because we have to create some new events first.

Now on your map, if you made it like it was in the tutorial, or if you didn’t, find someplace in the surrounding water where there is at least a tile of water between the ground. What exactly does that mean? Look at the picture below.

On the part that is good is where you want to make the events. Why does it matter where the events are? Well, these events are going to be all “below hero.” Since it’s below hero, the player would be able to walk out onto the event if they found the spot where you made the events, and if you have guard events, they could also end up walking out onto the event, and since these events are going to the be the noise events, if a guard walked out onto it, it would trigger “Being heard” when the player wouldn’t have made any noise that they can hear.

So, on one of the “good” spots, create a new event. Make this event a “below hero” event, and have it be “push key.” Name the event, “Sound1.” Make it’s movement speed be “x4 faster.” (the fastest possible movement speed. Then copy and paste this event seven more times on the “good tiles,” and change their names from “Sound2” through “Sound8.” Now go back to the event “Sound event.”

In here, below the last thing that you made in here, put in a set event command. In the set event command window, have the event “Sound1” be set using the X and Y coordinates of variables “HeroX” as the X coordinate and the variable “HeroY” as the Y coordinate. Once that is done, do the same thing with “Sound2,” and then do it with all the way, up to “Sound8.” Now hit the apply button. Below where all the set event commands have been put, put in a move event. In here, have the event that is being moved be the event “Sound1.” Make it’s move frequency 8 (and for all the other move event events you’ll be using.) In here, make it move speed up four times, and then face to left and move once space out. Have it be followed by the move event of “Sound2.” Here, make it move speed up four times, face left, move left once, face up, and move up once. Then have it be followed by the moving of event “Sound3.” Have it speed up four times, face up and move up once. Are you beginning to get the pattern of how these events are moving? If not, look at the diagram below.

Finish up doing this up through “Sound8.” It should look like a square surrounding the hero. If you want to see if you got it right, change the graphics on the events so they can be seen. (make sure that you keep the events as “below hero,” as well.) Remember, on the ones that are diagonal get to the diagonal, and be sure to have the move speed up parts in there as well. Now below that, make it wait 0.1 seconds, and then put in some new change variable events. Now store the event “Sound1”s X coordinate in “Sound1X” and the Y coordinate in “Sound1Y.” Do the same with the other sound events using corresponding variable names. Now hit the apply button. We will work on this later, but now you’ll have to make a guard event.

This event doesn’t have to be anything elaborate, but just make an event, name it “Guard”, and give it some graphics. Hit the OK button and go back to the “Sound Event” event.

Back in here, put in a new change variable event under the last thing that you made in this event. In here, make it set event “Guard” X coordinate to variable “GuardX” and the Y coordinate to “GuardY.” Now, put in a fork option below that. Make the fork event say, “IF variable ‘GuardX’ is equal to
‘Sound1X’, then” and have it be followed by a fork below that says, “IF variable ‘GuardY’ is equal to ‘Sound1Y’, then,” make it turn on the switch “GuardAlert.” Hit the apply button and go to the guard event.

Make a new page with the same graphics that’s starting condition switch is “GuardAlert.” Make it move faster, or whatever you want. Hit apply and then OK.

Go back to the event “Sound Event” and in the else case of the last fork that you made, put in a fork option that says, “IF variable ‘GuardX’ is equal to variable ‘Sound2X’, then,” followed by a fork that says “IF variable ‘GuardY’ is equal to the variable ‘Sound2Y’, have it turn on the switch “GuardAlert.” Getting the pattern? Complete this up in the else cases until you’ve finished up with Sound8’s variables. In the left-over else cases, have nothing happen. Now in the end case at the very bottom, make it wait 0.2 seconds, set the sound events back to their normal spots, and set all the variables that you used in this event to “0.” You are now finished with this event. Hit the apply button and the OK button.

To make the system for the “louder” tile, just copy and paste the “sound event,” and create some more sound events “sound9 - etc.” and have them worked in. Don’t forget to change things so it all corresponds with the loud tiles.

So, that is all there is to making a sound movement system in your RPG!

Good luck!

“Even the greatest gamers were n00bs.”