architecture_ryzom_services - ryzom/ryzomcore GitHub Wiki


title: Basic Architecture of the Ryzom Services description: published: true date: 2023-03-01T05:19:33.705Z tags: editor: markdown dateCreated: 2022-03-08T23:37:50.251Z

Terminology

  • Server: We often use this word to refer to the physical server.
  • Shard: This is an example of the Ryzom universe. Currently we have 3 fragments, one for the French community, one for the German community and one for the English speakers. All the fragments are independent and there is almost no link between the fragments.
  • Service: A service is an executable, which is running on the servers. For example, we have a service that manages AI. We can create heterogeneous fragments with a Windows and GNU/Linux server where some services will run on Windows and others on the GNU/Linux.
    The architecture is fully modular. In 2004 a Ryzom fragment ran on 8 servers and now with the power of a new computer we can run the same fragment on a single server.

Ryzom Services

Here is a list of what the services do in Ryzom:

  • AES (Administration Executor Service): There is one AES per physical server. It manages the fragment by starting other services on the server, killing them, getting information about the services.
  • AS (Admin Service) : There is one AS that coordinates all the AES. This is the central point to get/send command to AES.
  • AIS (AI Service) : We can have one or more AIS per fragment. The purpose of this service is to manage the AI in Ryzom. An AIS is responsible for a geographical area. For example, in Ryzom, we have 6 AIS, one per continent.
  • BMS (Backup Manager Service) : There are 2 BMS (one master and one slave) for all fragments. They manage the backup / loading of data such as player characters, guilds ... The data is saved on the hard drive using the specific file format.
  • EGS (entities game service) : One per fragment. It manages all the players, game rules, missions, items, guilds, ... It is a central point service.
  • GPMS (Global Position Manager Service)** : one per fragment. It knows where all entities (actors, interim) are and checks for collisions.
  • IOS (Input Output Service)** : one per fragment. Manage all chats, texts, locations ... NS (Naming Service) : one per fragment. This is a low level service that coordinates all the other services. It knows which services are running on the port, it is like a yellow page.
  • WS (Host Service): One per fragment. Used in the connection process, this service control and path the player to the right FES.
  • TS (Check Service): One per fragment. A simple service that manage the game time and synchronize all services. MS (Mirror Service): one per server. A service that use shared memory and communication to synchronize data between servers so that all services can have quick access to all necessary information.
  • SU (Shard Unifying Service): One. Handle things that are not related to a specific fragment. For example, teleport a player from one fragment to another fragment. Also manage the connection of players.
  • FES (Front End Service): One or more per fragment. It is the interface with the Ryzom client. It manages the messages and routes them to the necessary service. If you have 2 FES on a fragment, the connection of the clients will be distributed equally on the two services.
  • SBS (Session Browser Service) : same number as the FES. It manages sessions (mainly used by the Ring).
  • PDSS (Persistent Data Service): Create a backup archive regularly stored files that contains information of player character and also be able to extract information to make some statistics or tests.
⚠️ **GitHub.com Fallback** ⚠️