Guide - Mazes

Jindo

Self
Reaction score
460
Introduction

Some people today want to start working on a maze, when they do they either dont know where to begin, know oughly what to do or got it all ready to work on.

If you are new to map/maze making then read this first section.

1. How a maze map works

A maze map is a map with a base tile and then a single-line path which you must stick to, if you do not, your character dies. Also, patrols and catapults will get in your way to make it harder.

For basic beginners, you must first master the idea of a maze so to start, create a ne map either 32x32 or 64x64, select a tileset that you like and pick a base tile, it must not be a tile which can go in a diagnal path like grass because that is a good path, not base tile. Pick something like dirt or grassy dirt or sand and now you're ready to start.

2. Beginning the maze

Once you've got the map ready, use a diagnal-like tile eg: grass, thick grass etc.

Use it and develop a maze with it.

Here a links to show what a good maze path looks like and what a bad maze path looks like:

A Bad Maze Path

This maze is WAY too small and could be done in 5 seconds, the path doesn't go diagonally and grass is an unusual base tile for a maze.

A Good Maze Path

Good maze paths are recommended, windy, long and filled with lots of good places to put creeps in for a challenge.

3. Placing the Regions

Regions are used for killing a hero when they fall off the path, giving a target for creeps to patrol to and hacing teleports and catapults attacking (see intermediate section).

When placing regions, it is important to save yourself the hastle and use as little amount of regions as possible, it is quicker to do.

Here are examples of a maze portion with lots of regions and a few regions (for the 'if you walk off path you die' thing):

So many regions not needed

You do not need so many regions, try to make regions go in a straight line across the base floor like this:

Only a few regions here and it will still work :D!

Only a few regions for that.

4. The Creeps

It is important for creeps to be able to move about, they must be invunerable and not be able to attack (change this in the object editor).

Xs marked in the screenshot is where the creep starts, red is for patrol and blue is for ones that start somewhere, run down the path and die somewhere, yellow shows the path through the maze and green shows the creeps' patrol path, start is start and exit is exit:

Maze Fully marked up

---

Wandering Creeps: To make the creeps move at random, give them the Wander ability in the Object Editor, disable their attack anyway and if you dont want them to leave a section of the maze then create a region around the entire section where they are and do this trigger:

Code:
Events - a unit LEAVES (REGION)
Conditions - ((UNIT-TYPE) of (TRIGGERING UNIT)) equal to (CREEP TYPE)
Actions - Order (TRIGGERING UNIT) to MOVE TO (RANDOM POINT IN (REGION))

---

5. Triggers for Patrols and Death Regions

To make a unit patrol the code is here:

Code:
Events - Map Initialization
Conditions - none
Actions - Order (UNIT) to PATROL TO (CENTER OF (REGION))

keep repeating the action in the same trigger and change it to all the other units and their patrol to parts so that they all patrol.

---

To make a region so that it kills a hero when they step on it, use this code:

Code:
Events - A unit enters (REGION) -- copy this event for ALL the regions that kill the hero player(s)
Conditions - ((UNIT-TYPE) of (TRIGGERING UNIT)) equal to (HERO UNIT)
Actions - Kill (TRIGGERING UNIT)

---

To reveal the whole map, making it visible (reduces lagg in some cases) do this:

Code:
Events - Map Initialization
Conditions - none
Actions - Pick every player in (ALL PLAYERS) and do (Create visibility modifier emitting visibility across (PLAYABLE MAP AREA))

---

Collision Killing Trigger:

To make a trigger which kills a hero within collision of a creep do this:

