Tower Defense

Tower Defense
Tools
Resources
Design/Layout
Coding
Features
Audio
Critical Strike
Modification
Launch aims?
- Configuration file
- In-game options menu?
- Instructions on how to mod
creeps/towers.
- Source code
- Text-file for the purpose?
- 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.
- XML?
- If I get way too much time over, consider
making a GUI editor for tower and wave
edits.
- http://pygame.org
- www.ModDB.com
- www.sourceforge.net
- http://phelerox.wordpress.com
- PCGamer?
- Development
- Sourceforge.net
- Launchpad.net
- Music theme?
- Sounds
- Creep dies
- Tower placement
- Projectiles? Might end up noisy
- Gameplay Structure
- 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
- A few nodes the enemies'
must pass before going to the
goal.
- For zombies, these nodes
could be jelly brain stations!
- 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
- 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.
- Levels (spawns)
- Each level
- "Building pause"
- 10 second countdown?
- Instant start upon key press
- Pause countdown-functionality
- Unique creep class
- Customization possibilities
- Health
- Speed
- Armor?
- Cold-resistance
- Poison-resistance
- Vampire (silver-weak)
- Look
- A spawn could contain
randomized looks
amongst it.
- Gold yield
- Types
- Normal
- Boss
- Air?
- Currency
- Gold
- New Towers
- Upgrading Towers
- Experience
- Individual experience for each tower
- Global experience
- Purchasing Global modifiers
- Towers
- Projectiles
- Types
- Silver
- Ice
- Poison
- Area of Effect
- 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.
- AI
- Make it prefer weak enemies, and
secondly enemies closer to the
goal
- Creeps
- 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.
- Sessions
- Pickle (save) game class if
game is shut down
- Specializations?
- 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?^^
- 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.
- More Maps
- With different sets of walls.
Swamps?
- Randomness
- 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.
- Non-deterministic (mathematics) - the same
input to the game does not neccessarily
produce the same end.
- Proposed Tower Types Structure
- Arrow Tower
- Rapid Tower
- Ballista
- Frost Tower
- Ice Tower
- Ember Tower
- Fire Tower
- Aura Tower
- Rapid Fire Aura
- Improved Range Aura
- Damage Boost Aura
- Inspiration
- Hackers and Painters
- "Software Artisan"
- PEP 8
- Practical Tips
for
Independent
Game
Developing
- How to build a game
in a week from
scratch with no
budget
- The four golden rules to
be a better software
developer.
- Game Programming Wiki
- Make Great Shit
- TODO
- Solve the tower-placement
collision issues
- Prevent placing of towers on creeps?
- Pathfinding
- Make creeps unable to move diagonally (at least through towers)
Or??
- Menu
- Items
- Start Game(/Resume?)
- Options
- Fullscreen
- Resolution?
- This affects difficulty, since larger
resolutions result in larger playing-fields and
thus more space in which to maze.
- Modding info?
- Exit
- Point system
- DONE
- Solve the tower-placement
collision issues
- Prevent placing of towers
upon other towers
- Make Creeps and Towers
easy to add
- Resolution
- 600 pixels in height is max, to
be able to work on small
screens.
- Towers 40x40px
- Creeps' movement-precision is 20x20
px so
creeps shouldnt really be
larger, but up to about
30x30 is okay because of
the richer detail.
- Tower Placement
- Ideas
- Tower range
- Transparent representation
- Tower Selection
- Ideas
- Info in right panel
- Info in tooltip upon hover
- Buttons
- 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.
- Sell/Upgrade buttons
- Where?
- At the information box?
- Button tooltips
- Temporary Messages
- Popup text
- Flashy
- Animated upwards, with
random x-direction
- Smaller font over time
- Possibly: Popup text
with neat
background/frame
- Keyboard shortcuts
- Pause (menu??)
- P or Esc or Space?
- Sell button
- S
- Effects
- How to implement blood?
- Start/Goal Look
- Start
- 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.
- Reducing the "click-feast"-effect.
- Queing of tower placement?
- Versatile keyboard shortcuts
- Smart UI-design for tower
purchasing
- Art
- Molotov.nu
- Audio
- Code
- Python - http://python.org
- Pygame - http://pygame.org
- Evaluate the possibility of
using PyOpenGL to do the
drawing
- py2exe - http://py2exe.org
- pygame2exe -
http://www.pygame.org/wiki/Pygame2exe
- Imaging
- Gimp
- Photoshop
- Audio
- Audacity?
- Version control
- Bazaar - http://bazaar-vcs.org
- Instructions
- Tutorial: http://doc.bazaar-vcs.org/bzr.dev/en/mini-tutorial/index.html | A recent version of the game can be found here - https://code.launchpad.net/~baxemyr/+junk/towerdefense
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 http://launchpad.net account (not sure). A development-history can be seen here ( http://bazaar.launchpad.net/~baxemyr/+junk/towerdefense/changes ).
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!
o Due to launchpad, this is not an imminent problem.
- Dropbox
- Description
- * All three developers "share the same folder" through Dropbox.
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?
* 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.
20