Installing the shard
The shard refers to an instance of the game server based on the Ryzom Core system. This tutorial is based on notes from the RC wiki((For info: https://ryzomcore.atlassian.net/wiki/page ryzomcore original).
It remains to detail the deployment of AMS (Account Management System)
First of all, make sure you have a well-configured database: 1st_server_states
The installation of the shard is done under Linux, with the dedicated user name: “compil”:
adduser compil adduser compil sudo su - compil
Installing packages and sources
Tests have been made on:
- Windows (unfinished tutorial)
Updating information and packages for linux:
To use php7 (7.3) you need to manually install mcrypt additionally, which is very well explained on: Tutorial for mcrypt on php7.3 or php7.2
sudo apt-get update sudo apt-get dist-upgrade
If the kernel is updated at this point, you must restart:
reboot
You need to install tools and libs to compile and start the server(the MySQL root Root MySQL password must be set and will later be used to connect to phpmyadmin).
⇒ Install packages from LAMP:
apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql apache2-utils php5-gd php5-imagick
Ubuntu
sudo apt-get install git libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev rrdtool libmysqlclient18-dev bison libxmu-dev autoconf automake libcpptest-dev libgif-dev cpputest libssl-dev unzip
Debian 7
sudo apt-get install git libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-dev rrdtool bison libxmu-dev autoconf automake libmysqlclient-dev libgif-dev libgif-dev cpputest libssl-dev unzip
Debian 8
udo apt-get install git libcurl4-openssl-dev libluabind-dev libfreetype6-dev libx11-dev libgl1-mesa-dev libxxf86vm-dev libxrandr-dev libxrender-dev libopenal-dev libogg-dev libvorbis-dev libxml2-dev cmake build-essential libpng12-dev libjpeg62-turbo-dev rrdtool bison libxmu-dev autoconf automake libmysqlclient-dev libgif-dev cpputest libssl-dev liblzma-dev unzip
Installer Squish
wget -c https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libsquish/squish-1.11.zip unzip squish-1.11.zip cd squish-1.11
Important: the source code of the “squish” library does not compile with the latest versions of gcc. A minor correction must be made before running this compilation:
In “alpha.cpp”(line 24) and “singlecolourfit.cpp”(line 26), you must add:
#include <limits.h>
Then compile:
make sudo make install
For Windows:
Install in order DirectX SDK then Visual c ++
Download ryzom source code and data:
git clone https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-opennel-code.git git clone https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-ressources.git
For additional windows:
Download
+-- code | | | +-- nel | | | +-- ryzom | | | +-- ... | +-- external
Build Ryzom OpenShard server
Create a file with PATH variables(for linux)
For a permament script:
nano /home/compil/.bashrc
For a script to run at each session:
nano shard.sh
Variables to put in your script:
export RYHOME=/home/compil/khanat-opennel-code/code export RYZOM_PATH=/home/compil/khanat-opennel-code/code/ryzom export PATH=$PATH:/home/compil/khanat-opennel-code/code/ryzom/tools/scripts/linux export RYDATA=/home/compil/khanat-ressources
Configuration options to build only "nel & server"(In static: if CMakeOptions)
For linux:
mkdir $RYHOME/build && cd $RYHOME/build
For windows:
Create the directory "build" in the directory "code".
CMake Line:
cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_CLIENT=OFF -DWITH_NEL=ON -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_DRIVER_OPENGL=OFF -DWITH_DRIVER_OPENAL=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_SOUND=OFF ..
Note that the server must be compiled with the option: -DWITH_SYMBOLS=ON to have debug symbols(see Debugging the shard)
Options:
Without tools: -DWITH_RYZOM_TOOLS=OFF (Needed for the shard to be able to make the visual_slot.tab and patches). -DWITH_NEL_TOOLS=OFF
For Windows:
Launch Cmake: * Code source : C:/khanat-opennel-code/code * Build binaries: C:/khanat-opennel-code/code/build * Configure for visual c++ 2015 * Configure * Change options * Generate
Build and install
For linux :
make -jX (X= nombres de coeur +1, si ça plante n'utiliser que "make") sudo make install
For Windows :
Run C:\khanat-opennel-code\code\build\RyzomCore.sln that was generated By choosing Visual C++, press F7 to compile.
Needed server symbolic links
ln -s $RYDATA/collisions $RYZOM_PATH/server/ ln -s $RYDATA/leveldesign $RYZOM_PATH/server/ ln -s $RYDATA/primitives $RYZOM_PATH/server/ ln -s $RYDATA/translation $RYZOM_PATH/server/ ln -s $RYDATA/continents $RYZOM_PATH/server/ ln -s $RYDATA/common $RYZOM_PATH/server/ ln -s $RYDATA/shard/su/dev_gm_names.xml $RYZOM_PATH/server/data_shard ln -s $RYDATA/shard/su/invalid_entity_names.txt $RYZOM_PATH/server/data_shard ln -s $RYDATA/shard/su/reserved_names.xml $RYZOM_PATH/server/data_shard ln -s $RYDATA/shard/egs/game_event.txt $RYZOM_PATH/server/data_shard ln -s $RYDATA/shard/egs/mission_queues.txt $RYZOM_PATH/server/data_shard ln -s $RYDATA/shard/egs/named_items.txt $RYZOM_PATH/server/data_shard
Recompile data from datasheets
Compiler sheet_id.bin
These steps(recompiling the datasheets) require some in depth knowledge of the process and how to manage the files.
If you are an beginner, you can/should safely ignore the steps for know and just jump to the “Configure server” part in the guide!!
Note: Zatalyz and scoui had success.
cd $RYHOME/build/bin ./make_sheet_id -o$RYDATA/leveldesign/game_elem/sheet_id.bin $RYDATA/leveldesign/game_elem $RYDATA/leveldesign/game_element $RYDATA/leveldesign/world $RYDATA/leveldesign/ecosystems $RYDATA/sound
Compiling the visual_slot.tab file
First, verify that the paths to the directorys containing the leveldesign
, primitives
and the common
files(for the server and the client) are correctly found in the configuration file:
cd $RYHOME/build/bin cp sheets_packer $RYZOM_PATH/tools/sheets_packer/ cd $RYZOM_PATH/tools/sheets_packer nano sheets_packer.cfg
Default state of the file sheets_packer.cfg file:
///////////////////////////////// ///////////////////////////////// /// SHEETS PACKER CONFIG FILE /// ///////////////////////////////// ///////////////////////////////// DataPath = { "../../common/data_leveldesign", "../../common/data_common", "../../client/data", "../../../../../khanat-ressources/common", "../../../../../khanat-ressources/leveldesign", "../../../../../khanat-ressources/primitives" }; WorldSheet = "ryzom.world"; PrimitivesPath = "../../../../../khanat-ressources/primitives"; OutputDataPath = "../../client/data"; LigoPrimitiveClass = "world_editor_classes.xml";
Then we can launch the sheets_packer, remaining in the standing directory of the “.cfg file” because of the relative paths:
$ $RYHOME/build/bin/sheets_packer
Finally, copy the visual_slot.tab to it's needed place:
cp visual_slot.tab $RYZOM_PATH/common/data_common/visual_slot.tab
Add the missing languages
This is a hack to add some translation files strangely requested by IOS. You should find out how to delete these calls that are hardcoded in: code/ryzom/server/src/input_output_service/string_manager.h
lines 54 to 67:
class CStringManager { public: /// This is a list of available languages. enum TLanguages { work, english, german, french, russian, spanish, NB_LANGUAGES };
for var in $RYDATA/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_de}; done for var in $RYDATA/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_es}; done for var in $RYDATA/translation/translated/*_wk.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_wk/_ru}; done
If you are missing out on the French translations(and you want them), you must add:
for var in $RYDATA/translation/translated/*_en.txt; do nomfic=${var##*/}; ln -s $nomfic ${var%/*}/${nomfic/_en/_fr}; done
Configure Server
Edit different files for proper(and working) server configuration:
nano $RYZOM_PATH/server/frontend_service.cfg
The line to be edited in frontend_service.cfg is:
FSListenHost = “your.server.ip.adress”;
For us it is:
FSListenHost = “lirria.khaganat.net”;
nano $RYZOM_PATH/server/sql.cfg
To edit accordingly to your configuration:
DBHost = "127.0.0.1"; DBRingName = "ring_mini01";
Leave it to localhost. Create the user “nel” who has rights to the complete database, and then a user “ring” with rights to db: ring_mini01, both users with there own passwords. Don't forget to edit $ RYZOM_PATH/server/sql.cfg
with your chosen configuration.
Web-admin
Installing web server packages
apt-get install mysql-server apache2 php5 php5-mysql php5-gd rrdtool screen mcrypt php5-mcrypt apt-get install phpmyadmin adduser compil www-data
Create, copy and set rights to "ryzomweb":
cp -r $RYHOME/web ryzomweb chmod -R a+w ryzomweb sudo chown -R www-data:www-data ryzomweb
Configure Apache2 Web Server & MySQL Database
nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80> <Directory "/home/compil/ryzomweb/"> Options Indexes FollowSymLinks AllowOverride None Require all granted DirectoryIndex index.php AddType text/html .php .phps AddHandler application/x-httpd-php .php AddHandler application/x-httpd-php-source .phps </Directory> ServerName lirria.khaganat.net ServerAdmin webmaster@localhost DocumentRoot /home/compil/ryzomweb/public_php/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:40916> <Directory "/home/compil/ryzomweb/"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ServerName lirria.khaganat.net ServerAdmin admin@localhost DocumentRoot /home/compil/ryzomweb/public_php ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Open the port 40916!
nano /etc/apache2/ports.conf
Add:
Listen 40916
Restart the Apache web service
service apache2 restart
Install the web-admin
Go to: http://YOUR_IP_ADRESS/setup
Follow the instructions.
If you want to manage your MySQL database, go to: http://YOUR_ADRESSE_IP/phpmyadmin
Helpful information about editing the database:
''Https://khaganat.net/wikhan/shard_database''
Notes:
General web page on all the web services: https://ryzomcore.atlassian.net/wiki/display/RC/Web+Services+Installer+Design+Doc
How to install the web services: https://ryzomcore.atlassian.net/wiki/display/RC/Configure+Linux+Web+Services
—
How to install AMS: https://ryzomcore.atlassian.net/wiki/display/RC/Setup+the+AMS
Documentation on AMS: https://ryzomcore.atlassian.net/wiki/display/RC/Account+Management+System
Details about AMS: https://ryzomcore.atlassian.net/wiki/display/RC/AMS+Design+Info
Videos and explanations from the author of AMS: https://plus.google.com/116363537101759977044
—
Installing the API for apps: https://ryzomcore.atlassian.net/wiki/display/RC/Configuring+Ryzom+API
WIki on the API: http://dev.ryzom.com/projects/ryzom-api/wiki
Install the patch service(optional)
The installation of the Patch Server is explained in detail on a specially dedicated page: https://khaganat.net/wikhan/en:installation_d_un_serveur_de_patchs
Start the Shard
To turn on the shard:
shard start
To navigate and exit screen:
Ctrl + a + n (or ctrl + a + service digit) allows you to navigate between services. Ctrl + a + d allows you to exit screen. Shard join allows to join an already running shard. Shard share allows to join several running shards.
To turn off the shard:
shard stop
Verify that all works without a client
Http://lirria.khaganat.net:40916/login/r2_login.php?cmd=login&login=sonlogin&password=mdp&clientApplication=Lirria
Sonlogin = your user
Mdp = your passwords
computer server shard tutorial