Skip to main content

Python PyGame Tower Defence - 0.8.7

A TD implemented in python and pygame.


Austin Morgan
(duckfin)
I'm closing the gap to Beta status. I'll be giving this project the Beta tag when it hits version 0.9. I've got a lot of work to go before it gets there, but the game is already quite playable. The basics are typical to Tower Defense games all over.

There are only seven maps thus far, and only three playable. I have not put great effort into balancing them yet, as things change constantly. That said, I played through all of them before releasing this and found them to be fairly spot-on in difficulty, if a bit lacking in variety. Balance will not be a top priority until the Beta, version 0.9.

The art is nowhere close to tops and there is no sound whatsoever. I am neither an artist nor musician. If anyone would like to contribute either, I would happily give credit for your work.

Comments are welcome and encouraged!

Changes

  • Player initialization now slightly streamlined.
  • Explosions now display properly and can be changed to last longer/shorter.
  • Added MainFunctions.selectedTower, containing displays/buttons for a selected tower.
  • Removed PlayerUpgradeScreen. Removed PlayerUpgrades.
  • Icons are now initialized by Towers. Icons fit better into the tray.
  • Sections of the screen are now much more easily differentiated.
  • Removed XPBar. Removed player xp.
  • Added an Infobox for enemies. Put your cursor over an enemy to find info about it.
  • Added support for scaling square size. Changed default square size to 30x30.
  • Far and away simplified tower stats. Now all contained in the Tower class, instead of in player.modDict.
  • Added sidebar for tower info/buttons.
  • Added support for enemies having a "level", both a default for the map, as well as adjustments for individual enemies.
  • Massive changes to player class. Removed most of modDict, as no need. Added better support for saving and loading.
  • Adjusted XP modifiers for simplicity and readability.
  • Only the strongest, active slow-timer affects an individual enemy now.
  • Simplified damage function to enemies.
  • Removed multi-placing towers, the cost associated with such, and all references to modDict from Tower class.
  • Removed ability list, button list, and the need for a reload function from Tower class.
  • Added Runes to the game. Towers are simply vessels that use Runes to attack/heal/etc.
  • Added concept and support for "Support" Runes. Runes which improved or change the effects of other runes.
  • Added Rune slots for towers. Only runes in the primary ("Alpha") slot are Active Runes. All others support that Rune.
  • Added support for certain Runes only fitting in certain slots. Each slot will eventually have certain properties.
  • Added support for a "spare runes" list in player object. Included saving and loading of list.
  • Added the save and load functions to the Tower class. Towers placed are actually saved copies of that Tower from previous games.
  • Removed targeting and acting from Towers in accordance with new paradigm.
  • Added the ability to send the next wave by clicking on the "Send Next Wave" text in the top bar.
  • Added support for increasing a Tower's overall stats.
  • Simplified, clarified, and optimized some Event Functions.
  • Changed Tower regeneration to a tower-specific stat.
  • Added Imprints. Small, random bonuses to an individual Rune, rolled when acquired.
  • Added support for Towers, Runes, and Imprints to give bonuses to finding Runes.
  • Links

    Home Page
    https://sourceforge.net/projects/ppgtd/
    Source
    http://sourceforge.net/projects/ppgtd/files/src087.zip/download

    Releases

    Python PyGame Tower Defence 0.8.0 — 10 Mar, 2012

    Python PyGame Tower Defence 0.8.1 — 14 Apr, 2012

    Python PyGame Tower Defence 0.8.5 — 18 Nov, 2012

    Python PyGame Tower Defence 0.8.3 — 15 Jun, 2012

    Python PyGame Tower Defence 0.5.2 — 25 Feb, 2010

    Python PyGame Tower Defence 0.2.4 — 7 Oct, 2009

    Python PyGame Tower Defence 0.3.5 — 14 Oct, 2009

    Python PyGame Tower Defence 0.2.1 — 6 Oct, 2009

    Python PyGame Tower Defence 0.3.4 — 13 Oct, 2009

    Python PyGame Tower Defence 0.3.2 — 12 Oct, 2009

    Python PyGame Tower Defence 0.2.6 — 8 Oct, 2009

    Python PyGame Tower Defence 0.3.0 — 11 Oct, 2009

    Python PyGame Tower Defence 0.2.2 — 6 Oct, 2009

    Python PyGame Tower Defence 0.5.7 — 1 Apr, 2010

    Python PyGame Tower Defence 0.5.0 — 21 Feb, 2010

    Python PyGame Tower Defence 0.5.1 — 25 Feb, 2010

    Python PyGame Tower Defence 0.7.7 — 28 Jan, 2011

    Python PyGame Tower Defence 0.7.5 — 9 Jan, 2011

    Python PyGame Tower Defence 0.7.6 — 13 Jan, 2011

    Python PyGame Tower Defence 0.5.6 — 14 Mar, 2010

    Python PyGame Tower Defence 0.5.5 — 11 Mar, 2010

    Python PyGame Tower Defence 0.5.3 — 2 Mar, 2010

    Python PyGame Tower Defence 0.5.4 — 9 Mar, 2010

    Python PyGame Tower Defence 0.8.6 — 17 Dec, 2012

    Python PyGame Tower Defence 0.8.7 — 27 Aug, 2013

    Pygame.org account Comments

    • Bemoniri 2012-01-06 14:21

      is there a way to win?:d

      James Lu 2012-06-17 21:56

      me too

    • Dylan Raub 2012-06-16 15:14

      Good to see you are still working on this! Good on ya, mate :D

    • James Lu 2012-06-17 21:55

      i'll upload my music soon
      when i get on win7...
      win 8 i can't do it, i secured it.

    • Steve 2012-06-19 02:20

      Rewards.py is missing from the latest build... I can't get it to run even if I grab Rewards.py from an older build though... will have a tinker with it and see if I can figure out why not...

      Steve 2012-06-19 02:26

       Got it running, that was my fault... but Rewards.py is def. missing

    • Austin 2012-06-19 02:26

      Thanks for the support, Dylan!

      Steve, Rewards.py isn't used in version 0.8.3. I replaced that whole mess with the Player Upgrade Screen, accessed by right-clicking on the XP Bar. If you're getting an import error, just remove the "import Random" line near the top of localdefs.py. I think that's the only one I missed.

      Thanks for all the feedback, guys!

    • A faggot 2012-07-09 12:43

      cool

    • sipiatti 2012-07-10 08:08

      ImportError: No module named Rewards
      It seems one file missed from the zipball?

    • Mich Nannings 2012-11-27 14:49

      it works nice, didnt find any bugs

    • wcb98 2013-10-08 01:30

      Great Game, but can you include python 3 builds?

    • Henry oven 2019-07-27 18:47

      Python is giving error on my laptop. My laptop has really slowed down, I think it has a virus. basketball legends

      Dan Chavarria 2019-07-27 19:01

      It was one of the games you played the most years ago, pyhon. I can't take time off now. get on top