Logo Khaganat
Translations of this page?:

OpenNel Khanat Server - Overview

Prerequisite: Our game server uses RyzomCore / OpenNeL, and all related documentation also applies to our game server: www.ryzomcore.org.
The alphabetical index page of their “wiki's” makes it possible to find a lot of useful information, tutorials: https://ryzomcore.atlassian.net/wiki/display/RC/Reference+Guides

Some previous definitions

  • Server: by server we refer to the physical machine on which our universe is running. As an abuse of the language we can one also use the term server for talking about the programs/services of the game running it.
  • Shard: It is an instance of the game universe. Each instance is independent(ex: Aniro and Aristopole formerly on Ryzom) and represents the world in which players circulate.(Note: you can run two shards on the same server)
  • Service: A service is a program that runs on the server. The game universe is managed entirely by a dozen services that share different tasks, for example: the service AI manages the mobs while the service IOS manages the “chat channels”. These services are run on the server, but can be distributed on several machines with even different OS(windows + linux for example).

In our case, (as our first single serve), a virtual machine named “kh-dev” was running Debian Squeeze 7 and installed on a real physical server: “ninm.net”. Our second server run on Debian Jessie 8 and our third is a virtual machine also under Debian Jessie 8.

Starting and stopping game services

Starting and stopping game services is done using a simple script once connected to our game server.

Launching Game Services « Khanat » :

$ shard start

Stopping Game services « Khanat » :

$ shard stop

The services

There are 23 services(as shown by the display from the binary file of ryzom core). However, they are not all useful for running a game.

khanat@kh-dev:~$ ls ryzomcore/code/build/bin/ryzom_*
ryzomcore/code/build/bin/ryzom_admin_service
ryzomcore/code/build/bin/ryzom_ai_service
ryzomcore/code/build/bin/ryzom_backup_service
ryzomcore/code/build/bin/ryzom_dynamic_scenario_service
ryzomcore/code/build/bin/ryzom_entities_game_service
ryzomcore/code/build/bin/ryzom_frontend_service
ryzomcore/code/build/bin/ryzom_general_utilities_service
ryzomcore/code/build/bin/ryzom_gpm_service
ryzomcore/code/build/bin/ryzom_ios_service
ryzomcore/code/build/bin/ryzom_log_analyser_service
ryzomcore/code/build/bin/ryzom_logger_service
ryzomcore/code/build/bin/ryzom_mail_forum_service
ryzomcore/code/build/bin/ryzom_mirror_service
ryzomcore/code/build/bin/ryzom_mission_compiler
ryzomcore/code/build/bin/ryzom_monitor_service
ryzomcore/code/build/bin/ryzom_naming_service
ryzomcore/code/build/bin/ryzom_patchman_service
ryzomcore/code/build/bin/ryzom_pd_support_service
ryzomcore/code/build/bin/ryzom_persistant_data_service
ryzomcore/code/build/bin/ryzom_reference_builder_service
ryzomcore/code/build/bin/ryzom_session_browser_service
ryzomcore/code/build/bin/ryzom_shard_unifier_service
ryzomcore/code/build/bin/ryzom_tick_service
ryzomcore/code/build/bin/ryzom_welcome_service

Details of the services:

  • AES (Admin Executor Service): This service allows to launch and kill the other services, and also to collect information about the various services of the machine where it runs.
  • AS (Admin Service): When services are spread over several machines, there's a unique administration service called AS which coordinates all AES tasks for correct order sending.
  • AIS (AI Service): The purpose of this service is to manage the AI's of the world(mob behavior). An AIS service is responsible for a specific geographical area, as for example on Ryzom, there are six AIS services running: one for every continent.
  • BMS (Backup Manager Service): This service manages the loading/saving of the “player data”. This data is saved(to the disk) in an special “archive format”. Each shard has two BMS services: one master and one second in slave mode.
  • EGS (Entities Game Service): One EGS service per shard, this service manages the status of each avatar, missions, items, Guilds, rules of the game(eg, spells, combat, harvest, craft, etc.), etc. It is a central service and without it the game can't run.
  • GPMS (Global Position Manager Service): One per shard, it knows the position of each entity(avatar, mobs, etc …), determines who sees who, and then gives the information to FES, it also handles collisions.
  • IOS (Input Output Service): One per shard, this service takes care of the chat channels, all the texts displayed as well as their different versions(Translation).
  • NS (Naming Service): One per shard, it's a pure “network service” whose role is to coordinate the other services. It keeps a list of each service launched, it's ports, etc.. It's a kind of “translation page”, DNS as we say in computer slang.
  • WS (Welcome Service): One per shard, it takes care of the connection process and authentication of the player before returning it to the service FES(of his shard).
  • TS (Tick Service): One per shard, it is a very simple service that manages the game time(date/time) and allows the synchronization of all services.
  • MS (Mirror Service): One per server, this service uses “shared memory” and synchronizes data across all servers so that services can access specific “Game informations”.
  • SU (Shard Unifier Service): Unique service, it handles functions not specific to the shard, like the teleportation of a player from one shard to another, it also manages the process of player connections.
  • FES (Front End Service): One or more per shard, this service is the one that manages the game client, sending it the different events but also by calculating properties changes to send to it without saturating bandwidth. All communications from the customer go through this service which then routes those calls to the right services. If there is more than one FES service for a shard, then the connections are distributed uniformly between the different FES. This makes it possible to distribute the load between several machines if necessary.
  • SBS (Session Browser Service): Similar to FES, it handles Rings sessions.
  • MFS (Mail Forum Service): Web IG?
  • LGS (Logger Service): Log Service?
  • DSS (Dynamic Scenario Service): Ring?
  • PDSS (Persistent Data Service): This service creates archives for regularly do backups of files containing information about avatars. It is also able to extract some information to generate “player stats”. Not used.
  • MOS (Monitor Service): (not used)
  • LAS (Log Analyzer Service): (not used)
  • RBS (Reference Builder Service): (not used)

Liste des ports

  • admin_service.cfg
    • WebPort = 49995
  • login_service.cfg
    • WSPort = 49999
    • WebPort = 49998
    • ClientsPort = 49997
  • admin_executor_service.cfg
    • ASPort=“46701”
  • admin_service.cfg
    • ASWebPort=“46700”
    • ASPort=“46701”
  • ai_service.cfg
    • SUPort = 50505
  • backup_service.cfg
    • WebPort = 49970
    • ListeningPort = 49990
    • WebPort = 49898
    • L3BSPort = “49950”
  • common.cfg
    • AESPort=“46702”
  • dynamic_scenario_service.cfg
    • ASWebPort=“46700”
    • ASPort=“46701”
    • AESPort=“46702”
    • SUPort = 50505
    • SUGlobalPort = 50503
    • L3BSPort = “49950”
    • L3SlaveBSPort = “49951”
    • L3MasterLGSPort = 49992
    • LGSBSPort = 49994
    • L3LGSBSPort = 49995
    • BasePort = 51400
  • entities_game_service.cfg
    • AESPort=“46702”
    • SUPort = 50505
    • SUGlobalPort = 50503
    • L3MasterLGSPort = 41292
    • L3SlaveLGSPort = 49993
  • frontend_service.cfg
    • FSUDPPort = 47851
  • input_output_service.cfg
    • AESPort=“46702”
    • SUPort = 50505
    • SUGlobalPort = 50503
    • L3MasterLGSPort = 41292
    • L3SlaveLGSPort = 49993
  • logger_service.cfg
    • LGSL3Port = 41292
  • naming_service.cfg
    • BasePort = 51000
  • session_browser_server.cfg
    • SBSPort = 48851
  • shard_unifier_service.cfg
    • SUGlobalPort = 50503
  • welcome_service.cfg
    • SUPort = 50505

Cliquez pour afficher ⇲

Cliquez pour masquer ⇱

