Skip to content

VjiaoBlack/shape-defense

Repository files navigation

Shape Defense

Shape Defense is a top-down tower-defense-based game written solely with C++ and SDL2. It's partly an exercise in game engine architecture design; partly an exercise in optimization; and partly an exercise in game construction :)

Feel free to contribute; just send me a message (preferably), or a pull request directly.

Dependencies List:

  • C++17
  • SDL2
    • SDL_Image
    • SDL_TTF
  • CMake

Tools Used:

  • valgrind
  • gdb
  • CLion
  • CMake
  • gnuprof

Feature List:

done, [n] future work

  • Game
    • Main Menu
    • Gameplay
      • Towers
        • Can build towers
        • [n] can repair towers
        • [n] can destroy towers
      • Resource system
        • Can have and spend resources
        • [n] can have buildings that modify resource usage / storage
      • [n] Upgrade system
      • Balancing
        • Has a few types of towers, one type of enemy
        • [n] More types of towers and enemies
  • Engine (very roughly an Entity-Component-System design)
    • Physics
      • efficient quadtree-based collision system
    • Graphics
      • Can render entities efficiently
      • [n] Can render entity types
      • [n] Can move the camera around smoothly
    • [n] Audio
    • Basic AI
      • Enemies go towards closest player entity and will attack
      • [n] "heuristic grid" of best places to go towards, i.e. around walls
    • [n] Advanced AI
      • [n] Limited enemy view range
      • [n] "Alive" enemies
    • [n] I/O
      • [n] serialization / deserialization
    • UI
      • Have buttons, menus, etc.
      • Supports drawing from text files
      • [n] Easily supports drawing from images
  • Misc
    • [n] Write Wiki / Documentation
    • [n] Plan out game design and engine design
    • [n] write unit testing system

Known bugs:

  • [n] no unit testing system: whoops, this is pretty important actually
  • [n] Quadtree: sometimes, the quadtree system seems to "lose" elements, where elements don't seem to be where we expect them to
  • [n] entity lifetimes: needs checking

About

TD for shapes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages