Built with C# 9 and the .NET 5.
This project has been created for learning purposes about the network and game logic problematics on the server-side.
We choose to use the Sylver.Network to manage our server connecitions because it provides a clients management system and also a robust packet management system entirely customisable.
Technical information • Features • How To's • Contributing • Contributors • Supporters • License
Project | Status |
---|---|
Login Server |
|
Cluster Server |
|
World Server |
- Language:
C#
9 (latest) - Framework:
.NET 5
- Application type:
Console
withDocker
support - Database type:
MySQL
- Configuration files type:
JSON
- Environment:
Visual Studio 2019
- External libraries used:
Please take a look at our contributing guidelines, if you're interested in helping!
Before getting started, you will need to install the following softwares:
- Visual Studio 2019
- Docker, Docker-Compose, Docker Desktop (if running on Windows)
- Any MySQL database explorer (MySQL Workbench for example)
The solution is configured to run with Linux containers.
Once you have checked out the repository source code, go to the root directory of the repository and type the following command in a PowerShell
command prompt and follow the instruction to setup your development environment:
$> ./setup/setup-environment.ps1
Note: By the MySQL container listen to port 3306 internally, but exposes the port 3307 if you ever need to connect to the MySQL server using a tool like MySQL workbench. Note2: The database files are located in the
bin/_database
folder.
In the same command prompt you used to setup your development environment, navigate to the bin/
directory of your repository and type the following commands:
$> ./rhisis-cli database configure
This command will configure the different servers to access the database. Since the servers will be running inside docker containers, please configure your environnement as followed:
Database server host address: rhisis.database
The
rhisis.database
is the name of the Docker container where the MySQL Server is running. In order for other containers to access this container, you need to specify the container name as the host.
Database server listening port: 3306
Even if the docker container has an acces with the
3307
port, you should use the port3306
internally so other containers can access the MySQL Server
Database username:
Database user password:
Database name:
Type the same information you entered during the setup.
For the rest of the options, you can choose to use encryption or not. It's up to you now.
You can either use the provided configuration and modify it has you want or use the CLI to configure it in your own.
$> ./rhisis-cli configure login
$> ./rhisis-cli configure cluster
----- Core Server -----
Core server host address: rhisis.login
Note: You will need to specify the
rhisis.login
container name has the core server host in order for the cluster server to communicate with the CoreServer. Also: The port and passwords should match on both sides.
$> ./rhisis-cli configure world
...
----- World cluster Server -----
World cluster server host address: rhisis.cluster
Note: You will need to specify the
rhisis.cluster
container name, so the world server can be considered as a "channel" of the given cluster. Also: The port and passwords should match on both sides.
- Eastrall
- Steve-Nzr
- Freezeraid
- Skeatwin
- johmarjac
- Kaev
- YarinNet
- Almewty
- Anjuts
- MarkWilds
- tekinomikata
- Ukiyo
- Kinami
- Sauce