Tower Defense

Get Started. It's Free
or sign up with your email address
Rocket clouds
Tower Defense by Mind Map: Tower Defense

1. Critical Strike

2. Tools

2.1. Python -

2.1.1. Pygame - Evaluate the possibility of using PyOpenGL to do the drawing

2.1.2. py2exe - pygame2exe -

2.2. Imaging

2.2.1. Gimp

2.2.2. Photoshop

2.3. Audio

2.3.1. Audacity?

2.4. Version control

2.4.1. Bazaar - Instructions Tutorial: | A recent version of the game can be found here - Install bazaar, set it up, and type "bzr branch lp:~baxemyr/+junk/towerdefense" in a command-line to fetch the game into your active directory. You may need to create a account (not sure). A development-history can be seen here ( ).

2.5. Dropbox

2.5.1. Description * All three developers "share the same folder" through Dropbox. Pro's: Instant, automatic access to the newest version. No need for manually sending files, and putting it together regularly. Bazaar is simple, but this is simpler for beginners! Unvaluable! Con's: * Risky, since everyone can, by a simple mistake, destroy for all others. How do we minimize this risk? Regular security backups? Could Marco write an automatic script for this? o Due to launchpad, this is not an imminent problem. * It would have been easier to see who has done what if everyone used bazaar instead, but that is demanding a bit too much, and hence only resulting in decreased efficiency.

3. Design/Layout

3.1. Resolution

3.1.1. 600 pixels in height is max, to be able to work on small screens.

3.1.2. Towers 40x40px

3.1.3. Creeps' movement-precision is 20x20 px so creeps shouldnt really be larger, but up to about 30x30 is okay because of the richer detail.

3.2. Tower Placement

3.2.1. Ideas Tower range Transparent representation

3.3. Tower Selection

3.3.1. Ideas Info in right panel Info in tooltip upon hover

3.4. Buttons

3.4.1. Purchasable Towers Where? Mid-right panel Image buttons on side. Clicking "Towers"/"[B]uild" results in a popup widget showing with available towers for selection. The last selected tower is selected by default, and remains placable as long as your gold lasts. Changing selection is possible until the widget is expressly closed.

3.4.2. Sell/Upgrade buttons Where? At the information box?

3.4.3. Button tooltips

3.5. Temporary Messages

3.5.1. Popup text Flashy Animated upwards, with random x-direction Smaller font over time

3.5.2. Possibly: Popup text with neat background/frame

3.6. Keyboard shortcuts

3.6.1. Pause (menu??) P or Esc or Space?

3.6.2. Sell button S

3.7. Effects

3.7.1. How to implement blood?

3.8. Start/Goal Look

3.8.1. Start

3.8.2. Goal/Base A wall surviving 25 enemies' worth of attacks. After one attack the enemy dies from an arrow from the wall. After 25 attacks, the wall is razed, and the 5 occupying humans remains. Each human survives one attack, and an attacking creep is slain after one attack by the rest of the humans. The creep attacking the last human would survive though.

3.9. Reducing the "click-feast"-effect.

3.9.1. Queing of tower placement?

3.9.2. Versatile keyboard shortcuts

3.9.3. Smart UI-design for tower purchasing

4. Features

4.1. Gameplay Structure

4.1.1. Tower Defense-style Variable creep path chosen The creeps cannot walk through a tower, so the player can and should create a maze of towers, and by doing so vastly increasing the distance creeps need to walk from spawn to goal. Pro: The funnier way Con: More challenging to implement in a satisfying way. IDEAS Alternative was: Static creep path The creeps follow a predefined path, with the player building towers on the sides of the path. Pro: Presumably simpler to implement well Con: Less fun than #1

4.1.2. Description Two-dimensional array of tiles, viewed from above. A bunch of creeps spawn at one end of the map, attempting to reach the other. The player has to construct self-autonomous towers in between. The towers automagically fire at the creeps when in range. The creeps cannot walk through a tower, so the player can and should create a maze of towers, and by doing so vastly increasing the distance from spawn to goal.

4.2. Levels (spawns)

4.2.1. Each level "Building pause" 10 second countdown? Instant start upon key press Pause countdown-functionality Unique creep class Customization possibilities Types

4.3. Currency

4.3.1. Gold New Towers Upgrading Towers

4.3.2. Experience Individual experience for each tower Global experience Purchasing Global modifiers

4.4. Towers

4.4.1. Projectiles Types Silver Ice Poison Area of Effect

4.4.2. Making Bridges? Would increase the variation of mazes you could create. For example: Make a circle-maze, and then a bridge starting in the middle of the circle and ending outside it, and then force the creeps to enter the circle in order to get to the goal.

4.4.3. AI Make it prefer weak enemies, and secondly enemies closer to the goal

4.5. Creeps

4.5.1. Categories? For example, a zombie category, Vampire category, dark magician category, evil mercenaries. To each category an unlimited amount of images can be added. Each level in the game uses a category. Categories are intended to be used multiple times during the course of the game. Each wave of enemies are made up from the images in the active category, randomly dispersed to each unit. Each category may have a special trait(s). Example: Vampires are fast, but might be weak against silver. This would make the process of adding more levels to the game much more dynamic, without having to rely on making a new image too.

4.6. Sessions

4.6.1. Pickle (save) game class if game is shut down

4.7. Specializations?

4.7.1. Talent point rewarding system "more Splash damage", "More Slow effect" etc. Allowing faster exp? Rewarded after a couple of levels? each 3-4 levels you get 1 point Allow Critical strikes on a type of tower? Allowing player to spamclick for damage?^^

4.7.2. Adding spells? "Nuke" - Clears the whole map of creep-waves "Slow" - Slows every creep on a certian area/ entire map "Single Bomb" - Hits targeted creep for X amount of damage. Increased by the number of towers on map.

4.8. More Maps

4.8.1. With different sets of walls. Swamps?

4.9. Randomness

4.9.1. Stochastic system - the system's subsequent state is determined both by the process's predictable actions and by a random element. Although, the player is encouraged to plan the maze thoroughly. Through controllable building-pauses and a capable easing User-interface.

4.9.2. Non-deterministic (mathematics) - the same input to the game does not neccessarily produce the same end.

4.10. Proposed Tower Types Structure

4.10.1. Arrow Tower Rapid Tower Ballista

4.10.2. Frost Tower Ice Tower

4.10.3. Ember Tower Fire Tower

4.10.4. Aura Tower Rapid Fire Aura Improved Range Aura Damage Boost Aura

5. Modification

5.1. Configuration file

5.1.1. In-game options menu?

5.2. Instructions on how to mod creeps/towers.

5.2.1. Source code

5.2.2. Text-file for the purpose?

5.3. Text-files for storing Creep/tower attributes. Dynamically loaded on game start - passed along as class parameters and stored in a dictionary. This design decision would make the Creep_1 , _2, _3 classes and so on approach obsolete.

5.3.1. XML? If I get way too much time over, consider making a GUI editor for tower and wave edits.

6. Coding

6.1. Inspiration

6.1.1. Hackers and Painters

6.1.2. "Software Artisan"

6.1.3. PEP 8

6.1.4. Practical Tips for Independent Game Developing

6.1.5. How to build a game in a week from scratch with no budget

6.1.6. The four golden rules to be a better software developer.

6.1.7. Game Programming Wiki

6.1.8. Make Great Shit

6.2. TODO

6.2.1. Solve the tower-placement collision issues Prevent placing of towers on creeps?

6.2.2. Pathfinding Make creeps unable to move diagonally (at least through towers) Or??

6.2.3. Menu Items Start Game(/Resume?) Options Exit

6.2.4. Point system

6.3. DONE

6.3.1. Solve the tower-placement collision issues Prevent placing of towers upon other towers

6.3.2. Make Creeps and Towers easy to add

7. Audio

7.1. Music theme?

7.2. Sounds

7.2.1. Creep dies

7.2.2. Tower placement

7.2.3. Projectiles? Might end up noisy

8. Launch aims?





8.5. PCGamer?

8.6. Development



9. Current Major Ideas

10. Resources

10.1. Art


10.2. Audio

10.3. Code