Logo Khaganat
This translation is older than the original page and might be outdated. See what has changed.
Translations of this page?:

This is an old revision of the document!


Create a universe

In this section, we will discuss the data that allows a universe to exist!(Unlike the server system which makes it possible for the universe to be available for the client that connects to it).

The different types of data used

Base MySQL

This database system is used for services and the administration of the server, this does not therefore directly concern the world EXCEPT the determination of player accounts and their privileges.

The Georges Sheets


These files(stored in sources in code/ryzom/common/data_leveldesign/leveldesign) contains the definition of all the elements to be defined, like: objects, spells, creatures… and also the basic encyclopedia which contains all the definitions of all the elements that can be called, and importantly all the bricks that will be used to build the world. Ryzom Core stores data in the form of “xml” files(with variable extensions, like: .txt, .dfn, .cfg, .continent etc…
They are designed to adopt a “hierarchy and parenting” that allows the increasing accuracy of the different elements.
These xml files can be edited manually, but there is an dedicated editor: Georges Editor.
Once defined, these files are compressed into packed sheets files, this is a compact binary version for use by the game server. If you delete the files, the server will recreate them at startup!

The Primitives

Once all your items, spells, actions, skills etc. Defined in the Georges Sheets, you have to assemble all the bricks to make a world, this is the work of the World Editor, which is much more than a software of creation of map, It is he who makes it possible to compose the world, by sections.
Once again, the data is stored as xml files, with different extensions depending on their destination. The server stores them in code/ ryzom/common/data_leveldesign/primitives
This is where it becomes possible to create a specific character, assigned to a task, in a given place. The different bricks composed in the Georges Sheets are used for this purpose. Again, there is a hierarchy system that allows you to define groups of NPCs, creatures, and so on. To then place elements of these groups without having to redefine individually each object/creature/character.
Again, the server generates its packed sheets at startup in case it is missing.

The Persistent Data Record

With the Georges Sheets and Primitives, we get the state of the world when the server starts, at the moment 0. But it will immediately begin to live, the players, through their characters, will make modifications, interact … To save the world's evolution, keep the memory of the last state of each thing, the Ryzom Core server writes files to the disk without going through a database system.
This is where all characters, guilds, inventories, creatures position, quest status are stored …
The data is stored in code/ryzom/server/save_shard, in binary files.
Although it is not normally necessary to do this, it is possible to edit the data using the pdr_util utility, which transforms the binary pdr into an editable xml. It can then be reassembled with the same tool. This can be used to massively update data on a large number of characters or creatures.

Let's take a sample file: code/ryzom/server/save_shard/characters/001/account_1_0_pdr.bin.
We see that we are in the part devoted to the characters(“characters” in English). The subfolder, 001, is used only to prevent too much data from being stored in the same directory, so the system automatically organizes them into subdirectories. Then we see “account”, that means a player account, then “1”, so it is the account with ID 1. Then we read 0, it is the first character slot(out of 4 possible ). In this binary file, there is therefore all the data of the first character of the server's first player: inventory, position, skills etc.

CC Attribution-Share Alike 4.0 International Driven by DokuWiki
en/creer_un_univers.1482739564.txt.gz · Last modified: (external edit)

Licences Mentions légales Accueil du site Contact Inclusion