Pirate's Bounty
Networked Multiplayer Pirate Battle Royale
You helm a small pirate ship locked in fierce naval combat with other players in a small arena. You must prove yourself the greatest pirate by collecting booty to upgrade your ship and blasting your cannons to sink your enemies.
The Game
Pirate's Bounty is a 2-4 player networked multiplayer pirate battle royale made in Unity C# for my junior year Video Game Development Club project. It was the first time that any of us had worked with full-fledged synchronous networking, and it was a memorable experience simply because of that.
The objective of the game was to capture enough spawn points to become the pirate king: upgrading your ship was only a way to help you achieve this task.
The world, as well as the spawn points, were all procedurally generated, and maps could be custom built using a certain set of attributes such as land frequency, resource frequency, and map size. This allowed each game to be fresh, as you could always make a different map if you got bored of one stage.
The Team
The Lessons
I learned a lot about Unity Networking, as well as networking in general, as this project was before I had taken any classes in networking. That being said, this project helped me out a lot in those classes, as I had already dealt with a lot of the problems in those classes by doing this project.
I also learned how networking can take a relatively simple project and turn it into a debugging nightmare. It seemed that everytime we made the slightest of changes in our code, there would be an unbelievable amount of bugs that we would have to address. However, I still think that we ended up with a solid final product despite all the trouble that we faced throughout the year.
This was also my first time programming UI networked elements. There were a lot of issues with syncing certain elements over the network, while keeping some of the other ones local. It was a valuable experience to learn what objects needed to be networked and which ones should stay local in order for it to work properly.
I also learned quite a bit about procedural generation and noise. My friend John (who I have done quite a few projects with) helped Quinn and I develop the procedural map generation system. We also ended up using a beta version of Unity so that we had access to the new TileMap features, which ended up being a bit buggy by the time our project was finished. Still, it was valuable to learn how to use the TileMap feature, as it now works nicely in the newest versions of Unity.