- Joined
- Oct 12, 2016
- Messages
- 769
There's something I have not seen on Hive as of yet: the use of terrain-based environmental effects.
What do I mean? Well, I'm glad you asked!
You know how in certain MOBA-styled games you can hide in bushes? Ever wonder why the lava in some maps doesn't burn your units? Well, I want to make these types of things a reality with this idea thread, and introduce some design considerations for map makers!
First, this is not a terraining guide by any means. If anything, this is just a list of compiled ideas to add depth and strategic value to you terrain. I am assuming you know how to make a decent looking map, with or without Blizzard cliffs.
Some supporting tutorials related to this:
Speaking of cliffs, idea #1:
It's over Anakin, I've got the high ground!
One of the biggest problems for map makers: to Blizzard cliffs or not to Blizzard cliffs?
That is the question.
With Blizz cliffs, you get that juicy height missile defense (25% chance to miss) and line of sight advantages... but, they look fugly as uck. Naturally, any map maker worth their salt would resort to using the raised tool with doodads and pathing blockers. But, you still would like that height advantage, right?
ENTER STAGE RIGHT: the ramp tool.
Seriously! That's all this'll take. Now, I found 2 ways to go about this:
1) Make your raised terrain, mountains, rivers, valleys, etc. then pave over the raised strategic bits with square* blocks of +1 cliff terrain;** and finally use the ramp tool to circumvent the block of raised terrain with a ramp.
2) Plot out the raised bits first, still being square-ish*, mark the end points with some kind of doodad or tile, then again circumvent the whole thing with a ramp.
As long as you don't have Apply Texture selected, it will keep the tiles as you make the ramps and vantage points. Also note, for this to work properly, disable Advanced -> Enforce Water Height Limits**.
*Square is relative. You can get away with some diagonal terrain. Make sure the terrain is pathable after making the ramps, and liberally use the undo button when needed.
**I am assuming you make your terrain starting with shallow water and raising it for a rolling shores effect. ALWAYS back up your map when disabling Enforce Water Height Limits in case something goes horribly wrong.
With cliffs, inevitably comes the rushing tides. and so idea #2:
Water, water, everywhere... but why can I still sprint?
To be fair, this would not be for melee maps where balance is an issue. Or, could it? These ideas may make for an interesting altered melee where tactics should be considered when playing specific terrains!
But I digress. Ever wonder how a lumbering knight was able to gallop at top speed through the shallows? Highly unrealistic, right? I want as much realism as possible in my fantasy video games! So, how do we slow down movement speed in water? Here are some suggestions:
1) Invisible dummy units with negative movement auras.
Now, I don't recommend this if you have items or abilities that use said auras. ALTHOUGH, since the faster movement speed aura would cancel out the negative movement speed aura, this would make for some interesting units or heroes that simply ignore water movement penalties. These dummy units won't require any triggers, and could simply use no model or the "Invisible Platform" doodad.
For convenience, I have found that an aura's area of roughly 200 to 175 covers 1 square of the largest grid in the world editor.
2) Regions with dummy casters. This method will require many regions, a pre-defined dummy caster unit placed on the map, a dummy spell to continuously cast a "slow" effect on units entering these regions, a unit group to store units entering these regions, and a periodic time event loop to check if these units are in said regions with a slow buff.
This means you don't have to worry about aura conflicts, but comes at the cost of game performance.
If you don't want boats, mechanical units, and (logically) air units to be affected, then simply filter them out in both techniques with target types.
What's the opposite of water? Fire! #3:
Do you smell barbecue?
This is just one of those things I refer to as "the details." If a unit stands on a fire pit, will it burn? If it stands on lava, will it melt? Logic dictates: YES in fiction or non-fiction. The simplest and best approach to do this? Dummy units with Permanent Immolation.
In fact, you got a fire pit? Change that house warming gift into the "Trashed Firepit," give it a walkable pathing in the object data (like, Circle of Power), make a dummy use that doodad which looks like the Cinematic fire, give it Permanent Immolation (the red kind) and simply place it on top of the fire pit.
Now, you can expect your grunts to be roasting their gonads every time they step over the thing!
Lava? Same idea, but make it realistic. You can always make a custom Permanent Immolation ability, change the effects, and make it do more damage more frequently or something. Use Lava Cracks, Fire, or the Invisible Platform as a model.
And again, no triggering required.
What does fire burn? Bushes! #4:
You can't see me!
So, on to that first thing mentioned in the thread about non-descript general MOBA games. This can be more... complicated. Therefore, allow me to give a demonstration!
I've tested this with casting a dummy Invisibility ability on units entering a region and... it doesn't really work. This tends to make the units just flicker between visible and invisible regardless of the duration.
I found the best way to do this is by adding Permenant Invisibility to units that are hiding.
Now, this can be applied in many ways:
Here are some sample triggers that I use to hide units in bushes:
Take note: for each hiding location, there are 2 regions. In this example, region "Bushes 1b" is bigger than and covers region "Bushes 1." This example also prevents moving or attacking units from remaining invisible in hiding spots.
This is all I've got for now, and I can provide some screenshots or something later (maybe... ).
Feel free to add your own ideas for environmental effects below!
What do I mean? Well, I'm glad you asked!
You know how in certain MOBA-styled games you can hide in bushes? Ever wonder why the lava in some maps doesn't burn your units? Well, I want to make these types of things a reality with this idea thread, and introduce some design considerations for map makers!
First, this is not a terraining guide by any means. If anything, this is just a list of compiled ideas to add depth and strategic value to you terrain. I am assuming you know how to make a decent looking map, with or without Blizzard cliffs.
Some supporting tutorials related to this:
Speaking of cliffs, idea #1:
It's over Anakin, I've got the high ground!
One of the biggest problems for map makers: to Blizzard cliffs or not to Blizzard cliffs?
That is the question.
With Blizz cliffs, you get that juicy height missile defense (25% chance to miss) and line of sight advantages... but, they look fugly as uck. Naturally, any map maker worth their salt would resort to using the raised tool with doodads and pathing blockers. But, you still would like that height advantage, right?
ENTER STAGE RIGHT: the ramp tool.
Seriously! That's all this'll take. Now, I found 2 ways to go about this:
1) Make your raised terrain, mountains, rivers, valleys, etc. then pave over the raised strategic bits with square* blocks of +1 cliff terrain;** and finally use the ramp tool to circumvent the block of raised terrain with a ramp.
2) Plot out the raised bits first, still being square-ish*, mark the end points with some kind of doodad or tile, then again circumvent the whole thing with a ramp.
As long as you don't have Apply Texture selected, it will keep the tiles as you make the ramps and vantage points. Also note, for this to work properly, disable Advanced -> Enforce Water Height Limits**.
*Square is relative. You can get away with some diagonal terrain. Make sure the terrain is pathable after making the ramps, and liberally use the undo button when needed.
**I am assuming you make your terrain starting with shallow water and raising it for a rolling shores effect. ALWAYS back up your map when disabling Enforce Water Height Limits in case something goes horribly wrong.
With cliffs, inevitably comes the rushing tides. and so idea #2:
Water, water, everywhere... but why can I still sprint?
To be fair, this would not be for melee maps where balance is an issue. Or, could it? These ideas may make for an interesting altered melee where tactics should be considered when playing specific terrains!
But I digress. Ever wonder how a lumbering knight was able to gallop at top speed through the shallows? Highly unrealistic, right? I want as much realism as possible in my fantasy video games! So, how do we slow down movement speed in water? Here are some suggestions:
1) Invisible dummy units with negative movement auras.
Now, I don't recommend this if you have items or abilities that use said auras. ALTHOUGH, since the faster movement speed aura would cancel out the negative movement speed aura, this would make for some interesting units or heroes that simply ignore water movement penalties. These dummy units won't require any triggers, and could simply use no model or the "Invisible Platform" doodad.
For convenience, I have found that an aura's area of roughly 200 to 175 covers 1 square of the largest grid in the world editor.
2) Regions with dummy casters. This method will require many regions, a pre-defined dummy caster unit placed on the map, a dummy spell to continuously cast a "slow" effect on units entering these regions, a unit group to store units entering these regions, and a periodic time event loop to check if these units are in said regions with a slow buff.
This means you don't have to worry about aura conflicts, but comes at the cost of game performance.
If you don't want boats, mechanical units, and (logically) air units to be affected, then simply filter them out in both techniques with target types.
What's the opposite of water? Fire! #3:
Do you smell barbecue?
This is just one of those things I refer to as "the details." If a unit stands on a fire pit, will it burn? If it stands on lava, will it melt? Logic dictates: YES in fiction or non-fiction. The simplest and best approach to do this? Dummy units with Permanent Immolation.
In fact, you got a fire pit? Change that house warming gift into the "Trashed Firepit," give it a walkable pathing in the object data (like, Circle of Power), make a dummy use that doodad which looks like the Cinematic fire, give it Permanent Immolation (the red kind) and simply place it on top of the fire pit.
Now, you can expect your grunts to be roasting their gonads every time they step over the thing!
Lava? Same idea, but make it realistic. You can always make a custom Permanent Immolation ability, change the effects, and make it do more damage more frequently or something. Use Lava Cracks, Fire, or the Invisible Platform as a model.
And again, no triggering required.
What does fire burn? Bushes! #4:
You can't see me!
So, on to that first thing mentioned in the thread about non-descript general MOBA games. This can be more... complicated. Therefore, allow me to give a demonstration!
I've tested this with casting a dummy Invisibility ability on units entering a region and... it doesn't really work. This tends to make the units just flicker between visible and invisible regardless of the duration.
I found the best way to do this is by adding Permenant Invisibility to units that are hiding.
Now, this can be applied in many ways:
- Do you want the unit to be invisible while moving, or no?
- Do you want the unit to be invisible while attacking, or not?
Here are some sample triggers that I use to hide units in bushes:
-
Detect Hidden
-
Events
- Unit - A unit enters Bushes 1 <gen>
- Unit - A unit enters Bushes 2 <gen>
- Unit - A unit enters Bushes 3 <gen>
-
Conditions
- ((Triggering unit) is A ground unit) Equal to True
- ((Triggering unit) is A structure) Equal to False
-
Actions
- -------- Adds each unit of type specified in the conditions to the HiddenGroup, then turns on the periodic timer. Add sub-regions for hiding in the events --------
- Unit Group - Add (Triggering unit) to HiddenGroup
- Trigger - Turn on Hidden Loop <gen>
-
Events
-
Hidden Loop
-
Events
- Time - Every 0.50 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in HiddenGroup and do (Actions)
-
Loop - Actions
- -------- Checks if units in HiddenGroup are in the bushes or dead. Removes from group if not. Add sub-regions for hiding here --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- ((Picked unit) is dead) Equal to True
-
And - All (Conditions) are true
-
Conditions
- (Bushes 1b <gen> contains (Picked unit)) Equal to False
- (Bushes 2b <gen> contains (Picked unit)) Equal to False
- (Bushes 3b <gen> contains (Picked unit)) Equal to False
-
Conditions
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
- Unit Group - Remove (Picked unit) from HiddenGroup
- Unit - Remove Hiding (Dummy) from (Picked unit)
-
Else - Actions
- -------- Checks the current order of each "Hidden" unit. Does nothing if moving or attacking --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- (Current order of (Picked unit)) Equal to (Order(move))
- (Current order of (Picked unit)) Equal to (Order(smart))
- (Current order of (Picked unit)) Equal to (Order(attack))
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
- Unit - Remove Hiding (Dummy) from (Picked unit)
-
Else - Actions
- -------- Makes the Picked Unit invisible --------
- Unit - Add Hiding (Dummy) to (Picked unit)
-
If - Conditions
-
If - Conditions
-
Loop - Actions
- -------- Turn off timer if nothing's hiding to reduce possible lag --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in HiddenGroup) Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
-
Unit Group - Pick every unit in HiddenGroup and do (Actions)
-
Events
This is all I've got for now, and I can provide some screenshots or something later (maybe... ).
Feel free to add your own ideas for environmental effects below!
Last edited: