nel_descriptions - ryzom/ryzomcore GitHub Wiki
title: NeL Descriptions description: published: true date: 2023-03-16T22:58:00.228Z tags: editor: markdown dateCreated: 2022-03-07T00:38:17.566Z
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.
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
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
- Direct3D 9
- OpenGL 1.x (Reference Implementation)
- OpenGL 3.x
- DirectSound (Reference Implementation, Deprecated)
- OpenAL
- FMod (Deprecated)
- XAudio2
...
...
- Pipeline Service (Currently not applicable)
- Pipeline Service Technical (Currently not applicable)
- Pipeline 3ds Max (Currently not applicable)
- Pipeline 3D Export Tool Requirements
- Pipeline Working Notes
Main library handling system abstraction. Implements threading, file serialization, and other common features.
- 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
Thread classes are virtual for no reason.
Debug windows depend on GUI libraries directly. A standard interface and plugin mechanism would work better.
Network functionality. Distributed mesh network.
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.
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.
Bindings for NeL with the CEGUI library. Developed for Werewolf.