Tutorial Making a fun and worthwile Tower Defense!

T

Tubba

Guest
I've played a lot of tower defenses in my days. Very few of them were actually fun to play. I feel that it's way too common with incredibly lame towers defenses with "Arrow tower level 1" and "Cannon tower level 8" or "Ice tower level 6". It's all been done before. With this tutorial, I want to show how to create a varied, fun and at least somewhat unique tower defense. How to make towers different, give suiting projectiles, ideas for fun abilities, good skills and fields to manipulate, and much more!</dramatic introduction that makes me sound like I'm 80 years older than I am>

Note that a lot of things in this tutorial, heck, you could say that pretty much everything in this tutorial are opinions. If you want me to elaborate on something, feel free to ask, but don't say "hey ur worn on that my frend maed a guud towar defanc witout tad"

This tutorial assumes you have some basic trigger knowledge. It won't be push button receev td.


#1: What is a tower defense?

1.1: Terminology List
1.2: Playing a tower defense
1.3: Different types of Tower Defenses

1.1: Terminology list


This is a collection of abbreviations and terms often used in tower defenses.

Creeps - AKA "Runners". What you're supposed to kill. Usually, these try to run to a spot. If they get there, you lose a life.

Lives - An integer, usually around 30. You typically lose one when a creep reaches a designated spot. When they reach 0, you're defeated.

Splash - AKA "Area of Effect". Splash is when towers or abilities damage an area. The closer enemies are to the attacked spot or enemy, the more damage they take.

Leaks - Creeps who escaped through a player or even to the designated "spot".

Wood - Lumber. Often has some sort of unique role, like teching or getting a new, ultimate tower.

Races - In many TD:s, you pick a "race", which has it's own unique towers. In many TD:s, you use a "Race picker" to build a building costing one wood, which then trains another builder, which builds the actual, attacking towers.

Spawn - The point where creeps are created. From there on, they rush to the designated spot, often through checkpoints.

TD - Short for Tower Defense.

Maze - A maze of towers for creeps to run through. See "Different types of Tower Defenses" for more info.

Mazing - Building your maze.

Mazinger - http://en.wikipedia.org/wiki/Mazinger_Z. I'll probably end up typing "Mazinger" instead of "Mazing" at least at some point.

1.2: Playing a Tower Defense


A tower defense usually starts off fairly quickly. You're given a builder, and when all the settings (If such are present) are set, a countdown starts. The countdown is usually between 30 and 90 seconds long, depending on the TD. You're given a builder, or a unit which allows you to create a builder of your choice. You're given an amount of gold, often around 30-50. You can then usually build about 1-3 different towers. In many TD:s, you can often start out building either an "Guard Tower" or a "Cannon Tower" (Both similar to their Melee game equivalents), which can then be upgraded a bajillion times. Personally, I hate this idea. It's been done WAY too many times, and was fun maybe the first ten times. What I hate even more is when tower defenses try to simulate originality by making amazingly unique towers like "Anti-hero tower" or "Anti-air tower". Don't do that. It's lame.

Anyway, back on topic. After the designated time, enemies start pouring in. Either in a group or one by one, your towers have to kill them. Simple, yet very fun. Once they are dead, another countdown usually starts, often around 10-15 seconds. Here, you are mostly given some funds to help. You then build a few more towers, expand your maze (I'll get onto this later), and so on. Some TD:s are very easy, others are nailbitingly hard. You probably want to find the sweet spot inbetween...

1.3: Different types of Tower Defenses

You could say that there are two basic types of TD:s. Mazing TD:s, and well... Non-mazing TD:s. The latter are the most common as far as I know.

Examples of Mazing TD:s: Duke Wintermaul's TD, Skibi's Castle TD, Island TD.
Examples of non-Mazing TD:s: Burbenog TD, Elemental TD, Mafa TD.

Basically, in a mazing TD, you usually start off in front of a spawn (Or at least some players do). Here, you start building a maze of towers, mostly consisting of basic towers, with more advanced strategically placed inside. These are usually more complex to create as you have issues of creeps attacking, stupid players blocking, creeps not walking the correct ways, et cetera.

In a non-mazing TD, you are usually obstructed by terrain (Unbuildable tiles) where the creeps walk. You then build towers along this way, which attacks creeps that come within range. These are often simpler to make, since you can sometimes simply make a trigger issuing an order targeting the exit.

Personally, I prefer mazing TD TD:s, but it's a matter of taste. This is the absolutely first thing you should decide on, since everything, terrain (Which is the first practical thing you'll do), triggers, towers, creeps, everything will rely on the basic type of your TD. For a first-timer, I reccomend a non-mazing TD with a simple layout (Such as a simple curved way leading to the goal).

From there, there's an infinite branch of TD:s. Another important one, however, are Race TD:s. In these, you select a race at some point (Usually right at the start) which has it's own unique towers, and often a theme (Such as high splash or high rate of fire). In many TD:s, you can aquire Wood, or Lumber, to get a second, third, or even fourth race. I like the idea of races, but once again, it's a LOT of work (Pretty much [number of towers in your non-race TD x number of races] towers to make). Especially regarding balance, since you'll have a variety of different towers that all have to decently align in power. Also, more than eleven races tend to get messy, so keep that in mind.

Other than that, we have survival TD:s (Where each individual player has his own base to defend), mini-game TD:s (Where you play minigames to earn extra cash), well, the list goes on. The best thing to do is to play a lot of TD:s and decide on what you want to do. I'll try to adress as many things as possible, though not mini-games, since that's very, very, very much work.



I hope this has given you a rough idea of what a TD is and how to play one (As if you didn't already know)


2#: How do *I* make a TD?

2.1: Can I make a TD?
2.2: Where do I start?


2.1: Can I make a TD?

Short answer: If you ask that, no.

Long answer: In time, yes. The best idea is to look at another TD similar to what you want to make. I looked at Duke Wintermaul's TD, for instance. I learned a LOT from it. In this tutorial, I will teach you the basics of making a tower defense (Allthough it is largely focusing on making your TD *good*). There's quite a bit of triggers for a tower defense to even begin working, and if you make one, you probably want to have a TD made by someone else as a "reference" if you don't know what to do. Just don't forget to give credit! I'm working on a TD myself, which is fundamentally complete (I just have a lot of polishing, balancing, and towers to make). It's a pretty basic mazing/race TD, and I'd be quite honored if you'd use it as a reference. For convenience's sake, I'll probably end up referencing a lot to it. I'll also make a template, simple, non-mazing TD.

So, bottom line, allthough you might not want to start out with a TD, you can definitely make one, in time!

Where do I start?

Let's face it head-on. Open your world editor. The 64*64 basic map is fine. Just to start out, go into the "Window" tab, and deselect "Brush List". This'll remove the unit selection thing at the lower left. This saves an unholy amount of time (10-15 seconds) each time you edit a portrait, tooltip, name, etc.
Now, let's just make the terrain. Go into Advanced, and click "View Entire Map". Select Terrain Palette, "Lower by two", and one of the unbuildable tiles. Select the Square tool, and the 3x3 marker. Now, just draw a line in the rough middle of the map, straight down. It should look roughly like this (I use Cityscape here):

TDpic1.png

There. That's all the neccesary terraining. Now, make two regions, one at the top, one at the bottom, as wide as the path and about as long as the path is wide, as the pic below shows.

TDpic1.png

Call the top one CreepSpawn and the bottom one CreepGoal.

Next, you want to make a simple tower to base your others off. Select the Guard Tower in the Object Editor.

Remove the abilities, set base damage to 5, set the cost to 5 gold and 0 lumber, set targets allowed to Air/Ground/Enemy, remove upgrades used and requirements, edit tooltip to "Build Guard Tower", and change the description to something appropriate (Cheap, quickly firing arrow tower, or something like that.) You can set the build time to whatever you want. Personally, I prefer 5 seconds for all my towers.

Now, let's make our basic creep. Check the Footman.

Remove all abilities, upgrades used, etc, and set HP to 15. Don't worry about tooltip, except you might want to add in (1) as an editor suffix to know which level it is.
Also, set bounty to 1.

We also need a builder. Select the Acolyte.

Remove abilities, structures build, upgrades used, attacks enabled (Set to none), and add Guard Tower to his structures build list. Also, add Invulnerable. Set Food Cost to 0.
Set his movement type to Fly, and height to about 200. Set the model to something easily recognizable, like a wisp. Change soundset if you want to. Place a Player 1 (Red) starting position and put a Builder at it.

Now, onto the "boring" part, triggers. Since this is a basic map, they won't be very difficult. Bear with me.

Look up "Map initialization". Wipe it clean of actions.

Make it look like this:
Code:
Melee Initialization
    Events
        Map initialization
    Conditions
    Actions
        Player - Set Player 1 (Red) Current gold to 30
        Visibility - Disable fog of war
        Visibility - Disable black mask
        Turn Gives Bounty On for player 12 (Brown)


Wohoo. Cash.

Open the Variables. Variables are pieces of data that can be stored over the passing of a game. They are a hundred percent neccesary for a TD. You use the action "Set variable" to define one.

Make the following variables:

[Integer] StopSpawning
[Integer] Level (Default value: 1)
[Integer] Lives (Default value: 30)
[Integer] GoldAward (Default Value: 10)
[Unit-Type] MonsterKind
[Timer] NextLevel
[Timer] StopLevel

Since some things can't be setup on initialization, make another trigger called something like "Setup".

Code:
SetupTimersandSTuff
    Events
        Time - Elapsed game time is 0.50 seconds
    Conditions
    Actions
        If (Level Equal to 1) then do (Countdown Timer - Start NextLevel as a One-shot timer that will expire in 45.00 seconds) else do (Countdown Timer - Start NextLevel as a One-shot timer that will expire in 10.00 seconds)
        Countdown Timer - Create a timer window for (Last started timer) with title Next Level in...

Make another trigger called "Next Level".

Code:
Next Level
    Events
        Time - NextLevel expires
    Conditions
    Actions
        Countdown Timer - Destroy (Last created timer window)
        -------- Level 1 --------
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                Level Equal to 1
            Then - Actions
                Set MonsterKind = Footman (1)
            Else - Actions
        -------- Level 2 --------
        -------- Level 3 --------
        -------- Level 4 --------
        -------- Level 5 --------
        -------- Level 6 --------
        -------- ~ad infinitum~ --------

Make as many comments as you want to, or just make them as you progress.

Make yet another trigger called "Spawn Creeps". Make it Initially Off by unchecking the box, and add the action "Trigger - Turn on Spawn Creeps" to Next Level. Make sure it's at the end.

Code:
SpawnCreeps
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        Unit - Create 1 Monsterkind for Player 12 (Brown) at (Center of CreepSpawn <gen>) facing Default building facing degrees
        Unit - Order (Last created unit) to Move To (Center of CreepGoal <gen>)
        Set StopSpawning = (StopSpawning + 1)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                StopSpawning Equal to 30
            Then - Actions
                Trigger - Turn off (This trigger)
                Countdown Timer - Start NextLevel as a One-shot timer that will expire in 15.00 seconds
                Countdown Timer - Create a timer window for (Last started timer) with title Next level in...  
                Set GoldAward = (GoldAward + 3)
                Player - Add GoldAward to Player 1 (Red) Current gold
                Set Level = (Level + 1)
            Else - Actions

Now creeps spawn!

Make two triggers, one called "Lose Lives" and another called "Defeat!"

Code:
Lose Lives
    Events
        Unit - A unit enters CreepGoal <gen>
    Conditions
        (Owner of (Triggering unit)) Equal to Player 12 (Brown)
    Actions
        Set Lives = (Lives - 1)

Code:
Defeat
    Events
        Time - Every 0.30 seconds of game time
    Conditions
        Lives Less than 1
    Actions
        Game - Defeat Player 1 (Red) with the message: Defeat!

These (And Victory) are all the basic functions you need. Of course, there's a lot of things to do - Showing creep names, showing when there's 15 seconds left, a nice introduction message, map info, et cetera. You can keep making towers, creeps, and go on forever.

Well, that's that for this tutorial!



...Did you really think that?


Think again! We've just begun!

#3: Making your tower worthwile and fun!
3.1: What? We've just learned how to make a TD!
3.2: Races
3.3: Towers
3.4: Projectiles
3.5: Creeps

3.1: What? We've just learned how to make a TD![size]


That is correct. But look at that TD. Play it. Was it fun?

No.
It's just a TD. Nothing more, nothing less. What you need to do to make a TD fun is to put a personal stamp on it, to mark it with yourself. You need to make people think "Ah, THAT TD!" instead of "oh this is very fun not rly".

How to do this? Well, there are a number of ways.
One of the most obvious and important, yet most overlooked are the towers themselves. Ten levels of arrow towers with a slight increase in size aren't fun. Neither are a bunch of generic towers with generic descriptions. You have to give the towers themselves a personality, with projectiles, descriptions, abilities, and so on. A small "backstory" for towers is also great. It can be something as simple as "This was originally intended as a..." or "One of the most feared weapons..." or something complex that require an entire quest log, it's all up to you. Projectiles of towers are also important. It's not fun watching forty-five towers spit arrows. It's just not fun. It's also important that the projectile (And tower, for that matter) matches with both the tower, theme and race. An axe with a gigantic area of effect doesn't look good at all, and an infernal rock that fires ten times a second (would lag) wouldn't look good at all either. I'm even gonna have a separate subsection for the projectiles.

I hope you understand that this is the section that this tutorial is all about.

Races

In my opinion, races, especially in team TD:s, are very important for that sweet personal touch. Of course, in solo TD:s, they can feel a bit... Obsolete, if I may.

Making races isn't easy. Especially if you want to make good ones. Try to avoid making overused races like "Fire", "Human", "Creep". It's not really personal at all. Try to think each race through, and think "What will make people pick THIS race?"

For instance, in the TD I'm currently working on, I have an Engineering race, Warrior Race, Gun Race, Elemental Race, Warlock Race, and a Support Race. Keep in mind, I could as well've called these race "Fire, Thunder, Earth, Nature, Dark, Light", and it might not have made a technical difference. But it wouldn't have a personal touch.

That being said, of course you can make a dark or undead race if you want to. That's where the towers come in...

3.3: The Towers

The towers. The essence of tower defences. And, overall, probably the most important ingredient in a well-made TD.

Let's take a look at two towers. Both have identical properties, except for projectile, icon, model. Both fire a projectile, without splash, at a 2/second rate.
One of them is a Guard Tower which fires arrows.
The other is a spider which shoots needles.

Which would you rather pick?

Or, let's make another comparison. You have the ultimate tower for your explosive missile race. It has pretty high splash, but not very good rate of fire.

One of them is a cannon tower. It fires standard cannon bombs.
The other is a Mortar Team, which shows the Flare art at them, then the Starfall effect at the target.

Which would you rather pick here?

I assume you picked the latter in both cases? Why? Because it's interesting. It's fairly easy to make a nice, short story. For the former, it'd end up something like "Standard arrow tower" and "Very powerful cannon tower." For the latter, you can spin on quite a bit; "These lurking spiders live in deep woods. They prey on their victims and relentlessly fire needles at them until they no longer move.", and "These very powerful operators carry state-of-the-art missiles capable of firing from any terrain without recoil. They are used for quick takeovers of large bases."

Remember, a tower doesn't have to be a tower per se, it can be a unit, special effect, standard building, et cetera.

Now, let's say you made the aforemented "Dark" race.
You could either make a tower called "Basic dark tower" which is a simple acolyte with Necromancer projectiles.

Or, you could make a tower called "Lurking Spirit" with the Voidwalker model, and the Ziggurat missile.

There's a difference, and remember that well.

It usually also feels more "Excusable" (For a lack of a better word) to give special abilities to a tower that's original and has a bit of a backstory. Giving an arrow tower chain lightning and calling it "Bolt caster", with the description "casts chain lightning" just doesn't feel right, does it?

I hope this made you think a bit. Of course, I'm not saying you should never use the cannon or guard tower models - Just think about what you're going to do with them.


Projectiles

This is more a list of projectiles that come to mind. I'll probably keep adding projectiles here.

For Fiery towers (Missiles, unless otherwise noted):
Black Dragon Whelp
Phoenix
Archmage
Rain of Fire
Inferno
Archimonde
Lava Spawn
Firelord
Volcano
Burning Oil (Demolisher)
Flame Strike
Blood Mage
Phoenix Fire
Incinerate
Searing Arrows


For Watery towers:
Water Elemental
Crushing Wave
Sludge Flinger
Blizzard
Drain Mana (Lightning effect and target stuff)
Tome of Retraining
Absorb Mana (Missile)
Blink (Everything)


For Lightning (Thunder) towers:
Forked Lightning (Target)
Far Seer
Lightning Attack (An ability, it lets you use lightning effects)
Purge
Chain Lightning (Target)
Bolt of Lightning (Doodad)
Orb of Lightning (Special, Missile, Target)
Spirit of Vengeance (Missile)
Finger of Death (Target)


Dark towers:
Destroyer
Orb of Destruction
Necromancer
Voidwalker
Carrion Swarm
Unsummon Building Effect
Undead Building ("Special" effect)
Death Coil (Missile and Target Effect)
Spirit of Vengeance
Corruption (Target)
Finger of Death (Lightning Effect)
Shadow Strike
Animate Dead
Black Arrow
Dark Summoning
Raise Dead
Possess
Banish
Howl of Terror (Buff)



Light Towers:
Priest
Holy Light
Divine Shield
Faeri Fire
Ressurrection
Barkskin
Level Up
Heal
Healing Spray
Inner Fire (Target)
Polymorph (Effect)
Rejuvenation
Sanctuary (Target)


I'll add to this section constantly ;)


Creeps

There isn't very much to say about this. In my opinion, you should give each creep a personal touch. I like to make humorous creeps (For example, my first flying level is "Flying Barracks"). Special properties is also fun, such as Ethereal, Fortified, Spell Immune, Fast, High armor, etc.


Closing Words

It became a bit quick at the end, but that's simply because I'm getting tired. I'll keep this updated, add more content, answer questions, and so on. Please point out any mistakes, grammatical or whatever. I'll include the test map we made earlier, as well as the TD I'm working on!
 

Attachments

  • WCIII TD 0.54.w3x
    96.5 KB · Views: 506
  • ShowTD.w3x
    17.7 KB · Views: 511
T

Tubba

Guest
I put quite a bit of work into this, and I would really appreciate if someone at least commented on it.
 

Battlemapsta

I am the Conduit of Change
Reaction score
101
I'm going to sleep now but I must give you credit for the writing and the files you implemented. I'll check in tommorow to give you my rating :)
 

