Saturday, June 28, 2014

RPG Maker Tutorial Part 2

See this post for part 1. It contains chapter 1, 2 and 3 of the tutorial.


4. Combat

Now that you've got a basic way to design the world your game will take place in, it's time to make travel a little more interesting.
Again, most avid gamers will recognize this as "random encounters". There's multiple ways of implementing combat in your game, some examples:
* Random encounters - (almost any 2d rpg) you walk around in world areas and dungeons and suddenly... "A wild Pikachu appears", then combat starts.
* Static creatures - (FF Mystic quest) any non world area may have creatures standing around as actors, talk to them to start combat. This allows the player to avoid combat if he chooses.
* A combination of the 2 above. (random in world, static in dungeons)
* Active creatures - (Lufia) instead of standing around, monsters move and can walk towards the player to attack them. This would require some scripting.
* Active creatures, and active player attacks. (Secret of mana, zelda, diablo) Live action - the player can attack creatures without being thrown into a turn based combat screen. This would also require some scripting, which we'll not cover in this guide at this time.

For now, let's look at the random encounters.
Static creatures are fairly easy to add and we'll cover that soon as well.

If you haven't done so yet, add a map that will serve as your "world" map. You should know how to do so by now.
Make sure you add a transfer event to go there from your town, and back from there into your town.

Open the Region editor (F7), and make some areas around the town. For example you could set region 1 to nearby grasslands, region 2 to some forest, and region 3 to some nearby hills. (you can't walk on mountains by default)
Next, in the map box, right click on the new map and select "map properties".

On the right you right click (or double click) in the "encounters" box and select Slime*2. By default the troop will then appear across the whole map. Let's set it to appear in a specific region only. If you wish the monsters to appear more often, raise the weight from 10 to a higher number.

Now would be a good time to test your newly added monster encounter.
Seems to work right?

Let's cover that static monster next.
Go to your town map and open the "event editing mode"(F6).

Right click on the map and select "New event".
Double click the "graphic" and select something from "Monster2" the blue slime for example.
Double click the first line of "contents" on the right and select from tab-3 the "battle processing" button.
Then, select the "Slime*2" again.
Ensure the "trigger" (in the bottom) is "action button". This will ensure if you press space next to the monster, you will initiate the attack. (Also see below how to hide the monster after defeating it)

Time for another test?
Using these 2 combat encounter techniques you'll be able to add some basic excitement to your game.
(You have to keep in mind that the story will obviously be the most important part)


5. Story

As just stated, the story is important, but... how to tell a story in a game?
NPC interaction will get you a long way, your character will move through the world you create and talk to NPCs to gain quests, new party members, and be sent off to rescue the kingdom or world from mortal peril.

NPC Types.
* The nobody: One or two lines of text - if any.
* Chatterbox: The NPC that wants to tell you a ton of things, and has you smacking space because you don't care about it. Much like the nobody, these guys are pretty straightforward.
* Innkeepers and vendors: You already know how to make an innkeeper, we'll get to vendors later.
* Quest NPCs: NPCs that activate a condition in order to progress through the game
* Party members: Most RPGs don't let you start out with a full party, you find these along the way, and after meeting a certain trigger they will join or leave your party at a later time.
* Static monster: Monsters can talk as well - certain bosses or villains for example will have more dialog than plain mobs. Explaining the evil master plan as you sharpen your sword, or taunting you at your inability to prevent the next event. (You already know how to make a static monster, see above)

So, let's add some text.
In order to create a NPC with some dialog, you once again create an event (F6 mode again).
Right click somewhere in town and first select a proper graphic. (Much like creating a static monster, you create a static NPC)
Next, Add a new event content (right click, insert) and select "Show Text" from tab 1.
You can then select a face graphic to show the actor you're talking to, or leave it blank for generic NPC or the narrator.
Fill in the text you wish to show.
I put up a dog here, so I added the text "Woof".

You now have a generic "nobody" NPC.
To create a chatterbox, simply insert extra text lines. (or select the batch entry checkbox)
Note: To simulate chat between your character(s) and the NPC in question, simply set the character portrait, or prefix the text with the name of the NPC you want to indicate is saying the text.

If you wish to give the player some interaction, you can insert the "show choices" message.
When you add the choice, you'll notice the contents branches into a "when yes" and "when no", under each of these choices you can then add more text, or special actions, such as giving the player an item, or adding/removing a party member.
If you wish to create a false choice to which the player MUST agree, even though he's given a choice of yes and no, you can create a so called "loop" (also on tab 1).
Note that after adding a loop, you have to add a "break loop" in one of the choices, or the player will be stuck with the NPC.

Example:

@> Loop
@> Text: 'Actor1', 1, Normal, Bottom
:: Could I tag along?
@> Show Choices: Yes, No
: When [Yes]
@> Text: 'Actor1', 1, Normal, Bottom
:: Thank you, let's go!
@>Break Loop
@>
: When [No]
@> Text: 'Actor1', 1, Normal, Bottom
:: You can't say No to me!
@>
: Branch End
@>
: Repeat above
@> Change party member: add [Natalie]
@>
Beside adding party members this way, you can also set "switches", which may be used to determine other NPC reactions (for example to allow you dungeon access).
Or transferring the player to another map.
And many more things.

If you used the above "add party member" example, you'll notice the NPC will still be seen standing there, after "bringing her along". This is obviously somewhat counter intuitive. So, let's add a switch.

6. Switches

Switches control events, such as you pulled the magic sword from the stone, defeated the crypt fiend, talked to the dog, entered the graveyard, and so on. Using switches you can control the game progression and make new areas or party members available for your hero to discover.
Keep in mind, adding a LOT of switches will quickly make your RPG's script more complex for you to manage, so it's recommended to give clear and easy to understand names to each of your switches, so even if you come back and start editing again a month or two later, you'll know what the switch does, and why you added it.
For example:
* Crypt Boss Slain
* Party Natalie Available
* Party Natalie Added

Lets alter the above script by adding another NPC to the town, which makes the other NPC "available", and then change her dialog so you don't make her available a second time. After all, if you pull one switch, you reset another.

The basics would be:
* You enter town (or talk to a certain npc), raise switch "Natalie available".
* Natalie should now be visible to talk to, and get added to your party.
* After adding her, the initial switch that set her as "available" should now no longer be possible to re-set, otherwise you'll be able to see her in two places at the same time.

To make this, we edit the above existing event and click the "..." button next to the "Conditions-Switch".
Let's name the switches and press OK:
* 0001: Natalie Available
* 0002: Natalie Added to Party

Next, we set the condition switch 0001: Natalie Available to the above script which allows you to add her to your party.
And, to the bottom of the script we insert two new script lines:
@> Control Switches (first tab, game progression): [0001:Natalie Available] = OFF
@> Control Switches (first tab, game progression): [0001:Natalie Added to Party] = ON
This way, the event won't show up until she's "available", and she'll be hidden after completing the event.
The second script line will be used by the NPC or event that makes her available.

To ensure she's made available only once we insert a "flow control -> conditional branch (Tab 1)".
In the dialog that follows we have it check the switch "0002: Natalie Added to Party" is OFF, in the first line of the branch.
(In the "else" statement, you could add a different response, such as "Oh hi Natalie" - to indicate the NPC recognizes she's in your party).

There is however a much easier way to programming an "add npc" event.
It just takes 2 simple steps. (You can still raise the "natalie available" switch to make the event show up in the first place)
The first step, is to create the event and have the event respond on the player talking to the npc as usual. After adding the new party member however, you can set the "Self Switch A" on the event, instead of using event "0002: Natalie Added to Party". Then on the event, add a second event page (see the buttons at the top) and on this second event page just add a check for "Self Switch A is ON". That's it.
You can make the second event page as fancy as you like, for example by adding a brother or sister to the npc to take their place and talk to the player, or a grass pile, or even a sign post saying "I've gone on an adventure.". Be creative.


To be continued.

Wednesday, June 04, 2014

RPG Maker Resources

So, RPG Maker is on Steam for a reduced price for just one more day - if you haven't gotten it yet, now's your last chance in a while. Unless you just want to pay the full 70$ for it,.. but, 1$ is better than 70$ surely?

To get you started with the software we'll be posting the quickstart guide here. Today we'll start with some of the basics.

There's a few extra information / resource sharing spots that may get you started (I'll list some more stuff later).
* Official - feature list

Community:
* Rpgmakervxace.net
* Rpgmakervx.net
* Rpgmaker.net
* SteamCommunity.com
* Steam DLC Guide

Resources:
* Resources on Deviant Art
* Rpg-maker-artists.deviantart.com
* VxResource.wordpress.com
* Rpgmaker.net/resources
* Rpgmakervxace.net
* Rpgmakervx.net
* DivisionHeaven
* VictorScripts

Tutorials:
* Rpgmakerweb


1. Getting started

Upon first launching the software you'll be facing an ocean with a character in it.
If not, no worries - the first step to take is to click: "File -> New Project".
Select a good spot to save your first game or "RRVS_TestProject", and hit ok.

Now, if you weren't facing a small lake before, you should be seeing it now. You'll probably have the urge to press some button or jump into drawing right away - resist that for now.

In the bottom-left there should be a panel with your "test project" name, and "MAP001" under it.
Right click here, and select "load sample map". This folder should provide you with a ton of inspiration and play-things with which to learn the initial basics. For now I'd recommend just picking "Regular Town" and setting the zoom factor to 1/2.

Press F6 to enter event mode and right click the middle of the map. Select "set as starting position -> player".
Next, delete "MAP001" and hit the green arrow (F12) in the top-right of your screen.
Note: Across all your maps, you can only always have "one" player starting position. This will be useful for testing your maps.

At this point you'll launch the game, and get control over the character.
If you used the small town as sample map, you'll quickly notice you won't be able to enter any buildings. We'll get right into that.


2. Transfer and Door Events

If you're an avid RPG player, you'll know there's multiple areas, towns, overworld, dungeons etc which make up an RPG. To switch between these different maps, we need to create "Transfer Events" or doors in the places where you wish to allow the player to do this.

First, we add another map (easiest for now) just right-click the bottom-left field again and add a sample field. A good choice would be "InnF1F". Your sample project will now have 2 maps. Feel free to select it and see how it looks.

Next, we create the actual transfer event.
Go to your main map and ensure you're in event editing mode (F6).
Right click a doorway and select "Quick event generation -> Door". Click the "..." icon next to the destination, and sele
ct the other map (InnF1F if you followed the above steps), then select the starting position on that map and press OK.
Note: Doors work exactly the same (meaning you just walk into it), except they show a "door" in the place where the transfer event is initiated from.
Press OK again to close the dialog and finalize the event.

Let's play test the new event and see if it works! (F12)
If you now walk into the doorway, you'll be transferred to the new map, but,. no way back yet.
See if you can create it before continuing to the next chapter.

Usage tips
* To allow your character to transfer between the large map and town, it's advised to use transfer events.
* To transfer from town to interior or between interiors and dungeons, it's recommended to use a door event.
That's not set in stone obviously, as you can have houses with open doors use transfer events - be creative, use what you think looks good.

3. Innkeepers and Chests

Since you've used a "quick event" just now, I'm sure you'll have noticed the other two choices there, so let's handle those as well.

Go to the "InnF1F" map that you've got in the map list, and once again ensure "event editing mode" is active. Find a good spot for your innkeeper (even through a single wall will work, so you can put the innkeeper behind a counter) and right click to place him. Yo
That's it! Creating an inn has never been easier.

Obviously while testing your character will not have any gold, so for the time being it's a good idea to put up a treasure chest.
There's a quick event for this as well as you've no doubt noticed. Right click near the innkeeper and select "Treasure Chest". Set the content to be 10 gold or so.

If you want, you can select items, weapons or armor in the same manner.
You can obviously create and review items as well - just press F9 to open the game database.

To be continued.

Sunday, June 01, 2014

RPG Maker on Steam

Today marks the end of the Steam Free weekend for RPG Maker VX Ace.

If you haven't already given it a try - now's your chance! But, even if tomorrow comes along the guys and girls over at Humble Bundle have a once in a lifetime deal for you that's even better! In this the bundle for this week, you can get RPGMaker VX Ace for only 1$ - the software is normally sold for 69.99$. Plus, the bundle includes some art, and a few games as well. Aside that RPGMaker has 3 steam card drops, which you can sell for about 0.30$ - so the actual price of the bundle is about 0.70$ - this is a steal. If you haven't already done so - I highly recommend getting it for yourself, and maybe a few friends as well.

Among the games you get in the bundle is Skyborn with art from Britt aka Saehral. Worth 1$ on it's own easily.

So, if you've got yourself RPG Maker, and now you need help figuring out how to actually "make" that RPG you always dreamed of playing. Well, I'm working on a quickstart guide, and will share it with you here obviously. But, it takes time to write and fix up. Meanwhile I've got a decent start available on the MMOC forums where you can join in on the discussion.