Skip to content

fairlycodeparents/agar-ds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Agar.io 🦠

Game Overview

The repository contains a part of the third assignment of the Concurrent and Distributed Programming course (Master's Degree in CSE @ Unibo). Agar.io is a popular multiplayer online game where players control a circular cell in a 2D environment (see Wikipedia), where the primary goal is to grow larger by consuming two types of entities:

  1. Food Pellets: Small, static, randomly scattered pellets that increase a player's mass when consumed.
  2. Other Player Cells: Players can consume other, smaller player cells.

Requirements

  • The game is always active: players can join at any time and immediately start playing.
  • Players can be located on different nodes (from akka's cluster perspective) and must be able to join or leave dynamically (distributed player management). Each player should have their own LocalView.
  • When a player consumes food, that food must be removed for all players in the system (distributed food management).
  • Every player must have a consistent view of the world, including the positions of all players and food (consistent world view):
    • No player should see another player or food that is not visible to others.
    • No two players should see the same food in different positions.
  • Food is generated randomly and distributed across nodes, and new food must be visible to all players (distributed food generation).
  • The game ends when a player reaches a specific mass (e.g., 1000 units), and this end condition must be checked and enforced in a distributed way for all players (distributed game end condition).

Documentation

Within the documentation directory, you will find a concise report (in Italian) detailing all the design and implementation decisions made during the development process. In particular:

  • A brief analysis of the problem, focussing on the concurrent aspects.
  • A description of the adopted design, strategy and architecture.

About

🦠 A clone of the Agar.io game, realised as distributed programming project.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages