Game
Tower Defence Game
6 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

This Satuday we invite to watch another #speedpainting of our artist Daniel Faiad.

How great is this scene of #Pecaminosa?

#ScreenShotSaturday | #IndieDev | #DigitalArt

Been working lately on lots of 'behind-the-scenes' boring stuff that no one really cares about, so here’s a guy playing the sax for some reason.

#screenshotsaturday

"Thanks guys for endless hours of fun." 👍

(My first fan art. Read the article, please.)

#sonic #mario #photoshop

Path of Kami: The Evolution of the Lore

"Our work is never over" they said.

One of the most critical update for Sunblaze demo. Now you are able to pet a cat! Finally!

Alone Together....

Annie of the stars

Respect (Only TLOZ Players Will Understand)