/not-agar

A https://agar.io/ clone written in Go with WebSockets as communication protocol

Primary LanguageGo

Agar.io Clone

Welcome to the GitHub repository for my personal project, a clone of the popular game Agar.io. This project aims to replicate the addictive gameplay of Agar.io while exploring and implementing a custom binary protocol for efficient data serialization and deserialization between JavaScript and Golang.

Features

  • Custom Binary Protocol: Utilizes a custom-built binary protocol for communication between the client and server, ensuring fast and efficient data handling.
  • Cross-Language Serialization: Features custom serialization and deserialization techniques that work seamlessly between JavaScript (client-side) and Golang (server-side).
  • Advanced Game Logic: A significant portion of the game logic has been implemented, closely mimicking the original Agar.io gameplay mechanics.

Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository:
git clone https://github.com/diyor28/not-agar.git
cd agar-clone
  1. Install JavaScript dependencies:
cd front
yarn
  1. Run the server:
cd back/
go run ./src
  1. Start the client:
yarn start

This will launch the game client in your default web browser.

Architecture

This project is divided into two main components:

  • Client: Written in JavaScript, the client handles user interactions, rendering, and communication with the server.
  • Server: The server, written in Golang, manages game state, player interactions, and executes game logic.

Contributing

Contributions are welcome! If you have suggestions for improvements or bug fixes, please open an issue or submit a pull request.

License

This project is open source and available under the MIT License.

Contact

If you have any questions or want to get in touch, please send an email to diyor_khaydarov@iota.uz.