Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
Marked

How to Make a Simple Map: Lesson 2 - Enhancing the Map

Recommended Posts

This is continued from the previous Lesson, and we're using the same Map as before and adding onto it. If you haven't read Lesson 1, then Read it Now.

 

In this Lesson, we'll be adding all the Events that run as Parallel Process, and help Initialize the scene (I say scene, because you have the option of making the player Wait and allow other Events to happen before gameplay resumes.. storytime children).

 

So anyway.. thanx for the kudos for lesson 1...

 

Let us start the next Lesson... which is HUGE.

 

 

-----------------------------------------

 

Tileset Used - Outer Forest:

Click to View

 

Autotiles Used (All RTP):

G_Water01

G_Shadow01

Grass01

G_Ground02

Sn_Undulation01

Ground02

Waterfall01

 

Contents:

 

-Quick Info

--How Events Work

--Event Commands List

--Uses for Events

-Lesson 2: Enhancing the Map

--Step 1: Events that Work as Tiles (Above Hero,Same as Hero,Below Hero)

--Step 2: Initialize the Map (Map*/System** Settings)

--Step 3: Create Interactive Objects & NPCs (Non-moving/Movable/Consumable)

--Step 4: Create Events for Game Progression (Switches/Variables/Items)

--Step 5: Create Teleports (To other Maps/To another Map, then Back)

-Ingame Screenies

-Lesson 3: whatever else we can come up with..!! (coming soon!)

 

--------------------------------------

 

Some quick info:

--------------------------------------

 

Events can perform many functions for your Map and can control all aspects of how your game runs (aside from the Scripts that are the actual program at work, Events can be used as Amendments to the Game system). There are 80+ Event Commands to use, with a few for Battle only (another tut??) =/ ..guess I should explain some of the more widely used ECs (Event Commands):

 

 

How Events Work:

-------------------------

 

Events are processed at the beginning of each screen(map) load, and depending on how they are configured, will each run through their list of ECs at least once, in order or by usage of Label/Jump to Label Event Commands. When first creating an Event, you may:

 

1) choose a Switch/Variable/Timer Amount that must be TRUE (Switch is ON, Variable/Timer is equal to) to have the ECs processed for that Event (this is called a Trigger),

 

2) select Animation options for the Event's Sprite (if a sprite is used): No Animation (to have animation while standing still) and Move Animation (to have animation when moving), so if neither were selected, the Event's sprite animation will not change if it walks or stays put, and will only face each direction you turn. There's a few things that are good about that, I'm sure... <_>

 

3) select whether the Event is 'Phasing' or not (passability),

 

4) select whether the Event's Sprite is 'Always on Top' or not,

 

5) select how the Event interacts with the player character to have the Ecs processed: Hero Uses Action Key (press Enter while next to the Event and facing it), Hero Touches Event (ECs are processed once for each touch), Event Touches Hero (ECs will process repeatedly if the player doesn't move!), Auto Start (ECs for that Event will process repeatedly, but only one Event at a time) and Parallel Process (Ecs will process repeatedly and allow other Events to process as well).

 

 

Event Commands List:

-------------------------

 

Please refer to the Event Command List Topic: To save posting space!!

http://

 

 

Uses for Events:

-------------------------

 

There are numerous ways to use Events in your game. Here's a short List for what we will learn in this Lesson:

 

1) Using Events as a Layer when Making Maps (Above Hero,Same as Hero,Below Hero)

2) Initializing the Map with Events (Map*/System** Settings)

3) Using Events as Teleports (To other Maps/To another Map, then Back)

4) Using Events as Interactive Objects & NPCs (Non-moving/Movable/Consumable)

5) Using Events to Block/Further Game Progression (Switches/Variables/Items)

6) Using Events for Cut-scenes (Narrative/Storyline, Event/Player Movement)

 

* Panoramas,Fogs,Map BGM/BGS included

** Windowskins,Message Settings,Player/Event Speeds included

 

 

So... shall we begin Lesson 2..?

 

 

--------------------------------------

 

Step 1: Events that Work as Tiles (Above Hero,Same as Hero,Below Hero)

 

--------------------------------------

 

Okay... so we learned how to structure a decent looking Map together. Now it's time to learn how to use Events as another Tile.

 

Examples:

small01.PNG * small02.PNG

 

