Skip to content

Commit

Permalink
chore: update doc (#278)
Browse files Browse the repository at this point in the history
* chore: update version

* fix: udp protocol documenation has been updated with all the newest command

* chore: update readme me with new args

* feat: new documentation have been added on header file of the lib

* fix: documentation file has been fixed with the Timeout Manager

* chore: update dev doc

* style: lint doc

* style: format

---------

Co-authored-by: NicolasAlx <nicolas1.alexandre@epitech.eu>
  • Loading branch information
ManuelR-T and Nicolasalx authored Nov 2, 2024
1 parent a717e32 commit e91b68e
Show file tree
Hide file tree
Showing 31 changed files with 1,007 additions and 127 deletions.
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ add_subdirectory(server)
set(CPACK_PACKAGE_NAME "RType")
set(CPACK_PACKAGE_VENDOR "UnrealEngine")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "RType Game engine")
set(CPACK_PACKAGE_VERSION "0.1.3")
set(CPACK_PACKAGE_VERSION "0.2.0")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "3")
set(CPACK_PACKAGE_VERSION_MINOR "2")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "RType")

set(CPACK_GENERATOR "TGZ;ZIP")
Expand Down
81 changes: 55 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# R-Type Multiplayer Game Engine (ECS-based)

[![Linux/Windows](https://github.com/ManuelR-T/R-Type/actions/workflows/my_cppaction.yml/badge.svg)](https://github.com/ManuelR-T/R-Type/actions/workflows/my_cppaction.yml)
[![Documentation](https://github.com/ManuelR-T/R-Type/actions/workflows/doxygen-gh-pages.yml/badge.svg)](https://github.com/ManuelR-T/R-Type/actions/workflows/doxygen-gh-pages.yml)
[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)

![](docs/main.png)
![Game Image](docs/main.png)

## Table of Contents

Expand All @@ -16,89 +17,117 @@
- [Unzip the Downloaded File](#unzip-the-downloaded-file)
- [Run the Binaries](#run-the-binaries)
- [Commands](#commands)
- [Troubleshooting] (#troubleshooting)
- [License](#license)
- [Authors / Contacts](#authors--contacts)
- [Useful Links / Quick-Start Information](#useful-links--quick-start-information)
- [Contributing](#Contributing)
- [Contributing](#contributing)

## Project Purpose

This project is a game engine built using an Entity-Component-System (ECS) architecture, offering scalability and flexibility for managing game objects and systems. Included around this engine is an existing implementation of the classic R-Type arcade game with a focus on multiplayer gameplay.

## Requirements / Supported Platforms
### Requirements:

### Requirements

There are no dependencies required for users as all necessary components are included in the release.

### Supported Platforms:
### Supported Platforms

- **Linux**
- **Windows**

## Usage Instructions

To use the game engine and play the R-Type implementation, follow these steps:

### Download the Latest Release:
### Download the Latest Release

Visit the [Releases page](https://github.com/ManuelR-T/R-Type/releases) of this repository.
Download the appropriate zip file for your operating system (e.g., `Rtype-windows.zip` or `Rtype-linux.zip`).
Download the appropriate zip file for your operating system (e.g., `Rtype-{version}-Windows.zip` or `Rtype-{version}-Linux.tar.gz` where `{version}` represents the version of the game e.g., `0.2.0`).

### Unzip the Downloaded File

### Unzip the Downloaded File:
- Windows:
Right-click the downloaded `.zip` file and select `Extract All...`
- Linux:

```bash
unzip Rtype-linux.zip -d R-Type_Server
```

**Note**: If you are a developer, you may want to build the project yourself, you find the tutorial on the [developer documentation](docs/developer-documentation.md#build-the-engine).

### Run the Binaries:
### Run the Binaries

- Client:

```bash
./r-type_client -i <server_ip> -p <server_port> -pn <player_name>
```
- Example:
```bash
./r-type_client -i 127.0.0.1 -p 8080 -pn Player1
```

- All arguments accepted:
```
Available arguments:
-i, --ip (string) [required] : Server IP address
-p, --port (int) [required] : Server port
-pn, --player_name (string) [required] : Player name
-h, --help (bool) [optional] : Print this help message
```

- Example:

```bash
./r-type_client -i 127.0.0.1 -p 8080 -pn Player1
```

- All arguments accepted:

```txt
Available arguments:
-i, --ip (string) [required] : Server IP address
-p, --port (int) [required] : Server port
-pn, --player_name (string) [required] : Player name
-h, --help (bool) [optional] : Print this help message
```

- Server:

```bash
./build/r-type_server
./build/r-type_server -p <server_port>
```

- Server in debug mode:

```bash
./build/r-type_server --debug
./build/r-type_server -p <server_port> -d
```

- All arguments accepted:

```txt
Available arguments:
-p, --port (int) [required] : Server port.
-d, --debug (bool) [optional] : Enable debug mode.
-h, --help (bool) [optional] : Print this help message
```

### Commands

Use the `arrow keys` to **move**

and the `space bar` to **shoot missiles**
and the `space bar` to **shoot beams**

## Troubleshooting

On some version of windows you might want to install yourself openAl from their [website](https://www.openal.org/downloads/)

## License

This project is licensed under the **MIT License**.

## Authors / Contacts

- [Thibaud Cathala](https://github.com/thibaudcathala)
- [Manuel Tomé](https://github.com/ManuelR-T)
- [Rahul Chander](https://github.com/RahulCHANDER25)
- [Nicolas Alexandre](https://github.com/Nicolasalx)


## Useful Links / Quick-Start Information

Entity-Component-System (ECS) explanation: https://en.wikipedia.org/wiki/Entity_component_system
Entity-Component-System (ECS) explanation: <https://en.wikipedia.org/wiki/Entity_component_system>

## Contributing

Expand Down
23 changes: 19 additions & 4 deletions docs/developer-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

This document provides an overview of the project to help new developers get acquainted with its structure and functionality. The focus is on practical information to understand the project broadly, rather than delving into the minutiae of the code. This documentation aims to provide a clear understanding of the project's architecture, main systems, and development guidelines.


## Architectural Overview

This project is built around an Entity-Component-System (ECS) architecture, which separates concerns into entities (game objects), components (data associated with entities), and systems (logic that processes entities with specific components). This provides flexibility and scalability, particularly important for managing the complexity of multiplayer game logic.

## Architectural Diagrams

- **Overview Diagram**:

```mermaid
graph TD
A[Client Subsystem] --> |Uses| RTYPE-ECS
Expand All @@ -38,7 +38,7 @@ graph TD

- **Subsystem Diagrams**:

![subsystems Diamgram](subSystems.png)
![subsystems Diagram](subSystems.png)

## Deep Dive

Expand All @@ -48,7 +48,8 @@ Don't hesitate to check the [doxygen documentation](https://manuelr-t.github.io/

### Build the engine

#### Dependencies:
#### Dependencies

To install the required dependencies on **Ubuntu** or any Debian-based system, run the following commands:

```bash
Expand All @@ -70,27 +71,34 @@ sudo apt-get install -y \
```

#### Requirement

- C++20 or higher compiler
- CMake for build configuration (3.1 or higher)
- Network connectivity for multiplayer mode

#### Build

- Clone the repo

```bash
git clone git@github.com:ManuelR-T/R-Type.git
cd R-Type
```

- Generate build files using CMake:

```bash
mkdir build
cd build
cmake ..
```

- Build the project:

```bash
make
```

Alternatively, you can build with:

```bash
Expand All @@ -99,6 +107,13 @@ sudo apt-get install -y \

And from now on you can follow the [Readme tutorial](../README.md#run-the-binaries) on how to use the binaries

### Mod the Game

- Modify a stage

There is 10 stages in R-Type that can be found here: `assets/stages/`
You can modify as you want to spawn other entity, at an other place etc...

### Mod the engine

- How to Add a New Entity
Expand Down Expand Up @@ -128,4 +143,4 @@ And from now on you can follow the [Readme tutorial](../README.md#run-the-binari
}
```
3. Register the system so that it gets processed.
3. Register the system so that it gets processed.
Binary file modified docs/main.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit e91b68e

Please sign in to comment.