Our game is a multiplayer adaptation of the well-known 2D snake game. The aim of the project was to make a short fun game in which players can easily sign onto and challenge each other in a competitive game, and have their scores shown on a leader board which others can try and beat.
Note: You will need a minimum of 2 players to start a game
Direction | Key | Alternative Key |
---|---|---|
Up | W | Up Arrow Key |
Down | S | Down Arrow Key |
Left | A | Left Arrow Key |
Right | D | Right Arrow Key |
Note: instructions have been laid out on README-dev.md, but we are explaining them here as well just in case you missed it
- Fork, then clone this project, or alternatively, download it as zip, then run the following in the terminal at the project's root directory:
- npm i or npm install
- SET DB_Host=localhost
- SET DB=snake_game
- SET DB_user=root
- SET DB_pass=root
- Next step is to spin up a MySQL instance and have it serving on any port. We used XAMPP for this.
- Once you have done the above, run "npm start" in the project's root directory
- Open any browser of your choice, and type in "localhost:3000" in the address bar.
At this point you should see the game's sign-in page. Which means you have done all the above steps correctly!
The game gives you a feeling of the retro classic 2D snake game. It has been designed to look like its ancestor while still feeling modern. The choice of arcade music fits the 90’s era vibe that the game is going for. It contains a leaderboard with every players' wins so that there is a sense of competition among new and continuing players alike. On winning, the game gives you a banner declaring you as a champion, giving you a sense of accomplishment.
- We have adopted a server authoritative system, where all of the game's logic is processed on the server. We hope that this will help prevent cheating and ruining other player's experiences, as any important decision in the game is taken by the server
- The client only receives the state of the game from the server and renders it on their machine. All the CPU intensive processes are done on the server.
- While player's can host the game themselves and play in a peer-to-peer environment, the official game has dedicated servers where players can expect a more consistent network experience
Name | Github Handle | Role |
---|---|---|
Farhan Fiaz | farhansolodev | Lead Developer, Designer and Project Manager |
Mahmoud Aoude | MahmoudAoude | Lead Developer, Designer and Project Manager |
Luke Mason | LukeCMason | Assistant Game Developer |
Shoaib Khan | DeathCall1O1 | Database Designer and Assistant Backend Developer |