xfirenzx

New Member
Reaction score
7
Very nice guide. Lots of detail and explanations. I might even try to make a tower defence game. Hopefully some more pictures will be added over time.

I rate this 4/5. For now.

Ty for demo maps btw.
 

esb

Because none of us are as cruel as all of us.
Reaction score
329
I just went over the triggers, and noticed it seems like you would need 1 trigger or action/event for each player. For actions, you can use loops (Integer 1 - (# of Players)) and (Player Index (Integer A)).

You also have Memory leaks, which could result in lag later on in-game, depending on how many monsters and how often, etc.

But it seems to teach the basics.
 

hi_im_bob

......and you are?
Reaction score
44
well its okay but I just feel like we have enough tutorials on making TD's what exactly sets yours appart?
 
T

Tubba

Guest
I just went over the triggers, and noticed it seems like you would need 1 trigger or action/event for each player. For actions, you can use loops (Integer 1 - (# of Players)) and (Player Index (Integer A)).

You also have Memory leaks, which could result in lag later on in-game, depending on how many monsters and how often, etc.

But it seems to teach the basics.
I just use Player 1: Red for simplicity's sake.


hi_im_bob: This focuses on making your TD interesting rather than making a TD in itself.

As for pictures, yeah, probably, but taking screenshots with a mac is a bit over-complicated. I first have to load a program to take them with, which can only save as .tiff, then I have to open another to convert it to PNG or JPG before I can upload to photobucket.
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Why Mac if there is Windows. Anyway, doesn't warcraft saves pictures as TGA?
 
T

Tubba

Guest
Why Mac if there is Windows. Anyway, doesn't warcraft saves pictures as TGA?

Because windows doesn't work on a mac and Mac OSX is much better in every thinkable way except possibly taking screenshots.

And what does the Targa format have to do with anything? Oh, you meant like that. I took the screens from the world editor. I guess I could take them from the ingame too, but why?
 

FhelZone

Have a drink of a nice cold mellowberry juice!
Reaction score
103
Hey, haven't seen you for a while drunken_god.

Uhm, tubba little tips, this wont easily get approved without, visual aids, and instead of using those super big texts try using colors. organize this wall of texts.
 
T

Tubba

Guest
Yeah, I guess, but what kind of images are meaningful to have? Images of towers shooting stuff or what?
 

Romek

Super Moderator
Reaction score
963
Quite nice.
From what I've read, it seems to be very obvious tips.

If you finish that list of projectiles, it'd be awesome :p
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    Which is unique I guess.
  • The Helper The Helper:
    Actually I was just playing with having some kind of mention of the food forum and recipes on the main page to test and see if it would engage some of those people to post something. It is just weird to get so much traffic and no engagement
  • The Helper The Helper:
    So what it really is me trying to implement some kind of better site navigation not change the whole theme of the site
  • Varine Varine:
    How can you tell the difference between real traffic and indexing or AI generation bots?
  • The Helper The Helper:
    The bots will show up as users online in the forum software but they do not show up in my stats tracking. I am sure there are bots in the stats but the way alot of the bots treat the site do not show up on the stats
  • Varine Varine:
    I want to build a filtration system for my 3d printer, and that shit is so much more complicated than I thought it would be
  • Varine Varine:
    Apparently ABS emits styrene particulates which can be like .2 micrometers, which idk if the VOC detectors I have can even catch that
  • Varine Varine:
    Anyway I need to get some of those sensors and two air pressure sensors installed before an after the filters, which I need to figure out how to calculate the necessary pressure for and I have yet to find anything that tells me how to actually do that, just the cfm ratings
  • Varine Varine:
    And then I have to set up an arduino board to read those sensors, which I also don't know very much about but I have a whole bunch of crash course things for that
  • Varine Varine:
    These sensors are also a lot more than I thought they would be. Like 5 to 10 each, idk why but I assumed they would be like 2 dollars
  • Varine Varine:
    Another issue I'm learning is that a lot of the air quality sensors don't work at very high ambient temperatures. I'm planning on heating this enclosure to like 60C or so, and that's the upper limit of their functionality
  • Varine Varine:
    Although I don't know if I need to actually actively heat it or just let the plate and hotend bring the ambient temp to whatever it will, but even then I need to figure out an exfiltration for hot air. I think I kind of know what to do but it's still fucking confusing
  • The Helper The Helper:
    Maybe you could find some of that information from AC tech - like how they detect freon and such
  • Varine Varine:
    That's mostly what I've been looking at
  • Varine Varine:
    I don't think I'm dealing with quite the same pressures though, at the very least its a significantly smaller system. For the time being I'm just going to put together a quick scrubby box though and hope it works good enough to not make my house toxic
  • Varine Varine:
    I mean I don't use this enough to pose any significant danger I don't think, but I would still rather not be throwing styrene all over the air
  • The Helper The Helper:
    New dessert added to recipes Southern Pecan Praline Cake https://www.thehelper.net/threads/recipe-southern-pecan-praline-cake.193555/
  • The Helper The Helper:
    Another bot invasion 493 members online most of them bots that do not show up on stats
  • Varine Varine:
    I'm looking at a solid 378 guests, but 3 members. Of which two are me and VSNES. The third is unlisted, which makes me think its a ghost.
    +1
  • The Helper The Helper:
    Some members choose invisibility mode
    +1
  • The Helper The Helper:
    I bitch about Xenforo sometimes but it really is full featured you just have to really know what you are doing to get the most out of it.
  • The Helper The Helper:
    It is just not easy to fix styles and customize but it definitely can be done
  • The Helper The Helper:
    I do know this - xenforo dropped the ball by not keeping the vbulletin reputation comments as a feature. The loss of the Reputation comments data when we switched to Xenforo really was the death knell for the site when it came to all the users that left. I know I missed it so much and I got way less interested in the site when that feature was gone and I run the site.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top