nel_descriptions - ryzom/ryzomcore GitHub Wiki


title: NeL Descriptions description: published: true date: 2023-03-01T05:16:19.079Z tags: editor: markdown dateCreated: 2022-03-07T00:38:17.566Z

Future plans

The purely network library is typically self-contained, and not much subject to modification, unless one wants to change the entire paradigm around which the platform runs. Addition of a specific and non-standard network or network API would be the only reason one would change layer 1.


The Time Service

Provides standard universal time (in milliseconds) for the services within a shard and also for remote clients across the internet.

***API class: *CUniTime - See technical documentation for details

  • Synchronises the local machine time with the universal time

  • Provides access to the universal time

  • See technical documentation for details

The Log Service

Provides a centralised information logging system.

***API class: *CNetDisplayer

  • Allows any log message to be directed to the log service (instead of or as well as the screen, a disk log file, etc)

  • This is a displayer in the logging system (see misc library for details)

  • See technical documentation for more details




Drivers

Tools

...

Samples

...

Miscellaneous Developer Notes




NeL Misc

Main library handling system abstraction. Implements threading, file serialization, and other common features.

Responsibilities

  • Vector Math Library
  • Bitmap Loading and Saving
  • Memory Allocators
  • Logging
  • Performance Timers
  • File Serialization
  • Threading, Coroutines, and Mutexes
  • Resource Localization
  • Hashing and Cryptography
  • Compression
  • Smart Pointers
  • Unicode
  • Commands, and Variables
  • Configuration Files
  • Debug Window
  • HTTP

Concerns

Thread classes are virtual for no reason.

Debug windows depend on GUI libraries directly. A standard interface and plugin mechanism would work better.

NeL Net

Network functionality. Distributed mesh network.

NeL 3D

3D rendering system.

  • Materials (Shaders)
    • Standard
    • Multi texture
    • Lightmapped
    • Water
    • Reflection
  • NURBS landscape
  • Particle system
  • Scene graph
  • Mesh LOD

The 3D library is slightly dated. Materials are based on either fixed pipeline functionality, or specialized assembly shaders.

An experimental OpenGL 3.x driver has been implemented. However, the nature of the materials and meshes cause an excessive proliferation of shader variants to be generated. For future targets, we may need to investigate a restructuring of the shape material system.

NURBS landscape patches can only be created in 3ds Max, and painted with texture tiles and vertex colors using the NeL plugins for 3ds Max. The patches are modified to have a uniform texture tiling space. There does not seem to be any other common existing modeling packages which can deal with NURBS patches.

NeL Ligo

The Ligo system is intended to split up a landscape in reusable blocks of 160m by 160m, of different area types, with sets of randomizable area borders.

It is currently missing editing tools within the NeL project. An attempt was made, as part of the OVQT project, but has not proven practical for use. A legacy tool, World Editor, exists as part of the Ryzom project, but conflates source graphical assets and built asset output. Ideally, the tool should function on source graphical assets only, as the landscape design is part of the graphics building process. Mission (NPC actor) editing should be a separate tool from landscape editing, since it concerns runtime data, rather than static built game data.

NeL Georges

NeL Sound

Plugins

NeL CEGUI

Bindings for NeL with the CEGUI library. Developed for Werewolf.

Tools

Samples

⚠️ **GitHub.com Fallback** ⚠️