Welcome to SharkTanks! It is an online multiplayer game that allows multiple players to play together over the internet with each other. Even if there is no one around to play, we have implemented a bot that can work as an additional player. This game is open-sourced, so feel free to create issues to add features or fix bugs. If you find the project interesting, please consider giving it a star!
We were inspired to build an online multiplayer game because we are fans of video games and the idea of being able to play with others from across the world really excites us.
Click here to play the game!
We used the following technologies to build the game:
- HTML and CSS for the landing page
- Three.js, Express.js and Node.js for the game environment and the backend
- Railway.app for hosting
- Socket.io for the real time communication between the players and the server
We encountered a few challenges while building the game. Some of them are listed below:
- Network Latency: In the beginning, we were using rendered tanks which caused a lot of lag in the gameplay.
- Server Scalability: As more players joined the game, the game server was overloaded and unable to handle the increased traffic. This caused a decrease in performance and a bad user experience.
- Page Overrides: The index page was being overridden by the canvas of the game, and we had to make a few changes in the particular layouts to avoid this.
- Function Workability: The function for counting the hits so that the damage on the tank could be noted was not working properly, but we performed a few debug techniques and fixed it.
There are several evolutionary changes planned for SharkTank, such as:
- Adding rendered objects to make it look better
- Giving rendered objects functionality, for example, moving, transforming, etc.
- Implementing and improving security aspects
- Assigning separate user accounts so that players can keep track of their achievements and develop their ability accordingly.
- Changing environments and much more
To run this project locally, follow these steps:
- Install Node.js on your system from here.
- Clone this GitHub repository:
git clone https://github.com/kpatel0170/SharkTanks
- Open the terminal and navigate to the "SharkTanks" folder.
- Run the command
npm install
to install dependencies. - Run the command
node server.js
. - Run the
public/index.html
in browser.
- Clone this repository to your local machine:
git clone https://github.com/KlausMikhaelson/SharkTanks-Debug_Thugs.git
- Change into the project directory:
cd SharkTanks-Debug_Thugs
- Build the Docker image:
docker build -t sharktank .
- Start the Docker container:
docker run -d -p 3001:3001 sharktank
- Your project should now be up and running, accessible at http://localhost:3001 in your web browser.
- Make sure that Docker is installed and running on your machine before attempting to deploy this project with Docker.
- This project's Dockerfile assumes that all dependencies are included in the project directory. If you need to install additional dependencies, update the Dockerfile accordingly before building the Docker image.
To contribute to SharkTanks, follow these steps:
- Fork this repository.
- Clone your forked repository to your local machine.
- Create a new branch:
git checkout -b my-new-feature
. - Make your changes and commit them:
git commit -am 'Add some feature'
. - Push your changes to the branch:
git push origin my-new-feature
. - Submit a pull request.
We welcome pull requests from everyone. Please ensure your pull request adheres to the following guidelines:
- Explain the problem your pull request solves.
- Make sure your changes are well-tested and documented.
- Ensure your code follows the coding conventions and standards used in the project.
- Ensure your code is properly formatted using Prettier.
- Make sure your commits are descriptive and have a clear message.
Read more on creating a pull request from a fork here.
If you find any issues with SharkTanks, please submit them through the GitHub Issues page. When submitting an issue, please provide the following information:
- A clear and descriptive title.
- Steps to reproduce the issue.
- Expected behavior.
- Actual behavior.
- Screenshots or code snippets (if applicable).
This project is licensed under the MIT License.
This game was created by:
Klaus(Satyam) 💻 |
Om Dalwadi 💻 🖋 |
Kartik Patel 💻 |
Zac 🎨 🖋 |
If you have any questions or feedback, please feel free to reach out to us. Thank you for checking out SharkTanks!