Those are both examples of how to use Events as Tiles, either the Same Level as the Hero (meaning you can't walk on it) or Above the Hero (you can walk beneath it). Here are the Layers individually for the second Example from above, to better show how I placed each Tile:

 

Examples:

small03a.PNG * small03b.PNG * small03c.PNG

Notice the missing tiles..?

 

Now with the other Layers dimmed:

small03d.PNG * small03e.PNG

You can see how Tiles can be layered beneath and above eachother, but when you run out of Layers 1-3, you have one final option to place that Tile.. Events:

 

Example:

small03f.PNG

 

So that it looks like this ingame:

small03g.PNG

 

But with RMXP comes change.. and not all for the good. With RM2k3, you had the option of selecting whether the Tile was Above, Below or Same Level as the Hero, which made it easy to make blocking Tiles. RMXP no longer has those options within an Event, so you need to use Tiles that cannot be walked on to block the Player. For Example, notice these two spots marked with the red arrows:

 

Example:

small03h.PNG

 

Since both the top edge of the grass and the top of the plant can be walked on (the grass is below, while the plant is on top), the blocking edges of the cliff that they are atop of have no priority. The plant top has no more Layers left to place a Tile there, so we need to block the surrounding area so that the Player can't get there, plus add an Event on the top edge of the grass that will block the Player... like so:

 

Example:

small03i.PNG

 

I even had to add another plant Event (the white flowers) so that the Player can't walk on the corner edge of the grass. Now just tidy up the rest of the missing Tiles and we'll continue. Just be careful not to put too many Tile Events along walkable paths... Events tend to get stuck if more than two Events end up on the same screen location.

 

Here's one more quick example for the Tile Events near the big tree:

 

Example:

small04d.PNG

 

Each Layer individually:

 

Layer 1:

small04a.PNG

Layer 2:

small04b.PNG

Layer 3:

small04c.PNG

Event Layer:

small01.PNG

 

There are two things to take note of in this Example, 1) the way I placed tiles so that the big tree looks like its covering surrounding objects and 2) the plant with a Tile Event top will appear above the Player sprite, so we need to stick another Tile Event on the bottom half that blocks the Player.

 

Example:

small04e.PNG

 

1) the little flowers, plants and rock pebbles closest to the big tree I placed on Layer 2 and the shadow of the big tree I placed above them on Layer 3, I also have the priorities for the big tree's shadows, from the opening and up, set as *3, so the shadows will be above the Player sprite. I used a Tile Event shadow to cover the bigger plant (since I ran out of Layers) and a Tile Event for the plant top, set as Always Above Hero, so it's above the big tree's shadow (I wanted that smaller plant to look like it was just out of reach of the shadow.. A2D (attention 2 detail)). The one thing wrong with the Tile Event top always above the hero will make it actually above the hero's sprite, which leads to point 2..

 

2) we need to fill in the space below that Tile Event that will appear above the Hero with a non-walkable Tile sprite.:

 

Example:

small04f.PNG

All we need to do is Copy and Paste a similar Tile Event and change it's Sprite to another non-walkable one.

 

Which would then look like this:

 

Example:

small04g.PNG

 

And the ingame screenshot:

small04h.PNG

 

Section 1 shows what we just did... Section 2 is where I had to remove a rock that was blocking the walkable path of the Player, making it so the player couldn't get to the area near the cave entrance.

 

Test your Map thoroughly, walking along all edges and seeing which Tiles need a blocking Tile, using layers 2/3 if available or an Event (*hint: there's a spot behind the tree in Section 2 of the above example, you can walk on the little stream.. just use a rock or something to block it). My general rule of thumb when creating my maps... don't allow the Player to touch the edge of the screen. Usually only when it's to Teleport to the next Map, or following along some secret path around the normal screen objects (super mario brothers Underworld style baby.. bloop bloop bloop... warp to level 4 o.O!) or maybe if you're just stressed for space/time and don't wanna draw a whole new line of tiles.. whatev..

 

..all done lip smackin? ~~~~~~c/././/.|= (o.o) pew pew!! laser gun attack!

 

 

--------------------------------------

 

Step 2: Initialize the Map (Map*/System** Settings)

 

--------------------------------------

 

* Panoramas,Fogs,Map BGM/BGS included

** Windowskins,Message Settings,Player/Event Speeds included

 

Init Event:

--------------------

 

okay.. so now let's put in some Initializing Events. Pick a corner of the Map and Create an Event. Call it Init. Structure it like this:

 

Event: Init

Preconditions: none

Graphic/Movement/Options: none

Trigger: Parallel Process

Event Commands:

Weather Effects: Rain, 2, @10 (Rain, Power 2, lasts 10 frames). This is just a sprinkle..

 

*for those who use ccoa's weather script, use a Call RGSS EC:

>Script: $game_screen.weather(1,2,0) (for rain.. check script for more info)

 

Change Map Settings:Fog = '001-Fog01',0,64,Normal,200,-1,1 (whatever cloud/fog image, Hue of the image, magnification of image, blend, speed X, speed Y). So you can use whatever image you want to appear above everything on the Map (not screen, because Menus and windows may appear above Fog images/weather effects). Gives a nice misty effect.

 

Move Event: Player

>Change Speed: 3

>Frequency Change: 5 (these are to help keep the Player at a set speed)

 

*Windowskins are optional to init, unless you really change skins alot using scripts. Same with the Message Display Options, set it to however you want the windows to show up on screen. Here's the Windowskin/Name Box code for people who use Dubealex's AMS r4 #2:

 

Call RGSS Script:

>$ams.message_box_skin = "Windowskin01" (or whatever you named it)

>$ams.name_box_skin = "NameBox01" (or whatever you named it)

 

 

 

Tint Screen: (-17,-17,-17),51), @0 (because of the weather.. cloudy/rainy)

*its good to have this command after all other screen changing ECs (before the Erase Event EC), just in case the screen had faded to black prior to teleporting to this Map; the fogs and weather can have a chance to initiate.

 

Wait: 5 Frames (just pauses a fraction of a second.. not really needed because Erase Event below, but good to have if the Event repeats, in that case set to 3 frames)

 

Erase Event (this is so that the Event only runs once when the Map is first loaded)

-------------------

 

okay, that wasn't hard. It should look like this (I left in both weather commands, but only use one):

 

Init Event Example:

 

Init Event Example

 

You can, of course, add other things to your liking, but I usually just use those as a base starter. The script weather is alot more flexible and has many more functions, like leaves and feathers, etc.

 

BGM/BGS:

-------------------

 

Now let's edit the Sounds. Right-click the Map's Name in the Map List to the bottom-left of the Editor, select Map Properties. Now we're messin with the Native BGM/BGS options. For this Map, let's choose a serene little piece, maybe with some melodic undertones... =/ err... or rather something funky I guess. I'll use bjorn_lynne-return to witchwood, set at Volume of 70 and Pitch of 100%. Here's the file:

 

bjorn_lynne-return_to_witchwood.mid

 

Now Play the BGM and select the BGS option and choose a river/stream SE. I use the default River sound, 010-River01, set at Volume 45, Pitch 150%. And there you have some ambience.

 

If you want other looped sfx, just make them in a new Event, call it Sounds or something, have it set as parallel process, and add a Wait EC bewteen each Play SE command and at the very end of the EC List. So it might look like this:

 

Event: Sounds

Preconditions: none

Graphic/Movement/Options: none

Trigger: Parallel Process

Event Commands:

Wait: 20 frames

Play SE: birdcall01

Wait: 50 frames

Play SE: insect01

Wait: 20 frames

Play SE: birdcall02

Wait: 30 frames

Play SE: insect01

Wait: 50 frames

--------------------------

and it will just keep looping those sounds, with a pause bewteen each one. Try it with other animal/nature sounds you may have. You can get some pretty cool atmospheres going on if you do it right. Also try using specific animal sounds to where the player might be at in the game. Like they can only hear certain bird calls within certain woods or something. Or they need to find an insect sound, on a certain Map, in order to have an encounter with that insect to get a certain item, etc. Whatever you want.

 

Panoramas:

------------------

 

And last, but not least... the Panorama for this Map. I specifically left this for last in this Step. With the way the Map is drawn, we couldn't call a Panorama and have it show, so we need to do some restructuring of the Map itself so that there are blank tiles (blank tiles allow the Panorama to show). And here's what we'll do:

 

1) Go to Map Properties (right-click Map Name), and make the Height of the Map 20, instead of 15. Right-click the Map Name again and select Shift Map this time. Move the Map Down 5 tiles. So now there is a blank area at the top of the Map. We now need to create a Horizon so that the Panorama will show behind the Tile Objects (trees, plants, etc).

 

2) Fill in the tiles closest to the finished Map parts, making them blend like before... like so:

 

Layer 1:

small05a.PNG

 

Layer 2:

small05b.PNG

 

Layer 3:

small05c.PNG

 

Event Layer:

small05d.PNG

 

We now have the horizon created, and the panorama will show behind that. I had to use a few Tile Events because I used all the Layers for the grass and plants in those spots.

 

3) Now open up the Init Event and add this command after the Weather Effects:

Change Map Setings: Panorama = '004-CloudySky01', 0

 

