{"id":15132952,"url":"https://github.com/estevesx10/client-server-multiplayer-game","last_synced_at":"2026-02-13T03:17:15.762Z","repository":{"id":255949677,"uuid":"850418372","full_name":"EstevesX10/Client-Server-Multiplayer-Game","owner":"EstevesX10","description":"Client-Server Multiplayer based Game [Project focused on developing strong foudations on the Client-Server Model using JavaScript, NodeJS and Socket.io]","archived":false,"fork":false,"pushed_at":"2024-09-08T23:27:50.000Z","size":7884,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T17:11:17.176Z","etag":null,"topics":["javascript","node-js","socket-io"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EstevesX10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-31T18:01:58.000Z","updated_at":"2024-09-08T23:27:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"36a2d526-7fef-46f8-8f4c-1577f4397e39","html_url":"https://github.com/EstevesX10/Client-Server-Multiplayer-Game","commit_stats":null,"previous_names":["estevesx10/client-server-multiplayer-game"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EstevesX10%2FClient-Server-Multiplayer-Game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EstevesX10%2FClient-Server-Multiplayer-Game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EstevesX10%2FClient-Server-Multiplayer-Game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EstevesX10%2FClient-Server-Multiplayer-Game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EstevesX10","download_url":"https://codeload.github.com/EstevesX10/Client-Server-Multiplayer-Game/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246096818,"owners_count":20723026,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","node-js","socket-io"],"created_at":"2024-09-26T04:41:53.704Z","updated_at":"2026-02-13T03:17:15.734Z","avatar_url":"https://github.com/EstevesX10.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp\u003e\n\u003cdiv align=\"center\"\u003e\n\n# Client-Server Multiplayer Game\n\u003c/div\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n    \u003cimg src=\"./Client-Server Multiplayer Game/Assets/ClientServerModel.png\" width=\"60%\" /\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Made%20with-JavaScript-A2CEFF?style=for-the-badge\u0026logo=javascript\u0026logoColor=A2CEFF\"\u003e\n    \u003c/a\u003e\n    \u003ca\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Made%20with-Socket.io-A2CEFF?style=for-the-badge\u0026logo=socketdotio\u0026logoColor=A2CEFF\"\u003e\n    \u003c/a\u003e\n    \u003ca\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Made%20with-Node.js-A2CEFF?style=for-the-badge\u0026logo=node.js\u0026logoColor=A2CEFF\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/EstevesX10/Client-Server-Multiplayer-Game/blob/main/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/EstevesX10/Client-Server-Multiplayer-Game?style=flat\u0026logo=gitbook\u0026logoColor=A2CEFF\u0026label=License\u0026color=A2CEFF\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/repo-size/EstevesX10/Client-Server-Multiplayer-Game?style=flat\u0026logo=googlecloudstorage\u0026logoColor=A2CEFF\u0026logoSize=auto\u0026label=Repository%20Size\u0026color=A2CEFF\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/stars/EstevesX10/Client-Server-Multiplayer-Game?style=flat\u0026logo=adafruit\u0026logoColor=A2CEFF\u0026logoSize=auto\u0026label=Stars\u0026color=A2CEFF\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/EstevesX10/Client-Server-Multiplayer-Game/blob/main/DEPENDENCIES.md\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Dependencies-DEPENDENCIES.md-A2CEFF?style=flat\u0026logo=anaconda\u0026logoColor=A2CEFF\u0026logoSize=auto\u0026color=A2CEFF\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n## Project Overview\n\nThis project composes of a **client-server based multiplayer game** where players control ``spaceships`` in a shared universe, engaging in **real-time battles**. The ``goal`` was to create an immersive and competitive environment where ``multiple players`` can **connect**, **control their ships**, as well as partake in strategic **space combat**.\n\nIt focuses on both ``frontend`` and ``backend`` **development**, with special emphasis on **efficient communication between clients and the server**, ensuring a seamless gaming experience for all players.\n\n## Client-Server Model\n\n### Description\nThe ``Client-Server Model`` is composed by:\n\n- A **Client** -\u003e Sends a request to a server over a network\n- A **Server** -\u003e Processes the clients request and sends back a response \n\nThis model forms the ``foundation of cloud computing`` and allows developers to scale infrastructure up or down with **minimal downtime**, as well as deploy applications closer to **end users**.\n\n### How it Works\n\nA ``client`` is an **application that runs on a device** (such as a laptop or smartphone), while a ``server`` is a device that **provides services to the client**.\n\nThe client and server **communicate over** a ``network``, where the **client sends requests** for data or services to the **server**, which processes these requests and then **returns the requested data or services** to the client.\n\nThe ``client/server model`` is used to access **cloud services**, such as **computing power**, **storage**, and **applications**. ``Clients`` can range from **web browsers** to **mobile apps**, and ``servers`` can include **virtual machines**, **containers**, or **serverless functions**.\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n    \u003cimg src=\"./Client-Server Multiplayer Game/Assets/ClientServerModelArchitecture.png\" width=\"50%\" /\u003e\n\u003c/p\u003e\n\n### Limitations\n\nWhile this model has **many benefits**, it presents some ``limitations`` that can affect its **performance**, particularly during ``high traffic`` or demand periods.\n\nOne of the most **significant limitations of the client/server model** is that a server can get **overloaded with requests** from clients, which can cause the server to **slow down or even crash**, resulting in ``downtime or errors``. \n\n## Project Dependencies\n\nBefore proceeding with the ``projects execution``, ensure that you thoroughly review the [Dependencies file](https://github.com/EstevesX10/Client-Server-Multiplayer-Game/blob/main/DEPENDENCIES.md). It provides a **comprehensive description** of the ``Anaconda environment``, including all required **packages** and their specific **versions**. \n\nMoreover, some external dependencies were properly **detailed** within this file, so it's important to **follow the setup steps** carefully.\n\n## Project Execution\n\nTo **start the Web Application** and interact with the project, make sure to execute:\n\n    nodemon backend.js\n\nAnd access the [Localhost](http://localhost:3000/) on port 3000.\n\n## Project Demo\n\n### Home Page\n\nHere's a quick look on how the Home Page of the Web Application looks like.\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n    \u003cimg src=\"./Client-Server Multiplayer Game/Assets/HomePageShowcase.gif\" width=\"100%\" /\u003e\n\u003c/p\u003e\n\n### Game Interface\n\nHere are ``two brief gameplay samples`` showcasing how the interface functions with **two players in the game environment**.\n\n#### Enemy Gameplay\n\nThis next video demonstrates how the ``movements`` and ``projectiles`` of **enemy players** are **updated on the game board** across **other players' devices**, highlighting the game's ``multiplayer features``.\n\n\u003cdiv align = \"center\"\u003e\n \u003cvideo src= \"https://github.com/user-attachments/assets/1f27cc8d-9ddc-487c-89fb-1760d3ff9bca\" /\u003e\n\u003c/div\u003e\n\n#### Player Gameplay\n\nAdditionally, this sample provides an **enhanced view of the game board** and all the players on it, along with a ``leaderboard`` that **updates in real-time** as players eliminate opponents, reflecting their **current scores**.\n\n\u003cdiv align = \"center\"\u003e\n \u003cvideo src= \"https://github.com/user-attachments/assets/34055293-f827-4a97-8290-40a095dfe493\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"right\"\u003e\n\u003csub\u003e\n\u003c!-- \u003csup\u003e\u003c/sup\u003e --\u003e\n\n`README.md by Gonçalo Esteves`\n\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festevesx10%2Fclient-server-multiplayer-game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Festevesx10%2Fclient-server-multiplayer-game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Festevesx10%2Fclient-server-multiplayer-game/lists"}