I wrote this game as my final project for Harvard's course, CS50, and I'd call it my first program written completely independently. It helped me get a sense of how to transition to object-oriented programming, as opposed to the procedural programming I'd learned up to that point. Twisted Towers is a tower defense style game that I wrote with Python's Pygame library.
How to play
The goal of the game is to build and upgrade towers to shoot at the oncoming horde of enemies traveling along the path toward your castle. If an enemy is able to reach your castle, they will damage your castle. Take enough damage and the castle will fall and everyone in it will perish! So build those towers! You can build towers by clicking the dirt patches on the ground, then clicking the circle that appears next to it. You can then upgrade towers (up to 2x) into elemental towers by clicking the circle located the tower's base and clicking the elemental circle of your choice. Once constructed, towers will automatically fire at passing enemies.
Earn money by killing monsters and use that money to build and upgrade more towers to continue fighting off the horde. Survive long enough for the hero mage to rally to your cause to win the game. You can learn more about enemy types and tower types using in game menus from the home screen. Furthermore, if you find things a bit too difficult or too easy, you can adjust difficulty settings from a menu off the home screen as well. For a quick overview with visuals, you can check out my video below where I explain the game for the final project of my class.
How to get the game
Twisted towers is a desktop application run as a .exe file. To play, download the game as a zip file using the link provided below. Then, extract the files and open the "Game Files" folder. Within this folder is a file named "main.exe" (not main.py). Click this program to run the game.
Unfortunately, I wrote this game with fixed dimensions without considering smaller monitors (doh!). The game requires a computer (not phone) with a monitor height of 760 pixels or greater to display properly (otherwise the bottom of the screen is cut off).