You can use whatever panorama you want, but I'm gonna use one of the RTP ones. Just remember that these Panoramas don't Move. You need to install the new Panorama Options script that is available at www.Phylomortis.com in order to modify how they are shown.. thanx to RPG Advocate for hosting that script (not to mention GOOD explanations of how the default Scripts work in RMXP!). I tried using the Mountain Panorama, but you can only see the sky part, and no mountains... in order to fix that, you would need to make the Map taller (changing Height to 25 or up). Hmmm.. we'll try both.

 

4) Cut and Paste the Init Event and all of your other Sounds/Etc Events that run as parallel process and place them in the corner again, since the Map was enlarged and they are now 5 tiles lower than the top. If you placed these Events at a bottom corner of the Map, they should be there already, since we moved the Map down (just make sure you don't erase your Events by moving the Map too far one way, then saving it. .. ugh.. )

 

With the CloudySky Panorama, your Map should now look like this ingame:

 

Cloudy Sky Example:

small05e.PNG

Notice the red arrow.. the Tile Priorities for that tree (on Layer 1) are all 0, so that it will show behind the other Tiles on the higher Layers. You can have the same trees as the others, but you need duplicate Tiles with different Priorities. Looks good though yes? =)

 

Let's alter the Fog EC to use the Mountain Panorama:

 

First, make the Map 5 more Tiles taller (Right-click Map Name/Map Properties/Height = 25). Second, Shift the Map down 5 Tiles (like before). Third, change the Panorama image to 006-Mountains01 (within the Init Event). *note..you can leave the Initializing Events where they are until you've totally completed the Map. Just organizing.. Fourth, change the Tint Screen EC '>Tint Screen: (0,0,0,0), @0' (normal settings because there are no more clouds by changing the panorama).

 

So with all that done, your Map with the mountains should look like this:

 

Mountains Example:

small05f.PNG

 

..not bad... not bad.. You see where the Player sprite is standing? Well he should be Teleporting to the next Map at that very point. But, that's the last thing you need to make, since you still need to populate the Map with some interactive objects..

 

 

--------------------------------------

 

Step 3: Create Interactive Objects & NPCs (Non-moving/Movable/Consumable)

 

--------------------------------------

 

You can always make little creatures running here and there, and wee lil insects and butterflies eveywhere, but those take up cpu power, and I'm just gonna worry about the more important types of Events for now. But it is good to add some originality to your Maps.. creature different things. Make hidden paths and secret Events that unblock other areas for the Player to explore in. Unlimited realms of creation. Who ever heard of a 500x500 tile Map before...? o.O well, I have... people do it.. but do they do it right? It's nice and all to have huge Maps filled with empty space, but why waste the space when you can create with taste.. =/-~ errr....

 

Shop Event (moving):

--------------------

 

First off, create an Event and call it Shop. You can change that later if you'd like. Make the Sprite whatever you want and select these functions:

 

Shop Event 01

 

Second, add in a Message and Choice EC:

 

Shop Event 02

Third, add the Shop EC, with a selection of items to buy (or weapon/armor)

 

Shop Event 03

 

And the Shop Event is done..

 

Sign Post (non-moving):

-------------------

 

First, create an Event on the upper Tile of the signpost, with no sprite and Triggered with the Aciton Key. Second, use a Message EC like so:

 

Sign Post Event Screenshot

 

..and that's that.

 

Visible/Hidden Items (consumable):

----------------------

 

First, create an Event anywhere on the Map and call it Item/Weapon/Armor1 (or 2,3,etc), with a Trigger of 'Hero Touches Event', no options, no movement. The Sprite grapic depends on what type of item/equipment being found (equipment usually go in chests), or if it's invisible (no sprite graphic).

 

Second, place these ECs in the EC List:

Play SE: 'coin07',65,90 (this is just for a healing potion type pickup, use whatever)

Message: You find a Healing Potion..! (or whatever,weapon,armor,gold,etc)

Change Items: [Healing Potion] + 1 (or weapon,armor,gold,etc)

Switch: [0133: HealingPtn1] = ON (just name the switch whatever1,2,3,etc)

Erase Event (to just get it out of the way.. )

---------

Page 2:

---------

Pre-Condition: Switch [0133:HealingPtn1] Is ON (what you just switched ON above)

Options/Movement: none, Trigger: Parallel Process

EC List:

Erase Event (to get it out of the way.. )

--------------

 

boom... there's your hidden or visible item.. If the item is a one time pickup, you can use the Local Switches (A-D) for that Event instead of using one of the Game switches. But if the item is important in the game, and you need to check and see if the Player has found it or not, you must use one of the Game Switches, because you can't check an Event's local switches from another Event or Common Event. Only by using a Call RGSS Script EC. But lets not get into scripting just yet. =/

 

These Interactive objects look something like this:

 

Non-moving/Movable/Consumable Events:

small06.PNG

 

..next! Some blocking Events that the Player must operate in order to get around them (aka Switches/Levers/Buttons)

 

 

--------------------------------------

 

Step 4: Create Events for Game Progression (Switches/Variables/Items)

 

--------------------------------------

 

Okay.. so to make these blocking Events work, we'll use a Blocking Tile Event (or 2 Events, depending on how many tile pieces the object uses) and an Operator Event (that will turn the appropriate Switch ON and make the Blocking Tile Event move out of the way).

 

We will use this object for the Blocking Tile Event:

small07.PNG

 

And the Events should be set up in these locations:

CaveBlockEvent01.PNG

 

First, create an Event and call it CaveBlockingTile . This Event should have no Options, PreConditions, Movement or ECs, but change the Speed to Slower and the Frequency to Lower. Make the Sprite the bottom Tile of the above example.

Second, create another Event just above the first one, call it CaveBlockTop, and have the Option of 'Always On Top', with no Movement,PreConditions or ECs, but change the Speed to Slower and the Frequency to Lower.

 

*Both of these Events will need a second Page that will keep them in their new positions after the Operator Switch is turned ON and the Player exits and enters the Map. If not, they will be in their original positions. That's in a bit..

 

Third, create another Event and call it CaveBlockOperator, with the Option of 'Phasing' and the Trigger of 'Hero Touches Event'. Add these ECs:

 

Cave Block Event Screenshot

A Switch sound effect is heard, then the stone tiles moving, then a message telling you so. Here is the Drag sound effect:

 

drag02.wav

 

Fourth, Add a New Page to the CaveBlockOperator Event with the PreCondition of Switch '0134: Secret Area1' is ON, set as Parallel Process. Add this EC:

 

Erase Event

 

Then add second Pages to both the CaveBlockingTile Event and the CaveBlockTop Event, with the PreCondition of Switch '0134: Secret Area1' is ON, set as Parallel Process, and add these ECs to each second Page:

Change Event Location: This Event, (012,021 for the bottom Event and 012,020 for the top), with Retain Facing Direction on both. (*note* this is with the Map Height set at 25 Tiles and using the Mountain Panorama).

End Event Processing

---------

 

Test it.. that's one way of getting the Player to interact with the Map. The more intricate you make the pieces to the puzzle, the funner the game can be. You can make Events that use Variables to keep track of the Player interacting with the Event, plus make it so the Player must possess a certain Item/Weapon/Armor in order to activate the Event (with use of the Conditional Branch EC). Now let's finish up this Map and add the Teleports to other Maps you've done.

 

--------------------------------------

 

Step 5: Create Teleports (To other Maps/To another Map, then Back)

 

--------------------------------------

 

SO, usually you'll create a Teleport Event for the exit you just came from (since this is the only Map I've done with you folks, we'll say the Player came from the left)..

Example:

Small08a.PNG

 

..therefor create an Event and call it anything you'd like (West Exit maybe), with no PreConditions,GFX,Options, or Movement, and the Trigger of 'Hero Touches Event'. Add a Teleport EC in the Event Commands window and select which Map and coordinate to Teleport to. You can also set what direction to be facing, or retain facing, and if the Maps should Fade (blend together) or switch instantly. And that's your basic Teleport Event. You can just copy and paste that Event onto the other Teleport locations for the Map, and just change the Location Coordinates for each.

 

Here's Each Location:

 

West Exit:

Small08b.PNG

 

North Exit:

Small08c.PNG

 

Tree Entrance: Notice the extra root tiles I added to cover half of the hole?

Small08d.PNG

Also with this big tree object, the Player needs to be able and walk next to the Event that has the Teleport EC within it. So the Tile below the left part of the hole must be walkable (where the main roots of the tree are)

 

Cave Entrance:

Small08e.PNG

--------------------------------------

 

Ingame Screenies:

 

InGame01.PNG

 

InGame02.PNG

--------------------------------------

 

 

And there you have Lesson 2 complete!!

Share this post


Link to post
Share on other sites

With hundreds of views but 0 replies, I felt obliged to say that this tutorial was fantastic and I thank you for the help!

 

However, I do wish that you had made a lesson 3, as your tutorials are so informative and I've learned quite a bit.

~Joe

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...