XilonenImpact/README.md

78 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

2024-08-26 10:38:25 +00:00
# MualaniImpact
2024-08-26 21:25:36 +00:00
### Current game version: 5.0.0
2024-08-26 10:38:25 +00:00
2024-08-26 12:29:56 +00:00
![screenshot](https://git.xeondev.com/ReversedRooms/MualaniImpact/raw/branch/master/screenshot.png)
## What
**MualaniImpact** is an **open-source project reverse-engineering Genshin Impact server binaries**. This means that all logic and architecture code is being reimplemented according to decompiled pseudocode of official servers.
## How
The original server binaries are written in C++. This project aims to rewrite them in rust. Because of that, some implementation details may be different (due to rust ownership model and so on).<br>We also use PostgreSQL instead of MySQL that is used by miHoYo.
## Implemented services
- Dispatch
- Gateserver
- Dbgate
- Gameserver (work-in-progress)
- SDKServer (not part of game-specific services, but required for authentification, emulates miHoYo account API)
## Getting started
#### Requirements:
- [Rust](https://www.rust-lang.org/tools/install)
- [PostgreSQL](https://www.postgresql.org/download/)
- [Redis](https://redis.io/downloads/)
##### NOTE: if you are using MS Windows, use [this version of Redis](https://github.com/tporadowski/redis/releases)
### Setup
#### Server
##### a) building from sources
```
git clone https://git.xeondev.com/ReversedRooms/MualaniImpact.git
cd MualaniImpact
cargo run --bin sdkserver
cargo run --bin dispatch
cargo run --bin dbgate
cargo run --bin gateserver
cargo run --bin gameserver
```
##### b) using pre-built binaries
Navigate to the [Releases](https://git.xeondev.com/ReversedRooms/MualaniImpact/releases)
page and download the latest release for your platform.<br>
Launch all services: `sdkserver`, `dispatch`, `dbgate`, `gateserver`, `gameserver`
##### NOTE: you don't have to install Rust if you're going to use pre-built binaries, although the preferred way is building from sources.<br>We don't provide support for pre-built binaries.
#### Configuration
You should configure each service using their own config files. They're being created in current working directory upon first startup.
##### Database section
You have to specify connection strings for **PostgreSQL** (`connection_string`) and **Redis** (`redis_url`)
```
[database]
connection_string = "postgres://postgres:@localhost:5432/hk4e"
redis_url = "redis://127.0.0.1/"
```
##### Application entries
If you're going to host all services locally, you don't have to modify anything here.<br>If you're deploying services on different machines, you have to configure their `inner_ip`.<br>Every service should have its own unique `app_id`<br>Example of application entry for `Gateserver`:
```
[[applications.Gateserver]]
app_id = 2
inner_ip = "127.0.0.1:22002"
```
##### NOTE: the top most `app_id` line (before application entries) specifies `app_id` of current service.
#### Data
The data files: TSV tables (`data/txt`) and JSON configs (`data/json`) are included in this repository. Keep in mind that you need to have the `data` subdirectory in current working directory.
#### Connecting
2024-08-26 21:25:36 +00:00
You have to download client of **current supported game version** (at this moment it's 5.0.0, you can [get it here](https://git.xeondev.com/YYHEggEgg/GI-Download-Library/src/branch/main/GenshinImpact/Client/5.0.0.md)), and apply the [encryption patch](https://git.xeondev.com/reversedrooms/hk4e-patch/releases).
2024-08-26 12:29:56 +00:00
##### NOTE: once you got all services up and running, you have to create game account.<br>By default, you can do so at http://127.0.0.1:21000/account/register
### Troubleshooting
[Visit our discord](https://discord.gg/reversedrooms) if you have any questions/issues
### Support
2024-08-26 21:25:36 +00:00
If you want to support this project, feel free to [send a tip via boosty](https://boosty.to/xeondev/donate)