Skip to content

general

Jan Boon edited this page Mar 3, 2022 · 49 revisions

title: Ryzom Postmortem - NeL description: published: true date: 2022-03-03T05:21:26.266Z tags: editor: markdown dateCreated: 2022-02-19T03:26:17.315Z

Adapted from "fr dossier 2002 / 1 - Projet NeL - Generalités" and "fr dossier 2001 / Projet NEL". Text that is contained in the 2001 document, but not in the 2002 revision is struck through. Text that is new in the 2002 document is underlined. {.is-info}

Goal

Objective

Research and development of technical solutions in the fields of artificial intelligence, networks and communication and 3D to overcome the obstacles to the realization of massively multi-user online worlds with high immersion and access by personal computers connected through the Internet.

Results to be reached

To design and develop a technological platform capable of supporting a very large, massively multiplayer online universe.

R&D

In order to achieve this, the R&D team is focusing its research on three main areas.

2001

Here is a summary of the research carried out in 2001 in each of these three teams.

Network and communication

  • Research and development of a communication subsystem to efficiently transfer data from the server to the client PC via the Internet (research of UDP and TCP/IP solutions).
  • Research and development of a technology to filter and prioritize (notion of priority) the information that must reach the client, while respecting the constraints related to bandwidth.
  • Research and development of a technology to represent the position and movement of entities and distribute them to different servers.
  • Research and development of a technology for interpolating and extrapolating the movement of players in order to make the animation credible.
  • Research and development of a system for transmitting data from the player that manages the movements of the characters.
  • Research and development of a server-to-server communication technology capable of handling large volumes of data with high time constraints, in a massively online environment.
  • Research and development of an efficient process for updating the MMO (Massively Multi-user On line) software at a large number of client installations as well as for updating the servers.

Artificial intelligence

  • To obtain reactive and credible behaviors for a large number of entities under artificial intelligence control, within a very large universe.
  • Generate an intelligent interaction between the different entities via dialogue menus.

3D

  • Create and represent a natural terrain with natural arches, tunnels or lakes.
  • Creation and representation of city streets, buildings and interiors full of decoration.
  • Represent a number of animated and editable characters and plants with a high level of detail.
  • Create an audio environment that matches the quality of the visual environment in performance, using surround technology.
  • To render credible collision and path situations in natural and urban environments.

Here is a summary of the research that was carried out in 2002 in each of these three teams.

Network and communication

  • Research and development of an information sharing system (database) distributed in real time between the different distributed servers.
  • Research and development of a high level communication protocol allowing to exchange messages between servers of different versions.

Artificial intelligence

  • Research and development of a filing system for the multi-agent system.
  • Research and development of an operator management system for the multi-agent system.
  • Research and development of a new architecture that can handle the new constraints (RAID Engine).

3D

  • Research and development of realistic water rendering (to model lakes, seas, rivers).
  • Research and development of an optimization system for rich indoor 3D environments (streets, buildings, ...).
  • Research and development of a pre-calculated shadow system based on radiosity.
  • Research and development of the graphic rendering of the sky.
  • Research and development of a large-scale terrain production system.
  • Research and development of tools to allow non-programmers to play sounds and music as well as a realistic sound model to manage reverberations on walls and doors.

Background of the operation

This project was born out of the coming together of the computer game and film industries. The idea is to research and develop innovative techniques that allow a level of immersion in the virtual universe without any loss of credibility (lack of fluidity or graphic inconsistency for example) and while offering a very complex realistic plant world.

State of the art and bibliographic research

The company was created with the aim of developing massively multiplayer online entertainment products. So everything had to be developed from scratch. At the beginning of 2002, there were only 3 competing products, Ultima Online, Everquest and Asheron's Call. The most successful project was Everquest, the same as in 2001.

The state of the art in 2002 is very similar to 2001 because the competition doesn't let out any information about their research and technological choices. So we can only base ourselves on our own research done in 2001.

Concerning 3D, in classic offline games, the number of users is limited, the game follows a pre-defined scenario. This allows the complexity of the scene to be controlled at all times and the number of polygons to be displayed to be predictable. With the advent of online games, players can move anywhere they want. The number of players in a given location is therefore totally unpredictable, making it impossible to predict the number of polygons that will need to be displayed. Competitors have therefore chosen to reduce the number of polygons on the characters and on the field to the maximum. This leads to a very low graphic quality and when there are many players in the same place, the display becomes slow.

The constraint of artificial intelligence in offline games is often reduced because the number of bots to manage is low, never more than 1000. Under these conditions, it is possible to develop intelligent algorithms without too much trouble. In online games, the servers must be able to handle several tens of thousands of bots. Competitors have therefore simplified the system to the point of simple state machines to avoid server overload. This makes the bots very predictable, not very credible and therefore not interesting for the players.

Server architectures in competitive online games are based on geography. Each server manages a static and predefined part of the universe. This causes big load problems when many players decide to go to the same place. With this architecture, it is also impossible to chat with players who are in another zone managed by another server. Another problem is the "teleportation" of players over a few meters due to lost messages. This breaks the immersion of the player and the credibility of the universe.

In the competition, there are 2 systems for updating clients. The first one consists in sending all the files that are different between the client and the server. When a big file has to be changed, even by one byte, it will have to be resent, which leads to unnecessary high throughput. The other system is based on differences. With each new version, a file is created containing the differences between the old version and the new version. The problem is when a player has not played for a long time, he has to get all the versions to get the final version.

Here are 2 pictures, one of Everquest and one of Ryzom:

EverQuest: You see a beach, the dunes are very square and not at all natural. The trees are all the same and not very detailed. The buildings in the distance are very simplistic.

everquest.jpg

Ryzom: The terrain is much more curved, we have a much more distant vision, the buildings are complex and the characters very detailed.

ryzom.jpg

Problems to be solved

The difficulties to resolve are most of the time related to constraints that can be listed by area:

Network and communication

  • Incoming and outgoing download streams should not exceed 16 kbits per second per player.
  • Distributed systems split applications across multiple servers. A reliable, real-time solution is needed to share the millions of pieces of information.
  • Data rate limited to 100 Mbits per second for connections between servers.
  • The servers are supposed to be PCs with dual INTEL 2GHz processors running Linux.
  • The servers responsible for managing client connections must support at least 1000 clients, each of which can send and receive 10 packets per second with an average size of 1.6 kbits.

Artificial intelligence

  • The requirements have been revised upwards from 10,000 and the system will have to be able to manage at least 75,000 intelligent entities per server in real time, knowing that a server is equivalent in power to a PC equipped with a dual INTEL 2GHz processor.
  • Data transfer to the client machine is not guaranteed.
  • Have a result that looks intelligent and consistent to the players.
  • Be able to easily create new complex and predictable behaviors.

3D

  • A complex scene with moving entities must be able to move smoothly on the screen, knowing that the minimum specifications required include a 1GHz processor with 256 MB of Ram.
  • The information needed to represent a universe, based on a new technology, had to be developed by 3D experts within a reasonable time frame.
  • A very fast collision system allowing collisions between mathematical surfaces and characters had to be designed, tested and implemented.
  • The system must work on the majority of PC based machines despite the different standards and the very variable power of the machines.

Description of work — difficulties encountered

Here is the content of the work carried out during the year 2001, in the three branches of our research and development activity:

Network and communication

Communication between the server and the client.

  • Research into different methods used for Multi-User products. [GDC2000]
  • Network throughput analysis for PC based on different packet sizes.
  • Implementation of a TCP/IP solution followed by evaluation tests leading to a failure resulting in rejection of this solution.
  • Design and implementation of a UDP solution followed by an evaluation protocol.
  • The most important solution requirements include handling a very large number of small data packets, controlling packet loss and handling a large number of TCP/IP connections and their CPU monitoring.

Data filtering

  • Initial system design, implementation, experimentation, iterative analysis and evolution.
  • The most important solutions requirements include the use of a CPU that minimizes UDP packet loss, which is related to the quality of the filtering algorithm (which translates into the quality of the picture that is displayed on the client).

Position management

  • Initial system design, implementation, experimentation, iterative analysis and evolution.
  • The most important solution requirements concern the data structure for collision management, the use of a CPU for collision management and universe composition, and the bandwidth management for the LAN server.

Representation of movements on the client side

  • Design of the initial system, implementation, experimentation, iterative analysis and evolution.
  • The most important solution requirements concern the quality of the animation (the universe is virtual but must not lose its credibility at any time, this concept being fundamental to the success of the project), the filtered data and UDP packet losses, the controlled actions (punch and backward movement, for example). [Kansal]

Artificial intelligence

3D

Clone this wiki locally