Game
Tower Defence Game
7 years ago

Tower Defence Devlog 0: Balancing and Mechanics Changes


Wanna know how to make a tower defence game more balanced and fun? I applied mathematics to one of my old games to tighten the difficulty and reduce the power gap between towers. I will describe how I did that at the end of the devlog.

Exactly 18 months ago today I created a basic tower defense game.

5d099fa332ce9.png

Now that I actually know how to make a game I wanted to complete this project. I released the original version, 0.1.0 (which is surprisingly not broken) a few days ago. Since then I reprogrammed several sections of code, cosolidated code into functions, fixed confusing and contradicting statements and conditionals, and fixed some bugs. It still doesn’t look great under the hood but I can deal with that.

Here are the 0.2.0 changes:
-Enemy movement speed is halved
-Towers can target the first enemy, strongest enemy, nearest, and more
-Towers now have names and descriptions
-All towers now shoot roughly 1/3 the speed
-The purple tower now acts like a shotgun
-The blue tower is now a combination of the octo-shot (the basketball-looking one) and the shotgun
-The blue lighning tower shoots slower than before, but the orange lightning tower shoots faster. Earlier the orange and blue towers shot the same speed, but orange had longer range; now they have the same range, but orange has faster speed.
-A few graphical adjustments

5d099fa4d8510.png
5d099fa6be28b.png
5d099fa8bff15.png

Here’s how I balanced the towers. First, I determined a way to find out the objective value of each tower on a given stage: how many enemy health points can it destroy on its own each wave? I created this formula: value=dpf(srte+tc/es). In other words, damage equals damage divided by frames times frames.
-dpf is damage per frame, which is number of bullets expected to hit the enemy times the damage those bullets deal, divided by the reload speed.
-sr is the enemy spawn rate, the number of frames between enemies spawning
-te is total enemies that will spawn
-tc is track coverage, which is roughly the diameter, twice the diameter on a good day. I’ll call it 1.5 times diameter
-es is enemy speed

The only time the radius changes the proportional values of the towers is when srte is involved, so for the sake of calculating a constant value I will arbitrariy choose that sr=15 and te=40. This makes most of the values whole numbers. Instead of calculating the price of each tower directly proportional to the value, I will make more valuable towers relatively cheaper. Instead of price=nval, I have price=n*val+c, a line with a y-intercept greater than 0. With carefully-chosen values of n and c, I can determine the prices:

5d099faa9e3bd.png


0 comments

Loading...

Next up

Short intro of us 💕✌️

We're an eletro duo based in Seoul 🇰🇷 Heavily influenced by the 90s.

Our new album #Xennials is all about the nostalgia of that era 💽 CD listenin 📟 beeper beepin 💾 floppy disks floppin days 😎

Stream now! 🎧

https://open.spotify.com/album/3YwWhnHWVy5cA8XOpbaGRA?si=8E9awqU…

Successful landing

#screenshotsaturday

Werehog transformation process. #sonicunleashed

What you all think

I-Buki

Mio-Da!

Ibuki Mioda!

Microsoft Windows XP Unprofessional (windows logo prototype)

Rockin the Guitar, an Axe like Guitar I made for my Uni project

Double Rainbow!!!

Annie of the stars

It's old and it glows. Experience the nostalgic tile-matching puzzle game in it's new glory!

Game : https://gamejolt.com/games/colortris/499578

ColorTris gameplay - Peach squares

______________________

Music : https://soundcloud.com/the-musical-ghost/ghost-kozmos-tetris-the…