The middle ages is a period running from 1066 to 1485 and many developments and well-documented history occurred during this time.

It started in the Battle of Hastings (1066), where King Harold II was (disputedly) shot with an arrow in the eye as documented in the Bayeux Tapestry and ended during the Battle of Bosworth and the conclusion of the Wars of the Roses. What does this have to do with a hackathon?

The project

Play as Robin Hood to defend his tower from various waves of goblins, orcs and knights. Enemies drop gold which can be collected and used in the shop to upgrade his bow, tower, and unlock power-ups.

You can see everyone's scores on the global leaderboard to see how well you compare to other players!

Outline

A Pygame tower defence game. The player/tower is located in the middle, with Nottingham's Robin Hood on the top, with his trusty and accurate bow and arrow.

Click-to-shoot enemies from the centre, which come in from the edge of the map. Goblins and orcs begin first, with ever-increasing waves of harder, faster knights and golden knights in later waves

How we built it

The project is built using Pythons Pygame library as well as libraries like requests to handle communications with the online leaderboard made with flask and hosted on a raspberry pi. The game is split into "modules" where each module represents a part of the game, this method of decomposition let us split the work effectively and all contribute to the main game.

Challenges we ran into

2 of the 3 team members had never used Pygame before and we built a very nice looking and somewhat optimised game. This meant the members had to learn Pygame as they go to develop the game. We struggled with collisions between entities and animations for characters and movement of characters to look natural

We also had to spend time balancing the game, after implementing one feature, we would need to re-balance most other features for the game to stay fair.

Accomplishments that we're proud of

Reaching most of our stretch goals including the online leaderboard, the shop and music/sound effects. We enjoyed learning a new library from scratch and quickly organised and modularised the design of our game to allow concurrent development.

What we learned

We quickly realised how useful techniques like pair programming can be to debug critical issues and share knowledge about libraries and python with each other. We found separating data files from code made development and balancing easier and learned about object oriented design in Python.

What's next for Medieval Tower Defence

We aim to work on a dragon fantasy boss fight, world exploration, more detailed upgrades (e.g. no tower -> hut -> archer tower -> keep -> bombard tower -> castle) and time-limited powerups!

Built With

Share this project:

Updates