kunjgit / GameZone

This open source repository contains collection of games build on basic tech stacks in web development . Use your creativity and build your own game and contribute to the repository by making PR 🎮
https://kunjgit.github.io/GameZone/
Apache License 2.0
572 stars 830 forks source link

[New game]: Multiplayer Online Snake Game #3487

Closed sujal-98 closed 2 months ago

sujal-98 commented 5 months ago

🎮 Game Request

This multiplayer snake game allows two players to compete against each other in a classic snake game format. Each player controls a snake on a grid, attempting to consume food that appears randomly on the grid. Consuming food makes the snake longer. The objective is to avoid running into the walls or the other player's snake. The game continues until one of the players crashes, resulting in the other player being declared the winner.

Game Logic

Initialization:

When a client connects to the server, a new game state is initialized with two players and a food item placed randomly on the grid. Each player starts with a small snake of three segments.

Game Loop: The game loop runs at a fixed frame rate. In each iteration, the positions of the snakes are updated based on their current velocities. If a snake's head position matches the food position, the snake grows, and a new food item is randomly placed on the grid. Collision checks are performed to see if a snake has run into the walls or the other snake. If a collision is detected, the game ends, and the other player is declared the winner.

Player Input: Players control their snakes using the arrow keys. Each key press changes the direction of the snake's movement.

Multiplayer Functionality The multiplayer functionality in this Snake game is designed to allow two players to connect to the same game server and compete against each other in real-time. The game utilizes Socket.IO to manage real-time, bidirectional communication between the clients (players) and the server.

Key Features of Multiplayer Functionality Real-Time Communication: The server and clients communicate in real-time using WebSockets, facilitated by the Socket.IO library. This allows for instant updates and interactions between players. Simultaneous Player Control:

Each player can control their snake independently using keyboard inputs (arrow keys). The server listens for these inputs and updates the game state accordingly. Game State Synchronization:

The server maintains the authoritative game state. It continuously updates the state based on player inputs and game logic, then broadcasts the updated state to all connected clients. This ensures all players see the same game state simultaneously.

Point down the features

Game points-

Select program in which you are contributing

Other

Code of Conduct

kunjgit commented 5 months ago

Hey @sujal-98 ! Thank you for raising an issue 💗 You can self assign the issue by commenting /assign in comment 😀 Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀 Don’t Forget to ⭐ our GameZone🎮 Make sure you join our Discord🕹️

sujal-98 commented 5 months ago

/assign

kunjgit commented 2 months ago

Hello @sujal-98, Time's up!⏰ Sorry for closing your issue! But it's more than a week since we haven't received anything from your side 😢 . Come up with new ideas, create a new issue and make sure you finish it within a week! 🔥 All the best! 🚀 Happy Hacking! 💗

kunjgit commented 2 months ago

Hey @sujal-98 ! Thank you so much for your raising the issue💗 It’s all yours, you can come anytime again and make some contributions! 🚀 Alone, we can do little, but together we can do so much! 😇