Skip to content

Client-Server Multiplayer based Game [Project focused on developing strong foudations on the Client-Server Model using JavaScript, NodeJS and Socket.io]

License

Notifications You must be signed in to change notification settings

EstevesX10/Client-Server-Multiplayer-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Client-Server Multiplayer Game


Project Overview

This 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.

It 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.

Client-Server Model

Description

The Client-Server Model is composed by:

  • A Client -> Sends a request to a server over a network
  • A Server -> Processes the clients request and sends back a response

This 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.

How it Works

A 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.

The 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.

The 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.

Limitations

While this model has many benefits, it presents some limitations that can affect its performance, particularly during high traffic or demand periods.

One 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.

Project Dependencies

Before proceeding with the projects execution, ensure that you thoroughly review the Dependencies file. It provides a comprehensive description of the Anaconda environment, including all required packages and their specific versions.

Moreover, some external dependencies were properly detailed within this file, so it's important to follow the setup steps carefully.

Project Execution

To start the Web Application and interact with the project, make sure to execute:

nodemon backend.js

And access the Localhost on port 3000.

Project Demo

Home Page

Here's a quick look on how the Home Page of the Web Application looks like.

Game Interface

Here are two brief gameplay samples showcasing how the interface functions with two players in the game environment.

Enemy Gameplay

This 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.

EnemyGameplayShowcase.mov

Player Gameplay

Additionally, 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.

PlayerGameplay.Showcase.mov

README.md by Gonçalo Esteves

About

Client-Server Multiplayer based Game [Project focused on developing strong foudations on the Client-Server Model using JavaScript, NodeJS and Socket.io]

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published