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): Spoiler 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. Spoiler 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!