Inspiration

We were inspired by the idea of having fun in this Hackathon. It may not be specific to the theme of making something boring more enjoyable, but we wanted something competitive that people could face off against their friends in.

What it does

Hosted on the cloud, it allows people to join from all over the world into a matchmaking page where they can enter their name (or a fake one, it is the internet after all). After this, the player will be placed into a queue, waiting for someone else to join and compete in an epic battle of projectiles and bright flashing lights.

How we built it

This was built using Node.js, React, and Matter. These work together to create the web page seamlessly and add physics through the use of Matter to make collisions and everything else more interesting. Docker and Digital Ocean are then used to permit easy access both for others and for us in developing it to constantly role out new features.

Challenges we ran into

We ran into many challenges in creating this. First off, running this both on the client and the server had its drawbacks. Numerous times the client would show one thing and the server another and vice versa. This led to lots of time spent debugging the system and working between the client and server to ensure that everything transferred smoothly and appears visually sound.

Accomplishments that we're proud of

We are the proudest of implementing a project where the client and server work together and communicate to make one cohesive product. This was a great struggle for us at the beginning, so it finally coming together and then being able to add a bunch of features (and hopefully more later) was very relieving.

What we learned

We learned a lot about different Javascript frameworks as mentioned above and how they relate to creating web applications. We also learned how to work with a physics engine to deal with collisions and keep track of interactions between projectiles and the players.

What's next for The Phantom Bullet

We hope to implement a Database in the backend of this to help us keep track of a global leaderboard so people can spend their days working to be the best Phantom Bullet player ever.

Share this project:

Updates