Code:
Events - A unit comes within (45-80) of (HERO UNIT (PLAYER 1s)
Conditions -none
Actions - Kill (TRIGGERING UNIT)

you must now repeat that trigger and change the hero unit to all the hero units eg. Player 1,2,3,4,5,6,7,8 and 9s hero are a demon hunter, you must pick all different demon hunters for the events.

Example:

Code:
Events - A unit comes within (45-80) of (HERO UNIT (NOW PLAYER 2s))
Conditions -none
Actions - Kill (TRIGGERING UNIT)

and then player 3s and so on :D!

You can alternatively give the creeps permanent immolation and change the damage done to something like 1000000, that will make them kill the hero on collision!

---

Intermediate Ideas:

Lives

You can always make it so that whenever everyone dies, you lose a life and when you lose all your lives, the game ends.

Patrolling to more than one area

Commonly none as a creep 'looping' in a cycle instead of going back and forth in one place. All i can say right now is that it requires more than one trigger:

START MOVING:

Code:
Events - Map Initialization
Conditions - none
Actions - Order (CREEP UNIT) to MOVE TO (CENTER OF (REGION001))

MOVE TO SECOND REGION:

Code:
Events - A unit enters (REGION001)
Conditions - ((UNIT-TYPE) of (TRIGGERING UNIT)) equal to (CREEP UNIT)
Actions - Order (TRIGGERING UNIT) to MOVE TO (CENTER OF (REGION002))

MOVE TO LAST REGION:

Code:
Events - A unit enters (REGION002)
Conditions - ((UNIT-TYPE) of (TRIGGERING UNIT)) equal to (CREEP UNIT)
Actions - Order (TRIGGERING UNIT) to MOVE TO (CENTER OF (REGION003))

MOVE BACK TO FIRST REGION:

Code:
Events - A unit enters (REGION003)
Conditions - ((UNIT-TYPE) of (TRIGGERING UNIT)) equal to (CREEP UNIT)
Actions - Order (TRIGGERING UNIT) to MOVE TO (CENTER OF (REGION001))

---

Teleports

Some people have teleports in their maps to make the maze harder to tell where you go to so that you cant cheat using the WE and things like that.

to do one, do this:

Code:
Events - a unit enters (REGION)
Conditions - ((UNIT-TYPE) of (TRIGGERING UNIT)) equal to (HERO UNIT)
Actions - move (TRIGGERING UNIT) instantly to (CENTER OF (OTHER REGION))

you can of course add a special effct action before that action to make it look more like a teleport.

---

Catapult Trigger:

The trigger to make a catapult attack a small area constantly goes like so:

Code:
Events - Every (TIME (3.00 is best)) seconds of game time.
Conditions - none
Actions - Order (CATAPULT CREEP) to ATTACK GROUND to (CENTER OF (REGION))

repeat that last action for any other catapults in that area, do a new trigger if you want to make them attack quicker or after a while. Be sure to change their damage if you want them to kill anyone first go who sztands in theway of them when they're firing. To make them attack rapidly across a path, set their cooldown as low as you can and change the time in the event to:

Code:
Every 5.00 seconds of game time

And change the actions to this:

Code:
 Order (CATAPULT) to ATTACK GROUND to (CENTER OF (REGION))
 Wait 0.30 seconds
 Order (SAME CATAPULT) to ATTACK GROUND (CENTER OF (REGION NEXT TO THE FIRST ONE))

keep repeating the first 2 actions until all the wait actions add up to 5 seconds, then it will repeat all over again in a loop :D!

---

Advanced Ideas:

Terrain Change:

You can do things to make the terrain change and add a death region there which activates ONLY when the hero enters it AND it looks like the base tile.

Using Fade Filters for Confusion

You can make a fade filter with a transparent gap to see the player and make a trigger to fix the camera to the player to make it look like a DARK cave and harder to see, or you could grant no invisibility and instead give the heroes lesser radius so that they see less.

Moving Mazes

The walls are units and they patrol and you must still keep to the path without touching the units, it is useful for traps and such

Traps

Thigns like units come from no where and trap you, an item gets stuck, you must hit switches to get past stuff etc. it is very useful to make your maze more fun :D!

Boss Levels

if you have levels in your maze then this idea is a good choice, have a boss which moves about and you have to do something in the level which makes it lose health, when it dies a gate opens so that you can escape to the next level. I recommend this after every 2 levels so at level 3,6,9,12 etc.

Another way of patrolling:

As said by xphere, you have two regions (checkpoint[1] and checkpoint[2]) and 3 units, if one moves to checkpoint[1] then a trigger removes them from checkpoint[1] and adds them to checkpoint[2].

Then they go to checkpoint[2], they are removed from checkpoint[2] and added to checkpoint[1] so they keep running back and forth constantly.

Patrolling through 3 regions without going in a triangular loop:

As explained by AceHart:

You have 3 regions and you want a unit to patrol region1, then 2, then 3, then 2, then 1 constantly, do it like this:

Code:
Events - a (UNIT) enters (REGION1)
Conditions - none
Actions:
- set custom value of (ENTERING UNIT to 1
- order (UNIT) to ATTACK-MOVE to (REGION2)

Code:
Events - a (UNIT) enters (REGION3)
Conditions - none
Actions:
- set custom value of (ENTERING UNIT) to 3
- order (UNIT) to ATTACK-MOVE to (REGION2)[/CODE}

[CODE]Events - a (UNIT) enters (REGION2)
Conditions - none
Actions:
- set custom value of (ENTERING UNIT) to 2
- IF custom value = 1 THEN order (UNIT) to ATTACK-MOVE to (REGION3) ELSE order (UNIT) to ATTACK-MOVE to (REGION3)

Thanks to xphere and acehart for the advanced advice ;)!

---

Types of Mazes and a Tip:

Normal Mazes:

a maze like the one you worked on above is a nromal maze with a 1 square path with only a start, exit and some creeps.

These are very basic and easy to do.

Mini-Mazes:

a maze only with levels and lots of different variations of strategies that must be done. There are invisible levels, path changeing levels and so on, let your imagination run wild if you choose this kind.

Escape Mazes:

Similar to a normal maze except not many base grounds which kill you, mostly dodging and killing involved in these kind of maps. In this the path can be as long or small as you want, include many teleports and all that stuff.

TIP! if you are a beginner, small mazes tend to be he best start, but if you are good at making mazes whether average or expert, the maze maps must be big to include more stuff and make it more challenging.

---

Ideas: Here are some useful ideas to use in your maze maps!

Labyrinths: Mazes which change around making it harder to reach the exit.

Elevators: Elevators which raise and lower to cliff heights making the level 100% random :D! See the elevator tutorial for more information on this subject.

Invisible: an invisible maze (use units for the walls) and you need an item like sentry wards or gem of true seeing to find your way through, you lose those items at the end of the level.

Leveled: a maze with teleports which take you to random levels instad of checkpoints whichkeep continuing with no levels but one who maze.

---

A Trigger to kill units off the path without using regions :D!

contributed by Im_On_56k and Axe.killer

Code:
Code:
Walk off path
    Events
        Time - Every 0.05 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in (Units of type Civilian) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Terrain type at (Position of (Picked unit))) Equal to Ashenvale - Grassy Dirt
                    Then - Actions
                        Unit - Kill (Picked Unit)
                    Else - Actions
        Custom script: call DestroyGroup(GetLastCreatedGroup())

---

Tips for all:

TIP: when running low on ideas for your maze, think of these words: sandy, mountainous, dripping, inky, grassy, plastic, beastly, monstrosoty, future, helmet head, cheesy, cheddar, lust, hover. They will help to produce ideas like stepping stones that move.

TIP: Another way of getting inspiration is drawing and sketching monsters of random sorts on paper, also sketch scenery, this will help gain ideas for the scene and layout of your maze and improve your maze's scene and quality.

TIP: Not all heroes have to be the same in a multiplayer maze. If you ever played Prison Escape III you'll see some people change because of what they do in game. They get better abilities and speed and strength and makes the game better for them, try that like hiding a mushroom item which changes the hero within range.

TIP: Mazes dont have to be flat, Prison Escape is a great example of an escape maze with different heights, it adds depth and more room to play.

Koga73's Quick Death Region Writer:

on www.wc3sear.ch download the the above tool and on your maze follow these steps:

1. make ALL the death regions on the maze FIRST before ANY OTHER regions.
2. open the tool and type in the 1st number region (1) and the last number region (e.g 412).
3. fill in the other stuff and when your ready click apply/ok/done.etc. and now the death region trigger is all done for you :D!

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

That's it for now, tutorial took me all day because of the screenshots, hope this is useful to anyone currently making a maze! :D

Contact me in anyway if you need help with your maze :).

~Jindo
 
F

FalconWest

Guest
Good info, Jindo :D
I learned a bit more about triggering from that :)
 
N

NRinpun

Guest
Good work, but you should either mention that to fix little diagonal issues you can make the path more "crisp". In your grass path I would rather make a square of grass at the corner and that way the path is more distinct without fear of running off the edge.

...And mazes would be better off two-square pathway. If it's one square, it's too easy to mess up and fall off the edge. Make it two square and you actually have a chance when running frantically from something.
 

Jindo

Self
Reaction score
460
If you play lots of mazes, you see that alot of them are 1 square paths to make it challenging, and if you make the regions fair enough, you can run frantically on the 1 square paths.

The only thing i would say about diagnal ground is to leave quite a big gap in regions other wise you'll find your hero dies when getting to a diagnal part.

I've added some more at the bottom of the tutorial now.

~Jindo
 

Myzteryz

It only does everything.
Reaction score
90
very nice but I don't like using those puffy tileset for mazes becuz it gets very confusing if the path is big enough
You should also add how you can make a unit die if it gets steped over by a creep obstacle.
 

Myzteryz

It only does everything.
Reaction score
90
uhmm you should start editin your first post so it doesn't get confusing to new guys
 

TFlan

I could change this in my User CP.
Reaction score
64
heres a tip i suggest.

When you want to make a maze not whats above but a real MAZE do this.

1) Get some graph paper and a pencil.

2) Create your start area in a random corner and put your end area in the oppistie corner

3) in the middle do a nazi sign with a space in the middle (no im not a nazi) and have it wrap it self around it self. (This will be where the player either goes in circles or wins)

4) have all of them split into two paths each and make them strech to the farthest ends of the paper and add in some more weird maze corners and stuff to confuse them and make it so that they go in circles, but have one of them lead to the end, but in the middle of that path do the same thing.

5) Keep doing that and fill in the blanks on the paper untill it is a complete maze. Now you have your maze. Just take about an hour of your time to copy that onto WE or w/e you have.

6) Put in the triggers, maybe adding abilitys and creeps or side quests to make the player get off corse or w/e.

Have fun
 

xPheRe

New Member
Reaction score
43
Nice tut, Jindo! Maze map is one of my favourites, even multiplayer ones.
This can be of help to bring a new wave of maze maps. :)
 

TFlan

I could change this in my User CP.
Reaction score
64
You could just give the creeps the wander ability. Would cut back on triggers and would be totally random.
 

Jindo

Self
Reaction score
460
Good point lol, i forgot that, wander makes them move about to completely random areas, like Run Kitty Run if any one has played it.

DONT put the nazi sign in your maze, even if you aren't a nazi, it is kind of illegal to draw that symbol lol. You can if you want though, not many people on bnet know that :p.

Adding the Wander thing to the tut, under the part about moving creeps.

Thanks for the comments all :D!

~Jindo
 

Wark

Animal
Reaction score
27
Yay Jindo! I'm starting my own maze and thanks for the tips! You should submit it to the tutorials! Goood Job.
 

Im_On_56k

Hm...
Reaction score
116
Events - A unit comes within (45-80) of (HERO UNIT (PLAYER 1s)
Conditions -none
Actions - Kill (TRIGGERING UNIT)
If i understand you completely, your saying if a unit comes within aprox 60 range of player1's hero, it will kill the triggering unit.
That would kill the creep not the hero.

Heres what I would use.
Code:
Ghoul
    Events
        Time - Every 0.10 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in (Units of type Ghoul) and do (Actions)
            Loop - Actions
                Set var1 = (Picked unit)
                Custom script: call DestroyGroup(GetLastCreatedGroup())
                Unit Group - Pick every unit in (Units within 80.00 of (Position of var1) matching ((Unit-type of (Matching unit)) Equal to Civilian)) and do (Actions)
                    Loop - Actions
                        Set var2 = (Picked unit)
                        Unit - Kill (var2)                       
                        Custom script: call DestroyGroup(GetLastCreatedGroup())
You would have to do that for every creep you want to die when you run into it.
Thats so you can have units that don't kill you if you run into them.

And if you were to use that way, you won't beable to put many unique levels in your maze map.
Since all it would be is running through a maze and dodgeing creeps.

Here is an example of a pretty cool idea, I think.
Example1
Code:
Trig1
    Events
        Unit - A unit comes within 100.00 of Shooter 0039 <gen>
    Conditions
    Actions
        Trigger - Turn off (This trigger)
        Game - Display to (All players) for 35.00 seconds the text: (|cffFF0000 + ((Name of (Owner of (Triggering unit))) +  enter the distance you want to be shooted.|r))
        Set Shooter = (Owner of (Triggering unit))
        Unit - Hide (Triggering unit)
        Trigger - Turn on Shoot Distance <gen>
Code:
Trig2
    Events
        Player - Player 1 (Red) types a chat message containing <Empty String> as A substring
        Player - Player 2 (Blue) types a chat message containing <Empty String> as A substring
        Player - Player 3 (Teal) types a chat message containing <Empty String> as A substring
        Player - Player 4 (Purple) types a chat message containing <Empty String> as A substring
        Player - Player 5 (Yellow) types a chat message containing <Empty String> as A substring
        Player - Player 6 (Orange) types a chat message containing <Empty String> as A substring
        Player - Player 7 (Green) types a chat message containing <Empty String> as A substring
        Player - Player 8 (Pink) types a chat message containing <Empty String> as A substring
        Player - Player 9 (Gray) types a chat message containing <Empty String> as A substring
        Player - Player 10 (Light Blue) types a chat message containing <Empty String> as A substring
    Conditions
        (Triggering player) Equal to Shooter
    Actions
        Trigger - Turn off (This trigger)
        Set ShootDistance = (Integer((Entered chat string)))
        Game - Display to (All players) for 30.00 seconds the text: (|cffFF0000Shooting for distance  + ((String(ShootDistance)) + |r))
        Unit - Order Shooter 0039 <gen> to Attack Ground ((Position of Shooter 0039 <gen>) offset by (Real(ShootDistance)) towards 180.00 degrees)
        Wait 2.50 game-time seconds
        Unit - Order Shooter 0039 <gen> to Stop
        Unit - Move Civilian[(Player number of (Triggering player))] instantly to ((Position of Shooter 0039 <gen>) offset by (Real((Entered chat string))) towards 180.00 degrees)
        Unit - Unhide Civilian[(Player number of (Triggering player))]
        Trigger - Turn on Start Shoot <gen>
In the example1 picture, this is the unit that would shoot the unit, so they have to enter a acurate range, so they don't get shot on the pink tiles.

Make sure trig2 is turned off at start.
This trigger has a unit array, if you were to use this make a unit array, and set each unit as the array
So player 1's unit would be
Unit[1]
Player 2's unit would be
Unit[2]
ETC

Other unique ways, other then jus dodging creeps would be "pushers" for example. You would have a slim area, not 1 square wide, and have siege tanks for example go down it. But instead of it killing you if you touched it. it would push you a bit back. Long story short, it would be meant to push you off the path so you die.

And why make a bunch of regions so kill the hero if he walks off the path, a simple trigger will stop that.
dont enter
Code:
Walk off path
    Events
        Time - Every 0.05 seconds of game time
    Conditions
    Actions
        Unit Group - Pick every unit in (Units of type Civilian) and do (Actions)
            Loop - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Terrain type at (Position of (Picked unit))) Equal to Ashenvale - Grassy Dirt
                    Then - Actions
                        Unit - Kill (Picked Unit)
                    Else - Actions
        Custom script: call DestroyGroup(GetLastCreatedGroup())
 

Myzteryz

It only does everything.
Reaction score
90
did you get that from playing escape shroom world? thats exactly what they have.
the push idea is good, ill use it toward the middle lvls with small gates instead of walls...
 

Wark

Animal
Reaction score
27
is the custom scriipt to destroy the group suppsoed to be "set bj_wantDestroyGroup=true" or "call DestroyGroup(GetLastCreatedGroup())" cuz 2 different people are telling me different things.
 

TFlan

I could change this in my User CP.
Reaction score
64
err you could just do this:

Events
A unit comes within (45-80) of (unit_player1)
Conditions
(Player w/e creep player is) is equal to (Owner of (Triggering Unit)
Actions
Kill (unit_player1)
 

Jindo

Self
Reaction score
460
@Im_On_56k: yes, the trigger does exactly what you think it does.

It is alot easier to do it my method if you are a beginner, it not even my method lol.

Techinally its tylerbelans method, for those who dont know him he is the creator of maze of skill (15 mazes! 3-5 others).

I would submit this into the tutorials if there was an easy way for me to do it.

Plus there's always something i want to add to it, but im sure there's only 1-2 things missing that ill find out about in a few minutes.

Thanks for comments all! I may submit it to tutorials, i just pray that if i do, it is accepted :eek:!

~Jindo
 

Jindo

Self
Reaction score
460
Probably would, im new to doing mazes on tft and on roc we couldnt edit abilities so that is what we used instead was a trigger.

I suppose you could edit permanent immolation's damage.

I think ill add that ;)

~Jindo
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top