Some month ago I started playing with RPG Maker VX Ace. I’ve wanted to create a game for a long while, but lack of free time makes it hard to do something complex, so I decided to try what I hoped was a simple tool but good enough to tell a (silly) story.
Jumping into RPG Maker development was a little harder than I had hoped. The standard tutorials I found early on didn’t seem to address what I was most interested in, which was creating interaction rather than creating a world.
I decided to create a small project to learn interaction, and figured it could be helpful to others if I documented what I learned. Unfortunately, as with many things, life and other interests took over (full time job plus little kids don’t leave that much free time), and I haven’t touched this for a while.
Still, I figured I’d still post what I’ve done so far, in the hope that it will help someone. RPG Maker VX Ace is often sold at a deep discount, and is a neat tool for game development, so I imagine that there will always be new users looking for help.
Note that I’m still a beginner. I’ve only played a little with RPG Maker, and what I did is based on my experimentation and what I’ve read on the web. Some of what I write here may not be the best way to achieve the goals. Comments and advice are welcome.
You can download the project containing what I’ve published until now (the first three pages of this tutorial).
With the introduction out of the way, let’s get into the tutorial.
I wanted to create a small project which will have an intro cutscene, objects to interact with, interaction with an NPC including branching dialogue with multiple outcomes, adding an NPC to the party, and combat. The result should be a tiny game that can’t all be experienced during one playthrough, and has some (simple to find) secrets for a player to find.
I didn’t want to get much into mapping. That to me is secondary, something to do once I know the kind of interactions I want. I also wanted to use default content, not get too much into creating characters, weapons, etc., and certainly not new graphics.
Eric has just finished studying to be a knight and came home to his family to rest and look for adventure. One night when his parents and sister are out he remembers that as a little kid his grandfather told him that the house had a basement that led into a dungeon. He always thought it was just a story, but he decides to look for a basement anyway.
(Note that the story started as just “young knight finds basement dungeon” and details were added while developing the game. These are not all of them; more will be added later.)
VX Ace and creating a project
When opening VX Ace for the first time, you’ll be presented with a blank window with a menu and icons at the top.
Select File / New Project… from the menu or click the New Project icon (circled below) or press Ctrl-N.
After okaying the dialogue you’ll see a character in the middle of a sea and graphic tiles we can draw on the map. I’ll totally ignore them for now. I’ll keep this map for future use, but for now I’ll add some sample maps and use them.
At the bottom left there’s our project and all its maps. Right-click on ‘Tutorial’ and select Load Sample Map….VX Ace comes with a lot of sample maps, which can serve as good examples for what can be done. In this case I’ll use two maps directly. House CF1F and House CF2F are two floors of a house where our young knight will live.
That’s what we have so far. We’re looking at floor two of the house, which is good, because Eric just went up to look for his sword and shield. He gave them to his mom when he got home and he’s not sure where she put them.
I want to create a short cutscene where Eric says he’s looking for the sword and shield and goes around looking for them, then leave it to the player to find them (which will be easy).
First lets put Eric on the map. Make sure we’re in event editing mode by pressing F6, clicking the icon (shown below) or choosing this from the Mode menu. Right click the tile to the right of the stairs, choose Set as Starting Position / Player. The player character now appears to the right of the stairs. If we start the game (F12, Game / Playtest or clicking the rightmost icon, the green play arrow) Eric will start there, and we’ll be able to move him from there.
But I want him to move of his own accord, and here we come to the most important concept in RPG Maker, events.
Everything that happens in an RPG Maker game is described by events. An object that the player character interacts with, such as a chest (which we’ll create soon, right after the cutscene), an NPC we interact with and fight, or a cutscene, they are all described by events.
An item or an NPC have a specific location, but a cutscene doesn’t, so we can create the event in any place we want. Putting it where we’re not planning to put any other event is a good idea. For now let’s put it on the wall above the character. There’s a reason for this particular location, but I’ll get to it after we create the scene.
Click the place and press Enter or right-click and select New Event…This is the event window. We’ll ignore most of it for now. It’s worth pointing out that hovering the mouse pointer over anything, in this or any other window in RPG Maker, will show up a helpful detailed description.
In this case I hovered over the Trigger selection. I want this event to happen immediately when the map is loaded (this map will load at the start of the game, because the character starts here), so I will choose Autorun.
Now that I selected this, let’s make this event do something. I want Eric to move to the centre of the corridor, say he’s looking for his sword and shield (so the player knows what to do) and searches the top side rooms for them, then leaves the rest to the player.
Click on the first line of the Contents pane, the one that starts with ‘@ >’ and press Enter.
Make sure it says Player at the top left. This drop down menu allow us to select what to move, and in this case we want to move the player character.
There are tons of movement commands here. For now we’ll use the basic ones. Click Move Down, then Move Left, then Move Down again. Click OK or press Enter to get rid of the dialogue. The Contents pane will show the command we created.
You can OK the dialogue for a moment to understand where we’re going to on the map, then get back into it (using Enter or right-click and Edit Event…).
Next I want Eric to say something. Click on the empty ‘@ >’ line, press enter, and select Show Text… at the top left of tab 1.
Write “Where did Mom put my sword and shield?\|\^” in the text box. If you hover over it you’ll see special character combinations that can be used. Normally a text box shows text and waits for a key to be pressed, but I want to show it for a short time and then continue, so I use ‘\|’ to wait a second and ‘\^’ to prevent the game from waiting for player input.
I also want the text box to show Eric’s face, so double-click the Face Graphic box and select Actor4. Eric is at the top left, already selected, so just click OK. (We’ll see later how I know that’s his face.)
Click Preview… and you’ll see the dialogue as it will look in game. Looks fine, so OK it.
Now I want Eric to look in the two side rooms, so I’ll move him 5 spaces left, wait a little (one second), then move 10 right, wait a little, then move back to the middle.
So press Enter again, select Set Move Route…, click Move Left five times, click Wait…, make sure the value is 60 frames, which is equivalent to 1 second, and OK.Now click Move Right 10 times, Wait another 60 frames, and Move Left 5 times. At the end I want Eric to look down, so click Turn Down.Now Eric will say “Nothing in these two rooms. I should look in the other rooms.” and give control to the player. Note that RPG Maker doesn’t split the text automatically into rows (in other words it doesn’t support word wrap). There are scripts for that (this is a good starting point to learn about the subject of word wrap using scripts and it has links at the end to two scripts), which are a complex but powerful way to control RPG Maker, but we won’t use scripts for now. The easiest way to handle this is to use Preview a lot. I chose to give each sentence its own line for simplicity.
Here’s the event code we have for now:
Eric will start walking around and saying what we told him to say. When he finishes he’ll start from scratch until he gets stuck. Oops. Close the window and let’s fix this.
An event can have several states, defined by event pages. For example for a door event (which looks like a door on the map) states can be ‘door locked’, ‘door closed’, ‘door open’. An NPC might have ‘first encounter’, ‘quest given’, ‘quest successful’, and ‘after quest’ states.
An event that only has one state will always do the same thing, and in the case of an Autorun event it will simply run again and again.
So let’s add a second state by adding a second page. Open the event and click New Event Page. Page 2 will open.
Typically for a simple event we’ll have two states, one for the first time interaction, and one for after the player has interacted with it. In this case after the cutscene ends we want it to switch to doing nothing from that point on.
We have an empty Contents pane, so that’s a good start for our ‘do nothing’ plan. Now we need a way to tell the event that we changed the state.
Go back to event page 1 by clicking its tab. Go to the end of the content pane, and insert a new command:
Note that it’s important that the Trigger for the page is set to Action Button (the default) and not Autorun like the first page. Autorunning an empty page will cause the game to get stuck as the empty page runs again and again.
Now our cutscene event it complete. Playtest the game again and now Eric will return to player control after the cutscene.
In the next post we will create some object interaction and customise the game a bit.