Game
Tower Defence Game
8 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โ€ฆ

Smile! Here, take some happy pills! โœจ๐Ÿ’Š #Blender #3DModelling #3DArt Buy me a Ko-fi: https://ko-fi.com/barbarafb_

So here's the first of the zodiac signs i will make for the next weeks.

Back in my art school days I used to ride the 710 COPSA line from Parque Del Plata to Montevideo almost everyday. This is the Marcopolo Viaggio G4 Mercedes Benz model from the late 80s, one of the older bus models that was running on the line.

A Shiny Mega Gengar ๐ŸŒŸ For @ManutkArt 's #ThreeColorsChallenge!

A house I've built a while ago. :)

It nicely separates the snowy biome from the grassy one.

It's built with painted Ebonstone.

Shuiro Haname. #Commission

Commission for @ShuHaname

An infected room from the second part of Cybel ! Are you up for some cleansing?

If you have more of an acquired taste, the restaurants in Niravasi have you covered! Maybe skip the salad bar, though.