• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Advanced ( Mastered ?) Tower Defense mechanics

Status
Not open for further replies.

Ardenian

A

Ardenian

Hello,

I worked several months on my tower defense project now and I come to a certain point where I need help.

You might know YouTD ( eeve.org), one of the most played and, in my opinion, best Warcraft tower defense games of all times.

What I am searching for, I would like to create similar stats and systems like in YouTD.
YouTD uses, for example, a non-hero unit experience system based on kills or custom stats systems that allow very complex stats.

I know how to create indexed variables, so I think I am able to create custom waves, but, now the basic question, how do I control these waves, how do I have control about player-built towers and how do I control the tower experience ?
I hope you could help me, as my description here is very simple.
 
Last edited by a moderator:
The complicated part would be having to have all these data and math running, or at least in my mind. It's almost midnight so expect a bit sort of drunk post :p

The waves can have fixed amount of experience, if you want to go dynamic, more variable and complex algorithm will be needed to calculate the dynamical amount. Each tower can be attached to a data, which in this case should and better be done with Unit Indexer (or go with Hashtable, pref).

Whenever a unit dies, load the value of the killing unit, calculate the experience and add that experience to already available experience to the tower. There's no need to control the tower if you go with either way, since their value are unique (Hashtable has a id storing method which exclusive for each unit, and Unit Indexer grants unique id for each unit).

For displaying, either go with Floating Text or using boards, or a more brutal approach : text message.
 

Ardenian

A

Ardenian

Thank you for your answer!

Using Inxexer or hashtables allows me to ... make everything I want to ?
The problem is that everything is not fixed. Experience amount, damage, mana regeneration, spell power, damage against certain types like Giant and so on, and every tower has its own stats.
Can this all be achieved using an indexer or hashtables ?
 
Last edited by a moderator:
That one list seems a chain of BonusMod, DDS, triggered spell listing (this one I'm uncertain) and Unit Indexer/Hashtable. In addition to that you need to make a huge list of structure of damage variation for each types.

I don't know about YouTD that much, but that's one serious TD for having such big amount of options.
 

Ardenian

A

Ardenian

Uh, sounds very complicated..

So, I need every spell being triggered.
I need to use a hashtable for all the stats of each unit.

Well, one thing I don't understand, the map uses, for example, a potion that adds 2% to the current base damage, how is this done ?
I cannot think of a solution as the tower is no hero unit, so it cannot use tomes and techs would be not the right way either.

Another thing, about the damage dealt. So, I have a unit that is attacked by a tower.
So, now, the damage is simply dealt considering armor only. Now an additional trigger runs to deal damage based on custom categories ?
Or does every attack of the tower deals no damage ( 0% damage against every armor type) and all the damage is triggered, considering everything that influences the damage ?
 

Ardenian

A

Ardenian

Thank you for your time and patience! Now I just have to grab similar systems and then I can go on, I guess.
 

Ardenian

A

Ardenian

Hi Ardenian,

You can see most of YouTD's code for yourself by having a poke through the devkit. This includes a testmap, which contains a huge chunk of the actual map's engine, completely unobfuscated.
http://www.eeve.org/YouTD/devkit.php

Glow
Ohh, thank you very much! I wasn't aware that this exists. I take a look on it!

Just a random sidenote: ... why not start with something simpler? YouTD is like the ferrari of TDs script-wise. I suspect it to be 100% vJass.
Yes, that's true, but it is hard to create something 'new' in the TD section without making a great effort.
I simply aimed for something impressive, instead of something 0815 everyone already played kind of.
 

Zwiebelchen

Hosted Project GR
Level 35
Joined
Sep 17, 2009
Messages
7,236
Yes, that's true, but it is hard to create something 'new' in the TD section without making a great effort.
I simply aimed for something impressive, instead of something 0815 everyone already played kind of.
Yeah... but that's not how learning a skill works. You start simple, then you get better and then you start something more impressive, and so on....
 

Ardenian

A

Ardenian

Yeah... but that's not how learning a skill works. You start simple, then you get better and then you start something more impressive, and so on....

As with every map genre, yes. Tho I dare to say that TD games have a smaller learning curve than for example RPGs or 'greater' genres.

Of course, it is still difficult to develop them, but the initial progress is much smaller than for a RPG. Just compare the use of systems: A TD would maybe use around five systems, if highly executed, a Missile, a DDS and then a custom damage system.

A RPG map on the other hand would consume 'endless' systems. I don't have to tell you that, I guess.
I try to say that a TD is focused on the idea, but the execution itself is much more comfortable than the one from a RPG.
 

Zwiebelchen

Hosted Project GR
Level 35
Joined
Sep 17, 2009
Messages
7,236
Oh absolutely not. A well-done TD is a lot more sophisticated mechanics-wise than any RPG.

Stuff like blocking detection for maze maps, unit recycling, custom tower effects, event stages, etc. ...

The issue with creating a high quality TD is the sheer mass of scripts and objects on the map running at the same time. Everything has to be optimized for high runtime efficiency if you want the game performance to be stellar, whereas in an RPG can mostly get away with naive implementation of system.

The hard thing about RPGs isn't the mechanics, it's the amount of content you need.
 

Ardenian

A

Ardenian

Hm, I wasn't aware of these aspects in detail.

Thank you for pointing out!
 
Level 25
Joined
Jul 10, 2006
Messages
3,315
As with every map genre, yes. Tho I dare to say that TD games have a smaller learning curve than for example RPGs or 'greater' genres.

Of course, it is still difficult to develop them, but the initial progress is much smaller than for a RPG. Just compare the use of systems: A TD would maybe use around five systems, if highly executed, a Missile, a DDS and then a custom damage system.

A RPG map on the other hand would consume 'endless' systems. I don't have to tell you that, I guess.
I try to say that a TD is focused on the idea, but the execution itself is much more comfortable than the one from a RPG.

As someone that's made dozens of maps across both genres, I'd say they're about the same.

At minimum,
a RPG needs a hero and creep respawn system
a TD needs a creep spawning and life removal system
(both are very easy to trigger)

Both can benefit from more advanced systems, so either can be as advanced as you want it to be.

YouTD's tower stats system is about as complex as a good RPG's stat system (just indexed across units instead of players).

The auto micro feature in my RWTD could be compared in complexity to an aggro system in a RPG.
 
Status
Not open for further replies.
Top