Tutorial Making a fun and worthwile Tower Defense!

Discussion in 'Graveyard' started by Tubba, Feb 5, 2008.

  1. Tubba

    Tubba Guest

    +0 / 0 / -0
    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):


    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.


    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:
    Melee Initialization
            Map initialization
            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".

            Time - Elapsed game time is 0.50 seconds
            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".

    Next Level
            Time - NextLevel expires
            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.

            Time - Every 1.00 seconds of game time
            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!"

    Lose Lives
            Unit - A unit enters CreepGoal <gen>
            (Owner of (Triggering unit)) Equal to Player 12 (Brown)
            Set Lives = (Lives - 1)
            Time - Every 0.30 seconds of game time
            Lives Less than 1
            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?

    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.


    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.


    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
    Rain of Fire
    Lava Spawn
    Burning Oil (Demolisher)
    Flame Strike
    Blood Mage
    Phoenix Fire
    Searing Arrows

    For Watery towers:
    Water Elemental
    Crushing Wave
    Sludge Flinger
    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)
    Chain Lightning (Target)
    Bolt of Lightning (Doodad)
    Orb of Lightning (Special, Missile, Target)
    Spirit of Vengeance (Missile)
    Finger of Death (Target)

    Dark towers:
    Orb of Destruction
    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
    Howl of Terror (Buff)

    Light Towers:
    Holy Light
    Divine Shield
    Faeri Fire
    Level Up
    Healing Spray
    Inner Fire (Target)
    Polymorph (Effect)
    Sanctuary (Target)

    I'll add to this section constantly ;)


    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!

    Attached Files:

    • Like Like x 5
  2. Tubba

    Tubba Guest

    +0 / 0 / -0
    I put quite a bit of work into this, and I would really appreciate if someone at least commented on it.
  3. Battlemapsta

    Battlemapsta I am the Conduit of Change

    +101 / 0 / -0
    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 :)
  4. xfirenzx

    xfirenzx New Member

    +7 / 0 / -0
    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.
  5. esb

    esb Because none of us are as cruel as all of us.

    +325 / 0 / -0
    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.
  6. hi_im_bob

    hi_im_bob ......and you are?

    +44 / 0 / -0
    well its okay but I just feel like we have enough tutorials on making TD's what exactly sets yours appart?
  7. Tubba

    Tubba Guest

    +0 / 0 / -0
    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.
  8. FhelZone

    FhelZone Have a drink of a nice cold mellowberry juice!

    +103 / 0 / -0
    Why Mac if there is Windows. Anyway, doesn't warcraft saves pictures as TGA?
  9. Tubba

    Tubba Guest

    +0 / 0 / -0
    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?
  10. Tubba

    Tubba Guest

    +0 / 0 / -0
    Erh, should I interprent this as "Not approved"?
  11. Drunken_God

    Drunken_God Hopes to get back into Mapmaking with SC2 :)

    +106 / 0 / -0
    maybe a mod will look take a look at this
  12. FhelZone

    FhelZone Have a drink of a nice cold mellowberry juice!

    +103 / 0 / -0
    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.
  13. Tubba

    Tubba Guest

    +0 / 0 / -0
    Yeah, I guess, but what kind of images are meaningful to have? Images of towers shooting stuff or what?
  14. FhelZone

    FhelZone Have a drink of a nice cold mellowberry juice!

    +103 / 0 / -0
    Terrains Towers Balancing Etc.
  15. Drunken_God

    Drunken_God Hopes to get back into Mapmaking with SC2 :)

    +106 / 0 / -0
    what does that mean?
    was in holidays :p

    EDIT: +rep (im currently making a TD)
  16. Tubba

    Tubba Guest

    +0 / 0 / -0
    I was about to type "Mazinger" instead of mazing once, so I put up a warning just in case.
  17. Romek

    Romek Super Moderator Staff Member

    +959 / 0 / -0
    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
  18. Tubba

    Tubba Guest

    +0 / 0 / -0
    Finish and finish, I've added more to it. I'll keep doing so.

Share This Page