Inspiration
We were inspired by the idea of pirates attacking trade routes, and decided to do the opposite, by having turrets that protected trade routes from incoming pirates. We were also inspired by the tower defense genre, which has declined in popularity, but it is still an influential game genre today. These two factors inspired us to merge the two together in our game.
What it does
Pirate Defense is a tower defense game. Enemy pirate ships follow a set track of waypoints to come towards your trade route, and if they arrive at your trade route, you lose health. You start with a single turret, which automatically shoots projectiles at the ships to harm and sink them. Every time a ship is sunk, you gain money, which allows you to buy more turrets and sink more ships faster and more effectively.
How we built it
We built this project by initially coding movement of the ships. This was done by creating a list of waypoint transforms, which the ships move towards. Then, we finished all necessary aspects of the ship, and then moved to code the turret class. This was started by coding all necessary fields, and then by coding a projectile class to be fired from the turret towards ships. After this, we split into two by working on the shop. Two of us worked on actually getting the input system to spawn turrets where clicked, and one of us coded the HUD. After this, we coded in a gradual increase in difficulty as you progress in the game, and with that our time was done. During all of this, we were doing sprite design, making the sprites that have been implemented into the final game.
Challenges we ran into
One challenge we ran into was sharing files. We didn't have any knowledge of GitHub, so instead we ended up sharing scripts as text files over email. This was inefficient and didn't cover anything in the Unity inspector, so it wasted a lot of our time. Eventually, we pivoted to coding at the same time on Google Docs, and then copying the code to individual Unity projects before consolidating it into a final project. Another challenge we ran into was the Unity input system. It didn't really work well for us, wasting a lot of our time coding inputs. Finally, we were definitely challenged by the clock. Time kept ticking, and especially when we had to nearly pivot entirely after we got home yesterday, it was hard to manage time, causing lots of stress and us to drop a lot of planned features of our game.
Accomplishments that we're proud of
We're proud of the fact that we made a functional game in the limited time we had. We pivoted our entire project halfway through, so we're really proud that we got something together so fast. We're also proud of our sprite design. None of us are really artists, so we're proud of our sprite design in this game. Finally, we're proud of our shop mechanic. It took a lot of time to implement properly, especially with changing the buttons for the individual tower's stats and ensuring that the input system was functional. We're proud of all of these accomplishments, because they showcase our ability to work under pressure and helped us build our coding skills in Unity.
What we learned
We learned a lot about Unity in this project. We came into this hackathon complete beginners in Unity, and we created a whole functional game in the limited time we had. More specifically, within Unity we learned a lot about how prefabs work and how to properly implement an input system. These both were somewhat crucial to our game, so we're really glad we learned about these during this hackathon.
What's next for Pirate Defense
Something that's next for Pirate Defense is to create different tracks. Currently, while we do have multiple waves, scaling up difficulty as the game progresses, we feel that we could make our game more advanced with different track layouts, allowing for a greater variety in gameplay over time. These would be the first things we would add to Pirate Defense, but there's plenty more that we could add to the game in the future.
Log in or sign up for Devpost to join the conversation.