TowerDefense ToolKit 4

896777--235675--TDTK_FrontPage_S.png

TowerDefenseToolKit (TDTK) is a an easy to use and flexible Unity game engine coding framework designed for construction of TowerDefense(TD) game. The aim of the toolkit is to allow as many variant of TD game as possible, with maximum flexibility to individual level design. It’s designed with integration of custom asset in mind. Finally the toolkit is written with non-coder in mind so no coding skill is required to use it.

Here’s a quick overview video to get an idea of how all things work.

Here’s this web-demo that show case some example levels made with TDTK. All the content/assets used are included in the package. Each individual level in the demo are available as example scene in the package. The model used for towers and creep are available separately here.

>> TDTK WebGL Demo <<

Some notable features of TDTK:

  • Support a wide variety of gameplay mechanic with tons of customization option
  • Easy-to-use and flexible path system that gives almost unlimited design option
  • Support a variety of units roles (turret, support, spawner, etc.) for both towers and creeps
  • Plenty of stats to configure for various unit-status/effect/buff/debuff
  • Support procedural spawn generation and endless mode
  • Ability system that supports custom player ability
  • Perk system that support building of custom tech-tree/skill-book
  • Compatible with mobile device
  • Easy integration of custom model/asset
  • No coding required (everything can be done via editors)
  • Full c# source code included

*TDTK has just gone through a major update to version4.0.

>> link to Unity AssetStore <<

>> all development blog post <<

Following are screenshots taken from the demo

Just got it!!

I will check it out and post again, cant wait.!!

Awesome news!!! Thank you for everything @Songtan
if you are a developer working on a Tower Defense game, or a game that can utilize the pieces in this awesome toolkit, this is a MUST HAVE!

Great work!

Very great stuff!

Congrats for the release!!!
And many thanks for the hard work and, of course, for the free upgrade!

Thanks all for all the kind word. I hope the new framework is up to your expectation.

Great. Is it Android Compatible?

I’ve never tested it on Android. But I dont see any reason why it isnt compatible. I’ve some user who have use it for android, I’ve yet to hear any problem so far.

@songtan This is very nice and I plan to get a lot of value out of it. Your documentation is not much more than MSDN class type documentation which is nice and useful, however it only helps experiences Unity developers, its not as helpful to the seasoned C# developers who are new to Unity and Game development.

I think if you included a written step by step tutorial for how to make your ExampleScene1 it could go a lot further to help people learn how to use your kit and adopt it. Also several short video’s on how to do very specific tasks with your kit would also be very helpful. The more help you provide to those who want to use your kit the better your community can grow.

I am getting errors when i want to start scene 1 and 3
Scene 2 start without errors.

on scene one i get this one:

NullReferenceException
GUIToggleButton+c__Iterator4.MoveNext () (at Assets/Scripts/C#/CustomButtoniOS.cs:38)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
UIiOS:Start() (at Assets/Scripts/C#/UIiOS.cs:53)

and this

NullReferenceException
UIiOS.DisableSelectedTowerUI () (at Assets/Scripts/C#/UIiOS.cs:328)
UIiOS.Start () (at Assets/Scripts/C#/UIiOS.cs:56)

before that i switched the destination platform to ios and changed the normal ui to ios ui like the doc told me

then when i hit the spawn button i get this one

NullReferenceException: Object reference not set to an instance of an object
SpawnManager.SpawnWave () (at Assets/Scripts/C#/SpawnManager.cs:177)
SpawnManager+c__Iterator18.MoveNext () (at Assets/Scripts/C#/SpawnManager.cs:145)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
SpawnManager:_Spawn() (at Assets/Scripts/C#/SpawnManager.cs:82)

on scene 3 i get these to at start

NullReferenceException
GUIToggleButton+c__Iterator4.MoveNext () (at Assets/Scripts/C#/CustomButtoniOS.cs:38)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
UIiOS:Start() (at Assets/Scripts/C#/UIiOS.cs:53)

NullReferenceException
UIiOS.DisableSelectedTowerUI () (at Assets/Scripts/C#/UIiOS.cs:328)
UIiOS.Start () (at Assets/Scripts/C#/UIiOS.cs:56)

and this one when i hit on spawn

NullReferenceException: Object reference not set to an instance of an object
SpawnManager.SpawnWave () (at Assets/Scripts/C#/SpawnManager.cs:177)
SpawnManager+c__Iterator18.MoveNext () (at Assets/Scripts/C#/SpawnManager.cs:145)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
SpawnManager:_Spawn() (at Assets/Scripts/C#/SpawnManager.cs:82)

@CreepyGnome - Thanks for your feedback. You certainly raise a good point. I try to do something about it. For the mean time please dont hesitate to let me know if there’s any thing I can help, either by pm or email me.

@M_Stolley, I’m terribly sorry about the error. It seem that I havent save the scene properly before I update it to the AssetStore. What happen is there’s a few missing button object that should have been assigned the the UIiOS component.

I would suggest you to delete both “UI” gameObject in ExampleScene1 and ExampleScene3. You can then copy the “UI” gameObject in ExampleScene2 and paste that in both ExampleScene1 and ExampleScene2. That should fix the problem.

Ah ok, i will try this.
I also just have used the TDTK spawneditor and just changed the right prefabs that should be spawned (the blue ones) to one of my own prefab and that is not moving and stays where it started :frowning:

Edit:
Ok now after doing what you suggest for scene 1 and 3 there are no errors like before.
Thank you songtan :slight_smile:

You are welcome. For your custom prefab, is there any error or specific debug log when your own prefab failed to move? I’ll need more information to figure out what might have gone wrong. Try compare your own prefab to the example. See if there’s any difference in the hierarchy and components or the stats setup.

besides that problem i found another one.

When i use the TDTK spawneditor and changed i.e on scene 2 the flyingcreeps to the normal creeps and hit on update and start the game it worked but when i switch to scene 1 it do not ask to save the change and when i then change to scene 2 again and look into the TDTK spawneditor there the flyingcreeps back again and not the normal creeps as i changed it.

It seems like you have misunderstood what the update button in the editor is for. You needn’t press the Update button after you change anything, the change is instant (You can check and verify it with the default SpawnManager in the Inspector). When you load a new scene, the spawnEditor does not detect a scene change and therefore it will no update the content automatically according the the newly loaded scene. So this is what the Update button for. Everytime you load a new scene, pressing the Update button will cause the editor to update it content in accordance to the current loaded scene. So I suspect the content you have seen in the SpawnEditor which doesnt match up is indeed the content of ExampleScene1.

Please note that this is also the case for the Update button for TowerEditor. I hope this clarify the issue.

So now my prefab is moving and also animating, this was my error but i testet then with my and also with your prefabs what i try to explain before with the TDTK spawneditor and it seemed that it do not save the changes.

Ah we posted together and i read your post now and i think i realy have misunderstod the update button.

So all the issue resolved then?

Yes, thank you!
Now i will build for ios :slight_smile: