What is the idea? What is the big picture?

Shipwrecked is a co-op pirate party game! The pirate team must work together to protect their ship from hordes of enemies who seek to board their ship and steal their treasures. When coming up with ideas, we knew that we wanted to make a game about a pirate crew, but initially we were leaning toward making a deception game. However, we decided that a more cooperative play style would be more fun for the players. Moving forward with this idea, we drew inspiration from wave based combat games and decided to have our game follow that format.

The big picture for us was learning more about game development and the Unity game engine in particular. Although all of us have prior programming experience, none of us have ever made a Unity project before. So, we saw this as an opportunity to learn and gain new skills. Another skill that we developed was using git for effective source control. Git ended up being very useful in allowing us to develop various features concurrently during the design process. All in all, this hackathon was a great experience for us because we were able to learn the basic concepts of developing a Unity game.

What is the functionality of your project? Is it working to the standards you intended?

The project is built and designed with Unity. The game starts on a main menu screen that allows the player to select whether they want to host a game or join a game. One player will be the host for the game and all the other players can join using the host’s IP. The host will start the game and the players can all join the map. Players are able to move with WASD or arrow keys and attack with their swords using left mouse click. The enemies are just static in the demo. Our goal was to have the enemy AI use an A* Pathfinding algorithm in order to search for players on the ship. Beyond this, we had trouble getting enemies to work over the network.

The game fulfills one of our main goals of getting the multiplayer aspect of the game working so that we could have real time 4 player co-op. However, there do exist some bugs in the movement and collision detection of players, enemies, and objects. In addition, there is currently only one wave of enemies that are preloaded on the ship. We were hoping to end up creating multiple waves and perhaps a boss wave, but had to cut these things because of the time frame.

What was the process like? Any road-blocks you encountered as a team? How did you navigate them?

The process of building our game had both ups and downs. We were able to come together and combine our strengths in the process of building our game. We were also able to use GitHub effectively to be able to work on separate features of the game at the same time in order to make the development process easier and faster. The process of building our game started with building the menus and then working on player and AI movement. Finally, we added networking code in order to add the co-op aspect of the game.

We were met with some roadblocks in the development of our project. A lot of our roadblocks came from us learning the Unity Game Engine as we were creating our project. There are a lot of different aspects of making a game in Unity and it was a little overwhelming at first, but we were able to overcome a lot of these roadblocks through reading documentation and reading forum posts from other Unity users. Another roadblock we faced was that we encountered git merge conflicts during the development of our game. This was primarily because certain files in Unity did not work well with source control. However, we were able to use our knowledge of git to resolve all of the conflicts created in the development process.

If you had more time, how would you have made your project better? What would you have improved or what would you have done differently?

Given more time, we would want to implement multiple waves within the game. Currently, the game only has the first wave of enemies that spawn on the ship with the players. Additional waves would add more content to the game, as well as allow us to implement different enemy types into the game with potentially different tactics to make the gameplay more exciting for the player. Given more time, we would also build sprites and animations completely from scratch rather than using and editing prefabs from the Unity Asset store. This change would allow us to have a little more control over the animations of the sprites and movement scripts of the sprites. We had to write new movement scripts to implement movement in all 4 directions so we had to adjust the animations of the sprites to get as close as possible to what we wanted.

Something we would do differently would be considering networking when we were first creating the movement scripts and editing the animations of the sprites, since for this project we had to rewrite a lot of the movement scripts in order to get the movement working in the co-op setting. With more time, we also would have been able to implement pathfinding for the enemy characters. We also would have liked to implement reskinned controls for the networking library to fit with the style of the menu screen as well as being more intuitive for the player.

Built With

Share this project:

Updates