jeanluc@tomate:~/ryzomcore$ rgrep Port code/*/*/*.cfg code/nelns/admin_service/admin_service.cfg:WebPort = 49995; code/nelns/login_service/login_service.cfg:WSPort = 49999; port for the welcome service connection (default is 49999) code/nelns/login_service/login_service.cfg:WebPort = 49998; port for the web server (default 49998) code/nelns/login_service/login_service.cfg:ClientsPort = 49997; port for the clients connection (default 49997) code/ryzom/server/admin_executor_service.cfg:ASPort=“46701”; code/ryzom/server/admin_executor_service.cfg: “gw_aes.transportCmd aes_l3c(connect addr=”+AESHost+“:”+AESPort+“)”, code/ryzom/server/admin_executor_service.cfg: “asc_gw.transportCmd l3c(connect addr=”+ASHost+“:”+ASPort+“)”, code/ryzom/server/admin_executor_service.cfg: “aes_gw.transportCmd l3s(open port=”+AESPort+“)”, code/ryzom/server/admin_service.cfg:ASWebPort=“46700”; code/ryzom/server/admin_service.cfg:ASPort=“46701”; code/ryzom/server/admin_service_default.cfg:ASWebPort=“46700”; code/ryzom/server/admin_service_default.cfg:ASPort=“46701”; code/ryzom/server/admin_service_default.cfg: “moduleManager.createModule AdminService as webPort=”+ASWebPort, code/ryzom/server/admin_service_default.cfg: “as_gw.transportCmd l3s(open port=”+ASPort+“)”, code/ryzom/server/ai_service.cfg:SUPort = 50505; code/ryzom/server/ai_service.cfg:SUAddress = SUHost+“:”+SUPort; code/ryzom/server/backup_service.cfg:WebPort = 49970; code/ryzom/server/backup_service_default.cfg:ListeningPort = 49990; code/ryzom/server/backup_service_default.cfg:WebPort = 49898; code/ryzom/server/backup_service_default.cfg: Port for the Layer 3 interface of the backup service code/ryzom/server/backup_service_default.cfg:L3ListeningPort = 49950; code/ryzom/server/backup_service_interface.cfg:L3BSPort = “49950”; code/ryzom/server/common.cfg:AESPort=“46702”; code/ryzom/server/common.cfg: “gw_aes.transportCmd aes_l3c(connect addr=”+AESHost+“:”+AESPort+“)”, code/ryzom/server/dynamic_scenario_service.cfg:ASWebPort=“46700”; code/ryzom/server/dynamic_scenario_service.cfg:ASPort=“46701”; code/ryzom/server/dynamic_scenario_service.cfg:AESPort=“46702”; code/ryzom/server/dynamic_scenario_service.cfg:SUPort = 50505; code/ryzom/server/dynamic_scenario_service.cfg:SUGlobalPort = 50503; code/ryzom/server/dynamic_scenario_service.cfg:L3BSPort = “49950”; code/ryzom/server/dynamic_scenario_service.cfg:L3SlaveBSPort = “49951”; code/ryzom/server/dynamic_scenario_service.cfg:L3MasterLGSPort = 49992; code/ryzom/server/dynamic_scenario_service.cfg:LGSBSPort = 49994; code/ryzom/server/dynamic_scenario_service.cfg:L3LGSBSPort = 49995; code/ryzom/server/dynamic_scenario_service.cfg:“gw_aes.transportCmd aes_l3c(connect addr=localhost:”+AESPort+“)”, code/ryzom/server/dynamic_scenario_service.cfg:SUAddress = SUHost+“:”+SUPort; code/ryzom/server/dynamic_scenario_service.cfg:BasePort = 51400; code/ryzom/server/entities_game_service.cfg:AESPort=“46702”; code/ryzom/server/entities_game_service.cfg:SUPort = 50505; code/ryzom/server/entities_game_service.cfg:SUGlobalPort = 50503; code/ryzom/server/entities_game_service.cfg:L3MasterLGSPort = 41292; code/ryzom/server/entities_game_service.cfg:L3SlaveLGSPort = 49993; code/ryzom/server/entities_game_service.cfg:SUAddress = SUHost+“:”+SUPort; code/ryzom/server/entities_game_service_default.cfg: “glob_gw.transportCmd l3c(connect addr=”+SUHost+“:”+SUGlobalPort+“)”, code/ryzom/server/entities_game_service_default.cfg: “lgs_gw.transportCmd masterL3c(connect addr=”+MasterLGSHost+“:”+L3MasterLGSPort+“)”, code/ryzom/server/entities_game_service_default.cfg: “lgs_gw.transportCmd slaveL3c(connect addr=”+SlaveLGSHost+“:”+L3SlaveLGSPort+“)”, code/ryzom/server/frontend_service.cfg:FSUDPPort = 47851; code/ryzom/server/frontend_service_default.cfg:FrontendPort = 47851; code/ryzom/server/frontend_service_default.cfg:ListenAddress = FSListenHost+“:”+FSUDPPort; code/ryzom/server/input_output_service.cfg:AESPort=“46702”; code/ryzom/server/input_output_service.cfg:SUPort = 50505; code/ryzom/server/input_output_service.cfg:SUGlobalPort = 50503; code/ryzom/server/input_output_service.cfg:L3MasterLGSPort = 41292; code/ryzom/server/input_output_service.cfg:L3SlaveLGSPort = 49993; code/ryzom/server/input_output_service.cfg:SUAddress = SUHost+“:”+SUPort; code/ryzom/server/input_output_service_default.cfg: “glob_gw.transportCmd l3c(connect addr=”+SUHost+“:”+SUGlobalPort+“)”, code/ryzom/server/input_output_service_default.cfg: “lgs_gw.transportCmd masterL3c(connect addr=”+MasterLGSHost+“:”+L3MasterLGSPort+“)”, code/ryzom/server/input_output_service_default.cfg: “lgs_gw.transportCmd slaveL3c(connect addr=”+SlaveLGSHost+“:”+L3SlaveLGSPort+“)”, code/ryzom/server/logger_service.cfg:LGSL3Port = 41292; code/ryzom/server/logger_service.cfg:“lgs_gw.transportCmd l3s(open port=”+ LGSL3Port +“)”, code/ryzom/server/naming_service.cfg:BasePort = 51000; code/ryzom/server/session_browser_server.cfg:SBSPort = 48851; code/ryzom/server/session_browser_server.cfg:“moduleManager.createModule SessionBrowserServerMod sbs suAddr=”+SUHost+“:49999 listenPort=”+SBSPort+“ ring_db(host=”+DBHost+“ user=”+DBRingUser+“ password=”+DBRingPass+“ base=”+DBRingName+“)”, code/ryzom/server/shard_unifier_service.cfg:SUGlobalPort = 50503; code/ryzom/server/shard_unifier_service_default.cfg: “glob_gw.transportCmd l3s(open port=”+SUGlobalPort+“)”, code/ryzom/server/welcome_service.cfg:SUPort = 50505; code/ryzom/server/welcome_service.cfg:SUAddress = SUHost+“:”+SUPort; </hidden>

CC Attribution-Share Alike 4.0 International Driven by DokuWiki
en/serveur_tour.txt · Last modified: 2021/12/03 19:19 by 127.0.0.1

Licences Mentions légales Accueil du site Contact