From 450c9e0da0fa03f2356dd4f1ba75bb5308f2ad48 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 21:06:36 +0200 Subject: Move old php3 extension to simple php extension --- docs/faq.php | 192 ++++++++++++++++ docs/faq.php3 | 192 ---------------- docs/features_nel.php | 109 +++++++++ docs/features_nel.php3 | 109 --------- docs/features_nel_3d.php | 213 ++++++++++++++++++ docs/features_nel_3d.php3 | 213 ------------------ docs/features_nel_ai.php | 105 +++++++++ docs/features_nel_ai.php3 | 105 --------- docs/features_nel_misc.php | 148 +++++++++++++ docs/features_nel_misc.php3 | 148 ------------- docs/features_nel_net.php | 137 ++++++++++++ docs/features_nel_net.php3 | 137 ------------ docs/features_nel_pacs.php | 114 ++++++++++ docs/features_nel_pacs.php3 | 114 ---------- docs/gpl.php | 164 ++++++++++++++ docs/gpl.php3 | 164 -------------- docs/nel_extensions.php | 238 ++++++++++++++++++++ docs/nel_extensions.php3 | 238 -------------------- docs/nelnet.php | 530 ++++++++++++++++++++++++++++++++++++++++++++ docs/nelnet.php3 | 530 -------------------------------------------- docs/writing.php | 172 ++++++++++++++ docs/writing.php3 | 172 -------------- 22 files changed, 2122 insertions(+), 2122 deletions(-) create mode 100644 docs/faq.php delete mode 100644 docs/faq.php3 create mode 100644 docs/features_nel.php delete mode 100644 docs/features_nel.php3 create mode 100644 docs/features_nel_3d.php delete mode 100644 docs/features_nel_3d.php3 create mode 100644 docs/features_nel_ai.php delete mode 100644 docs/features_nel_ai.php3 create mode 100644 docs/features_nel_misc.php delete mode 100644 docs/features_nel_misc.php3 create mode 100644 docs/features_nel_net.php delete mode 100644 docs/features_nel_net.php3 create mode 100644 docs/features_nel_pacs.php delete mode 100644 docs/features_nel_pacs.php3 create mode 100644 docs/gpl.php delete mode 100644 docs/gpl.php3 create mode 100644 docs/nel_extensions.php delete mode 100644 docs/nel_extensions.php3 create mode 100644 docs/nelnet.php delete mode 100644 docs/nelnet.php3 create mode 100644 docs/writing.php delete mode 100644 docs/writing.php3 (limited to 'docs') diff --git a/docs/faq.php b/docs/faq.php new file mode 100644 index 00000000..69656af0 --- /dev/null +++ b/docs/faq.php @@ -0,0 +1,192 @@ + + + + Nevrax.org : home + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#Free software
+
+ + + +
+ + +
+home + +
+ + + + + +
Frequently Asked Questions
+

The NeL FAQ tries to answer the most pertinent questions that come across +the NeL mailing list.

+ + + + + + + + +
What does the acronym NeL means?
+

NeL stands for Nevrax Library. It is a set of routines aimed at the +development of multi-user virtual environments in an IP network. It is used as +the core for client and server software to create various forms of Internet +entertainment.

+ + + + + + + + +
Is this for a game?
+

Yes and no. NeL is technically available for all forms of Internet +virtual environments, but is clearly aimed toward making a +Massively MultiPlayer Online Role Playing Game (or MMORPG) as its +first commercial application. The associated client and server software, +which are distributed along NeL are for that type of game.

+

Details on the game itself are not available right now, for commercial +strategy reasons. However, a sample game will be available along with the +code base.

+ + + + + + + + +
Any other games?
+

Nevrax, as a commercial entity, does not have other games scheduled +right now. However, nothing stops anybody else from using the NeL platform +and making a strategy wargame, or a virtual city, or anything else.

+ + + + + + + + +
Have you checked WorldForge/Crystalspace/QuakeForge/others...?
+

We have looked carefully at the other Free Software projects available, +before reinventing the wheel. They're all more or less compatible with ours, +on a purely license level, thanks to the GPL, but +that does not mean they can fit in our development. We (the NeL maintainers) +are a commercial entity with a specific product to be delivered on time.

+

We want to keep a tight focus on the game we are doing right now, and +thus did not want to get involved in political struggles to get the code +we would need in, and did not want to create resentment by "taking over" +and steering other projects toward our goals, or creating a code fork +for our own purpose. Our timetable requires us to be more or less in control +of things.

+ + + + + + + + +
How can you make money if you're writing Free Software?
+

That's the catch. Free Software doesn't mean free content, or free +service. While the software will be free, we retain property of our game +data and game servers. Free Software and OnLine games are a perfect match, +as these games are not really just code, but rather a service provided +to subscribers which will pay a monthly fee to access our servers to play +our game.

+

We believe that we have everything to gain, and nothing to lose by +opening the source code.

+ + + + + + + + +
I have found this bug...
+

The site has a bug +report section devoted to this. The easiest thing is to report the bug +using the appropriate tool, which ensures that your bug will get attention +and you will be notified of the bug's progress and eventual eradication.

+ + + + + + + + +
I have a question on NeL architecture...
+

Have a look at the various NeL +documentations available.

+ + + + + + + + +
What kind of APIs do you support?
+

NeL uses an abstraction layer to separate the engine workings from the API +use. In theory, any API can be supported. Right now, NeL uses OpenGL to +get more portability across operating systems. Any card with an OpenGL +driver will thus work fine.

+

Other divers can be added, including a software mode for those who really +want one. But performance without a 3D accelerated card will probably be +abysmal.

+ + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/faq.php3 b/docs/faq.php3 deleted file mode 100644 index 69656af0..00000000 --- a/docs/faq.php3 +++ /dev/null @@ -1,192 +0,0 @@ - - - - Nevrax.org : home - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#Free software
-
- - - -
- - -
-home - -
- - - - - -
Frequently Asked Questions
-

The NeL FAQ tries to answer the most pertinent questions that come across -the NeL mailing list.

- - - - - - - - -
What does the acronym NeL means?
-

NeL stands for Nevrax Library. It is a set of routines aimed at the -development of multi-user virtual environments in an IP network. It is used as -the core for client and server software to create various forms of Internet -entertainment.

- - - - - - - - -
Is this for a game?
-

Yes and no. NeL is technically available for all forms of Internet -virtual environments, but is clearly aimed toward making a -Massively MultiPlayer Online Role Playing Game (or MMORPG) as its -first commercial application. The associated client and server software, -which are distributed along NeL are for that type of game.

-

Details on the game itself are not available right now, for commercial -strategy reasons. However, a sample game will be available along with the -code base.

- - - - - - - - -
Any other games?
-

Nevrax, as a commercial entity, does not have other games scheduled -right now. However, nothing stops anybody else from using the NeL platform -and making a strategy wargame, or a virtual city, or anything else.

- - - - - - - - -
Have you checked WorldForge/Crystalspace/QuakeForge/others...?
-

We have looked carefully at the other Free Software projects available, -before reinventing the wheel. They're all more or less compatible with ours, -on a purely license level, thanks to the GPL, but -that does not mean they can fit in our development. We (the NeL maintainers) -are a commercial entity with a specific product to be delivered on time.

-

We want to keep a tight focus on the game we are doing right now, and -thus did not want to get involved in political struggles to get the code -we would need in, and did not want to create resentment by "taking over" -and steering other projects toward our goals, or creating a code fork -for our own purpose. Our timetable requires us to be more or less in control -of things.

- - - - - - - - -
How can you make money if you're writing Free Software?
-

That's the catch. Free Software doesn't mean free content, or free -service. While the software will be free, we retain property of our game -data and game servers. Free Software and OnLine games are a perfect match, -as these games are not really just code, but rather a service provided -to subscribers which will pay a monthly fee to access our servers to play -our game.

-

We believe that we have everything to gain, and nothing to lose by -opening the source code.

- - - - - - - - -
I have found this bug...
-

The site has a bug -report section devoted to this. The easiest thing is to report the bug -using the appropriate tool, which ensures that your bug will get attention -and you will be notified of the bug's progress and eventual eradication.

- - - - - - - - -
I have a question on NeL architecture...
-

Have a look at the various NeL -documentations available.

- - - - - - - - -
What kind of APIs do you support?
-

NeL uses an abstraction layer to separate the engine workings from the API -use. In theory, any API can be supported. Right now, NeL uses OpenGL to -get more portability across operating systems. Any card with an OpenGL -driver will thus work fine.

-

Other divers can be added, including a software mode for those who really -want one. But performance without a 3D accelerated card will probably be -abysmal.

- - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/features_nel.php b/docs/features_nel.php new file mode 100644 index 00000000..ad25fca8 --- /dev/null +++ b/docs/features_nel.php @@ -0,0 +1,109 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
NeL General Documentation : Introduction
+ +

What is NeL

+

NeL is a toolkit for the development of massively online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code. + +

Development philosophy

+

NeL is not a complete black box solution for absolutely any game that can be imagined.

+

Nevrax believe that any cutting edge interactive entertainment product needs a technology platform that is tuned to its specific requirements. NeL is intended to be considered as a library of components that can be added to, adapted or extended to meet the specific requirements of the products that are based on it.

+

It is clear that 'look alike' products that use the complete set or a sub-set of the features for an existing NeL product may get away with no extra technology development work at all.

+

Any technology developed for new NeL-based products should be fed back into NeL to allow the library to evolve and to stay at the leading edge.

+

The NeL development teams at Nevrax work closely with the internal product development teams to ensure that the solutions provided by NeL are perfectly adapted to the requirements of the product. In a nutshell this product contains animated characters walking around and interacting with each other in indoor and outdoor environments. The feature list below corresponds to the requirements of this type of product.

+ +

NeL MMORPG architecture

+

The NeL solution is designed around a typical client/ server setup with the following physical machines:

+Admin site +
    +
  • Login server
    + Manages user login and password authentication and negotiates with shards for connection points for clients. +
  • Shard administration servers
    + Server that communicate, by secure means, with the different servers of the different shards that are up. +
+Client site +
    +
  • Client PC
    + Has client software & data installed +
+Server site +

The servers at each site are organised into sets that each manage simulate a single complete instance of a virtual univers. These groups arerefered to as shards. Each shard has the following servers on its own dedicated LAN :

+
    +
  • Front end servers
    + A number of servers that manage player connections +
  • Back end servers
    + One or more servers that manage the game world and AI.
    + The back end software comprises a set of executables called 'services'. The list of services required to run a shard back end is product dependent. Any number of services can run on each back end server. +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/features_nel.php3 b/docs/features_nel.php3 deleted file mode 100644 index ad25fca8..00000000 --- a/docs/features_nel.php3 +++ /dev/null @@ -1,109 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
NeL General Documentation : Introduction
- -

What is NeL

-

NeL is a toolkit for the development of massively online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code. - -

Development philosophy

-

NeL is not a complete black box solution for absolutely any game that can be imagined.

-

Nevrax believe that any cutting edge interactive entertainment product needs a technology platform that is tuned to its specific requirements. NeL is intended to be considered as a library of components that can be added to, adapted or extended to meet the specific requirements of the products that are based on it.

-

It is clear that 'look alike' products that use the complete set or a sub-set of the features for an existing NeL product may get away with no extra technology development work at all.

-

Any technology developed for new NeL-based products should be fed back into NeL to allow the library to evolve and to stay at the leading edge.

-

The NeL development teams at Nevrax work closely with the internal product development teams to ensure that the solutions provided by NeL are perfectly adapted to the requirements of the product. In a nutshell this product contains animated characters walking around and interacting with each other in indoor and outdoor environments. The feature list below corresponds to the requirements of this type of product.

- -

NeL MMORPG architecture

-

The NeL solution is designed around a typical client/ server setup with the following physical machines:

-Admin site -
    -
  • Login server
    - Manages user login and password authentication and negotiates with shards for connection points for clients. -
  • Shard administration servers
    - Server that communicate, by secure means, with the different servers of the different shards that are up. -
-Client site -
    -
  • Client PC
    - Has client software & data installed -
-Server site -

The servers at each site are organised into sets that each manage simulate a single complete instance of a virtual univers. These groups arerefered to as shards. Each shard has the following servers on its own dedicated LAN :

-
    -
  • Front end servers
    - A number of servers that manage player connections -
  • Back end servers
    - One or more servers that manage the game world and AI.
    - The back end software comprises a set of executables called 'services'. The list of services required to run a shard back end is product dependent. Any number of services can run on each back end server. -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/features_nel_3d.php b/docs/features_nel_3d.php new file mode 100644 index 00000000..4ff5b894 --- /dev/null +++ b/docs/features_nel_3d.php @@ -0,0 +1,213 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
NeL 3D Library : Features
+ + +

Introduction

+ +

The NeL 3D library includes 3D audio and video rendering modules.

+

The objective of the 3D library is to provide an architecture framework for housing the code modules required for representing a virtual universe, and its contents, in 3D.

+

Nevrax are developing the code modules required to represent the universe that their product is based around. This universe includes animated characters, objects and special effects in a variety of environments including undulating terrain, towns and the insides of buildings.

+ +

Portability

+

NeL's 3D library is structured in layers built on top of a common driver layer. The Nevrax team are working with an OpenGL implementation of the driver layer, though there will certainly be further implementations for other graphics systems such as DirectX.

+

NeL is currently tested on GNU/Linux and Microsoft Windows platforms.

+ +

Target Platforms

+

There are background loading and dynamic level of detail systems that apply to all components of the 3D library, allowing the software to be addapted to run efficiently on different specifications of hardware. +

The target test machine spec is as follows:

+
    +
  • Intel Pentium3 1GHz +
  • Graphics card comprising Nvidia NV20 chipset +
  • 128MBytes RAM +
  • 4GBytes free space on hard disk +
  • DVD-ROM +
  • Sound card - minimum spec to be defined +
+

Nevrax expect their product to run at 30fps at 1024x768 resolution on a machine of this spec

+ +

Features

+ +

Undulating Landscapes

+
    +
  • Bezier patch landscape modeling gives NeL enormously more flexibilty than traditional height fields. NeL supports vertical faces, overhangs, and so on. +
  • The ROAM algorithm is used to provide adaptive subdivision of the landscape based on distance from the camera, steepness, etc. +
  • Geomorphing is used between LODs (levels of detail) to eliminate popping. +
  • Landscape colouring effects include vertex colouring and application of pre-calculated shadow maps. Pre-calculated shadows can have soft edges while real-time shadows obviously can not. Shadows can be coloured and faded at run time +
  • Lightmaps are used for landscape lighting to avoid lighting changing with LOD transitions +
  • Landscape texture mapping at a constant 1.5cm/ texel, with the possibility of a second complete additive texture layer. Texture continuity breaks due to bilinear filtering have been eliminated. +
  • Landscape is dynamicaly streamed into memory with background loading +
  • 'Snap To Ground' functionality allows objects that are on the ground to remain attached to the surface as it geomorphs +
+To be developed : +
    +
  • Displacement maps (also known as geometric noise) - these are taken into account during lightmap generation which means that they can still be 'seen' at low levels of detail +
  • Dynamic lighting +
  • Support for scrolling shadow maps on the ground (to represent moving clouds) +
+ +

Portal based Streets and interiors

+
    +
  • Static light maps: up to 3 layers of light map simultaneously - each layer can be enabled, dissabled, faded or coloured in real time +
  • Tools: ligh map generation: max plugin: support for different lamp types, ray tracing for shadows, projected images (like a slide projector), support for coloured translucent objects influencing light colour (eg coloured glass), support for saturation (with lighting at > 100%), mixing of vertex colours into light map calculation +
+To be developed +
    +
  • Use of portal algorithm for view determination +
  • Support for portals for view casting from interiors into the landscape mesh +
+ +

Characters and objects

+
    +
  • Component based object construction, which allows the assembly of multiple "parts" of objects into a single mesh around a single skeleton +
+In development +
    +
  • Multi-Resolution Meshes, to provide a smooth reduction in polygon count as objects retreat into the distance. Full implementaion of the technicque presented by Hope, in a recent paper, with geomorphing. This implementation provides superior results for low detail LODs and smooth transitions between LODs. +
  • Optimised management of extremely low detail 'billboard' versions ofobjects +
  • The LOD system is capable of working with a subset of the LODs. This means that the high detail LODs don't have to be loaded if there is insuffricient memory or if the client machine is not sufficiently powerful to make use of them. +
+ +

Animation

+
    +
  • Skinning: support for skinning with up to 4 matrices per vertex +
  • Smooth transitions between animations +
  • Controlable blending of multiple animations (eg 70% walk + 30% limp) +
  • Application of different animations to different parts of skeleton (eg run + punch) +
  • Animation types (so far): bones, material & light parameters +
  • Animation export plugins for 3DStudio Max: feature more or less complete set of 3DStudio animation controlers (bezier, tcb, linear, etc) and support for biped (Character Studio) skeleton +
  • Skinning export plugins for 3DStudio Max: support both physique (character studio) & com_skin2 skinning data +
+To be developed : +
    +
  • Blended Shape animation, to provide morphing and lip-sync style animations +
  • Inverse kinematics - a very simple and restrictive solver intended only for slight animation adjustments such as snapping feet to ground. +
  • Animation types: blend shape blend sliders, logical data such as audio triggers, etc. +
+ +

Materials

+
    +
  • Support for environment mapping, multi-texturing, texture-colouration. +
  • Tools: more or less complete support for 3ds max materials +
+To be developed : +
    +
  • Support for bump mapping +
  • Vertex and pixel shader implementations for GeForce3 and above +
+ +

Particle system

+
    +
  • Support for various particles representations, including dot, line, triangles fans, bitmaps, shockwave, ripples, meshes. +
  • A variety of emitters are available : mesh, cone, plane, points and sphere emitters. +
  • Forces can be applied to particles +
  • Support for simple collision shapes for particles +
  • Support for LOD with distance +
  • Tools: custom WYSIWYG editor +
+To be developed : +
    +
  • Particle systems can cast light into the scene and be lit by scene lights +
  • Integration of tools with Max and with animation exporters +
+ +

Other Special Effects

+To be developed : +
    +
  • Screen distortion effects +
  • Real time shadow casting +
  • Water rendering effects +
+ +

Audio

+In development : +
    +
  • 2D and 3D audio engine +
  • Management of localised environment sounds (migration between 3d and 2d effcts) +
  • Management of audio environment (effect of environment on sound, etc) +
  • Scripted composite sounds for environments including cross fades between randomly selected loops with an additional layer of randomly triggered spot sounds +
  • Open AL/ Direct Sound implementations +
+ +

Technical Features

+
    +
  • Exploitation of 3D graphic accelerator cards' TNL, pixel shader and vertex shader capabilities. +
  • Adaptive memory management with background hard disk data streaming. +
  • Adaptive texture and polygon detail to manage CPU load, GPU load and video memory constraints. +
+To be developed : +
    +
  • GeForce 3 optimisation +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/features_nel_3d.php3 b/docs/features_nel_3d.php3 deleted file mode 100644 index 4ff5b894..00000000 --- a/docs/features_nel_3d.php3 +++ /dev/null @@ -1,213 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
NeL 3D Library : Features
- - -

Introduction

- -

The NeL 3D library includes 3D audio and video rendering modules.

-

The objective of the 3D library is to provide an architecture framework for housing the code modules required for representing a virtual universe, and its contents, in 3D.

-

Nevrax are developing the code modules required to represent the universe that their product is based around. This universe includes animated characters, objects and special effects in a variety of environments including undulating terrain, towns and the insides of buildings.

- -

Portability

-

NeL's 3D library is structured in layers built on top of a common driver layer. The Nevrax team are working with an OpenGL implementation of the driver layer, though there will certainly be further implementations for other graphics systems such as DirectX.

-

NeL is currently tested on GNU/Linux and Microsoft Windows platforms.

- -

Target Platforms

-

There are background loading and dynamic level of detail systems that apply to all components of the 3D library, allowing the software to be addapted to run efficiently on different specifications of hardware. -

The target test machine spec is as follows:

-
    -
  • Intel Pentium3 1GHz -
  • Graphics card comprising Nvidia NV20 chipset -
  • 128MBytes RAM -
  • 4GBytes free space on hard disk -
  • DVD-ROM -
  • Sound card - minimum spec to be defined -
-

Nevrax expect their product to run at 30fps at 1024x768 resolution on a machine of this spec

- -

Features

- -

Undulating Landscapes

-
    -
  • Bezier patch landscape modeling gives NeL enormously more flexibilty than traditional height fields. NeL supports vertical faces, overhangs, and so on. -
  • The ROAM algorithm is used to provide adaptive subdivision of the landscape based on distance from the camera, steepness, etc. -
  • Geomorphing is used between LODs (levels of detail) to eliminate popping. -
  • Landscape colouring effects include vertex colouring and application of pre-calculated shadow maps. Pre-calculated shadows can have soft edges while real-time shadows obviously can not. Shadows can be coloured and faded at run time -
  • Lightmaps are used for landscape lighting to avoid lighting changing with LOD transitions -
  • Landscape texture mapping at a constant 1.5cm/ texel, with the possibility of a second complete additive texture layer. Texture continuity breaks due to bilinear filtering have been eliminated. -
  • Landscape is dynamicaly streamed into memory with background loading -
  • 'Snap To Ground' functionality allows objects that are on the ground to remain attached to the surface as it geomorphs -
-To be developed : -
    -
  • Displacement maps (also known as geometric noise) - these are taken into account during lightmap generation which means that they can still be 'seen' at low levels of detail -
  • Dynamic lighting -
  • Support for scrolling shadow maps on the ground (to represent moving clouds) -
- -

Portal based Streets and interiors

-
    -
  • Static light maps: up to 3 layers of light map simultaneously - each layer can be enabled, dissabled, faded or coloured in real time -
  • Tools: ligh map generation: max plugin: support for different lamp types, ray tracing for shadows, projected images (like a slide projector), support for coloured translucent objects influencing light colour (eg coloured glass), support for saturation (with lighting at > 100%), mixing of vertex colours into light map calculation -
-To be developed -
    -
  • Use of portal algorithm for view determination -
  • Support for portals for view casting from interiors into the landscape mesh -
- -

Characters and objects

-
    -
  • Component based object construction, which allows the assembly of multiple "parts" of objects into a single mesh around a single skeleton -
-In development -
    -
  • Multi-Resolution Meshes, to provide a smooth reduction in polygon count as objects retreat into the distance. Full implementaion of the technicque presented by Hope, in a recent paper, with geomorphing. This implementation provides superior results for low detail LODs and smooth transitions between LODs. -
  • Optimised management of extremely low detail 'billboard' versions ofobjects -
  • The LOD system is capable of working with a subset of the LODs. This means that the high detail LODs don't have to be loaded if there is insuffricient memory or if the client machine is not sufficiently powerful to make use of them. -
- -

Animation

-
    -
  • Skinning: support for skinning with up to 4 matrices per vertex -
  • Smooth transitions between animations -
  • Controlable blending of multiple animations (eg 70% walk + 30% limp) -
  • Application of different animations to different parts of skeleton (eg run + punch) -
  • Animation types (so far): bones, material & light parameters -
  • Animation export plugins for 3DStudio Max: feature more or less complete set of 3DStudio animation controlers (bezier, tcb, linear, etc) and support for biped (Character Studio) skeleton -
  • Skinning export plugins for 3DStudio Max: support both physique (character studio) & com_skin2 skinning data -
-To be developed : -
    -
  • Blended Shape animation, to provide morphing and lip-sync style animations -
  • Inverse kinematics - a very simple and restrictive solver intended only for slight animation adjustments such as snapping feet to ground. -
  • Animation types: blend shape blend sliders, logical data such as audio triggers, etc. -
- -

Materials

-
    -
  • Support for environment mapping, multi-texturing, texture-colouration. -
  • Tools: more or less complete support for 3ds max materials -
-To be developed : -
    -
  • Support for bump mapping -
  • Vertex and pixel shader implementations for GeForce3 and above -
- -

Particle system

-
    -
  • Support for various particles representations, including dot, line, triangles fans, bitmaps, shockwave, ripples, meshes. -
  • A variety of emitters are available : mesh, cone, plane, points and sphere emitters. -
  • Forces can be applied to particles -
  • Support for simple collision shapes for particles -
  • Support for LOD with distance -
  • Tools: custom WYSIWYG editor -
-To be developed : -
    -
  • Particle systems can cast light into the scene and be lit by scene lights -
  • Integration of tools with Max and with animation exporters -
- -

Other Special Effects

-To be developed : -
    -
  • Screen distortion effects -
  • Real time shadow casting -
  • Water rendering effects -
- -

Audio

-In development : -
    -
  • 2D and 3D audio engine -
  • Management of localised environment sounds (migration between 3d and 2d effcts) -
  • Management of audio environment (effect of environment on sound, etc) -
  • Scripted composite sounds for environments including cross fades between randomly selected loops with an additional layer of randomly triggered spot sounds -
  • Open AL/ Direct Sound implementations -
- -

Technical Features

-
    -
  • Exploitation of 3D graphic accelerator cards' TNL, pixel shader and vertex shader capabilities. -
  • Adaptive memory management with background hard disk data streaming. -
  • Adaptive texture and polygon detail to manage CPU load, GPU load and video memory constraints. -
-To be developed : -
    -
  • GeForce 3 optimisation -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/features_nel_ai.php b/docs/features_nel_ai.php new file mode 100644 index 00000000..5465fdd5 --- /dev/null +++ b/docs/features_nel_ai.php @@ -0,0 +1,105 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
NeL AI Library : Features
+ + +

Introduction

+

The objective of the AI library is to provide a complete toolbox of logic components for the implementation of 'believable' computer controlled characters in a massively multi-user universe simulation.

+ +

Features

+ +

Autonomous agents

+
  • Distributed autonomous agent framework infrastructure +
  • Run time agent definition scripting system (see below) +
  • Tool set for creation of hard-coded agents +
  • Agents are constructed as hierachical agregations of sub-elements +
  • Messaging system allows transparent routing of messages between agents within a single application or between aplications on a single shard. +
+ +

A dedicated scripting language

+
    +
  • Based on a virtual machine approach (similar to Java) +
  • Object oriented, with a strong agent flavor +
  • Declarative rather than procedural - which makes it well adapted to the definition of agregatins +
+ +

Basic components for use in Agent design

+
    +
  • Finite state automaton plugin for agent framework +
  • 'Operator' based action planning plugin for the agent framework +
  • 'Classifier' based learning plugin for the agent framework +
  • Agent memory plugin for the agent framework +
  • Fuzzy logic library with fuzzy logic controler plugin for the agent framework +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/features_nel_ai.php3 b/docs/features_nel_ai.php3 deleted file mode 100644 index 5465fdd5..00000000 --- a/docs/features_nel_ai.php3 +++ /dev/null @@ -1,105 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
NeL AI Library : Features
- - -

Introduction

-

The objective of the AI library is to provide a complete toolbox of logic components for the implementation of 'believable' computer controlled characters in a massively multi-user universe simulation.

- -

Features

- -

Autonomous agents

-
  • Distributed autonomous agent framework infrastructure -
  • Run time agent definition scripting system (see below) -
  • Tool set for creation of hard-coded agents -
  • Agents are constructed as hierachical agregations of sub-elements -
  • Messaging system allows transparent routing of messages between agents within a single application or between aplications on a single shard. -
- -

A dedicated scripting language

-
    -
  • Based on a virtual machine approach (similar to Java) -
  • Object oriented, with a strong agent flavor -
  • Declarative rather than procedural - which makes it well adapted to the definition of agregatins -
- -

Basic components for use in Agent design

-
    -
  • Finite state automaton plugin for agent framework -
  • 'Operator' based action planning plugin for the agent framework -
  • 'Classifier' based learning plugin for the agent framework -
  • Agent memory plugin for the agent framework -
  • Fuzzy logic library with fuzzy logic controler plugin for the agent framework -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/features_nel_misc.php b/docs/features_nel_misc.php new file mode 100644 index 00000000..ab94bfc7 --- /dev/null +++ b/docs/features_nel_misc.php @@ -0,0 +1,148 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
NeL Misc Library : Features
+ + +

Introduction

+

The Misc library contains all the core types and functionality and utilities necessary to use the Net, AI, 3D or PACS libraries.

+

It also includes a handful of handy utilities that don't belong in any of the other libraries.

+ +

Features

+ +

Core functionality

+
    +
  • base data types +
  • platform independent data type definitions such as sint32, uint32, etc +
  • exception base class +
  • debugging macros +
  • debugging macros (assertions, debugging information, warnings,...) w/ link to displayers +
  • A fistfull of handy common routines and classes - maths, string manipulation, etc +
  • Reference counting system with smart pointers +
  • Smart pointers free the data they point to when it is no longer referenced +
  • unicode string management +
  • displayer system which abstracts the displayer (may be stdout, a file, a console window, etc.) +
  • A log message management system based on displayers. Provides message filtering functionality and support for multiple simultaneous displayers. +
  • The Class registry which allows instantiation of polymorphic classes by name. +
+ +

Portability

+
    +
  • System information retrieval (retrieves info on the system OS, processor, RAM) +
  • Generalised event management system (c/f windows) used for input (keyboard, mouse, etc) +
  • OS independent thread & mutex management with Posix and Windows implementations +
  • System for management of internationaly localised text +
  • OS independent time retrieval (retrieves time from local machine's clock) +
+ +

Miscelaneous 3d primitives & utilities

+
    +
  • Bounding box and bounding sphere implementations with 1001 associated utility routines +
  • complete implementation of different formats of RGBA colour representations +
+ +

Maths

+
    +
  • Quaternion classes for quaternion maths +
  • Matrix classes for 3d maths +
  • 2D and 3D vector classes in integer, single precision and double precision float implementations +
  • Plane class with associated functionality - projection of vector onto plane, polygon or line segment clipping against plane, etc. +
+ +

Memory management

+
    +
  • Block and pool based memory managers for minimisation of memory fragmentation +
  • A Fifo manager that houses arbitrary non-uniform sized data blocks. The fifo size is dynamic but memory allocation and liberation is minimal. +
+ +

Serialisation & streams

+
    +
  • "Based on Java's SERIALISE" +
  • Includes a file version support mechanism that allows backward compatibility (with old data files) +
  • Supports serialisation of: base types, classes composed of serialisable types, STL containers of serialisable types, pointers to serialisable data (including a reference counting system which serialises the data that the pointer points to unless it has already been serialsed by another pointer to the same data - At re-load time the pointers are fixed back up to point to the same data). +
  • Support for Polymorphism (serialisation of classes repherenced by a pinter of their base class type) +
  • Binary memory stream, ASCII memory stream, binary file stream implementations. +
+ +

Utilities

+
    +
  • Functionality for loading and treating bitmaps of different formats +
  • A Search path management system for locating data files +
  • A string/ integer association system (handy for compacting message types) +
  • A configuration file loading and management system - capable of detecting changes to configuration files and reloading their contents without stopping and relaunching the program. +
  • Manages variables of type string, integer, float, or an array of any of these. +
  • A system for managing lists of functions refernced by a string and calling the appropriate command when passed a string. This system is handy for managing a command line at run time. +
  • A system for queuing tasks for threads to process. This system is handy for things like background loading. +
  • Complete implementation of arbitrary sized bit arrays +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/features_nel_misc.php3 b/docs/features_nel_misc.php3 deleted file mode 100644 index ab94bfc7..00000000 --- a/docs/features_nel_misc.php3 +++ /dev/null @@ -1,148 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
NeL Misc Library : Features
- - -

Introduction

-

The Misc library contains all the core types and functionality and utilities necessary to use the Net, AI, 3D or PACS libraries.

-

It also includes a handful of handy utilities that don't belong in any of the other libraries.

- -

Features

- -

Core functionality

-
    -
  • base data types -
  • platform independent data type definitions such as sint32, uint32, etc -
  • exception base class -
  • debugging macros -
  • debugging macros (assertions, debugging information, warnings,...) w/ link to displayers -
  • A fistfull of handy common routines and classes - maths, string manipulation, etc -
  • Reference counting system with smart pointers -
  • Smart pointers free the data they point to when it is no longer referenced -
  • unicode string management -
  • displayer system which abstracts the displayer (may be stdout, a file, a console window, etc.) -
  • A log message management system based on displayers. Provides message filtering functionality and support for multiple simultaneous displayers. -
  • The Class registry which allows instantiation of polymorphic classes by name. -
- -

Portability

-
    -
  • System information retrieval (retrieves info on the system OS, processor, RAM) -
  • Generalised event management system (c/f windows) used for input (keyboard, mouse, etc) -
  • OS independent thread & mutex management with Posix and Windows implementations -
  • System for management of internationaly localised text -
  • OS independent time retrieval (retrieves time from local machine's clock) -
- -

Miscelaneous 3d primitives & utilities

-
    -
  • Bounding box and bounding sphere implementations with 1001 associated utility routines -
  • complete implementation of different formats of RGBA colour representations -
- -

Maths

-
    -
  • Quaternion classes for quaternion maths -
  • Matrix classes for 3d maths -
  • 2D and 3D vector classes in integer, single precision and double precision float implementations -
  • Plane class with associated functionality - projection of vector onto plane, polygon or line segment clipping against plane, etc. -
- -

Memory management

-
    -
  • Block and pool based memory managers for minimisation of memory fragmentation -
  • A Fifo manager that houses arbitrary non-uniform sized data blocks. The fifo size is dynamic but memory allocation and liberation is minimal. -
- -

Serialisation & streams

-
    -
  • "Based on Java's SERIALISE" -
  • Includes a file version support mechanism that allows backward compatibility (with old data files) -
  • Supports serialisation of: base types, classes composed of serialisable types, STL containers of serialisable types, pointers to serialisable data (including a reference counting system which serialises the data that the pointer points to unless it has already been serialsed by another pointer to the same data - At re-load time the pointers are fixed back up to point to the same data). -
  • Support for Polymorphism (serialisation of classes repherenced by a pinter of their base class type) -
  • Binary memory stream, ASCII memory stream, binary file stream implementations. -
- -

Utilities

-
    -
  • Functionality for loading and treating bitmaps of different formats -
  • A Search path management system for locating data files -
  • A string/ integer association system (handy for compacting message types) -
  • A configuration file loading and management system - capable of detecting changes to configuration files and reloading their contents without stopping and relaunching the program. -
  • Manages variables of type string, integer, float, or an array of any of these. -
  • A system for managing lists of functions refernced by a string and calling the appropriate command when passed a string. This system is handy for managing a command line at run time. -
  • A system for queuing tasks for threads to process. This system is handy for things like background loading. -
  • Complete implementation of arbitrary sized bit arrays -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/features_nel_net.php b/docs/features_nel_net.php new file mode 100644 index 00000000..75b3330a --- /dev/null +++ b/docs/features_nel_net.php @@ -0,0 +1,137 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
NeL Network Library : Features
+ + +

Introduction

+

The first objective of NeL's network library (NeL Net) is to provide a complete OS-independent data transfer API that abstracts system specific code and provides mechanisms for complete control of bandwidth usage by the application code.

+

NeL Net has a further objective of providing a complete toolkit, comprising further layers of library code and core service implementations, for the development of performance critical distributed program systems for massively multi user universe servers.

+ +

Features

+

General Features

+
    +
  • A layer based architecture with API access to every layer +
  • Client application API +
  • Encapsulation of process of connection to Shard Front End +
  • Encapsulation of buffering and data transmission to Shard Front End +
  • Encapsulation of reception and decoding of messages within data packets received from shard +
  • Current implementation is based on TCP/IP +
+ +

Shard Back End application ('service') Framework and API

+
    +
  • Framework for developing new services +
  • Abstraction of inter-service connections with disconnection and reconnection management +
  • Management of transmission of messages to other services (with buffering) +
  • Management of reception and treatment of messages from other services (with buffering) +
  • Management of time synchronisation +
  • Management of log messages with consolidation and filtering tools +
  • Centralised shard administration and management +
  • Current implementation is based on TCP/IP +
+ +

Shard Front End application API

+
    +
  • All features pertaining to back end services +
  • Multi-threaded client-communication management for large numbers of client connections +
  • Separation of incoming messages from the shard back end and incoming messages from clients +
  • Login authentication +
  • Mechanisms for monitoring growth of output data packets to the application program +
  • Current implementation is based on TCP/IP +
+ +

Login/ logout management

+
    +
  • Automated system fo registration of shards with Login Manager +
  • API for connection of client application to Login Manager, for login and password authentication and for valid shard list retrieval by the client. +
  • API for selection of a shard (for an authenticated user), selection of least loaded front end server on the shard for client connection and secure system for establishing the client connection. +
+ + +

On the fly backup management (to be developped)

+
    +
  • Management of a backup schedules and shard backup synchronisation +
  • Standalone service dedicated to reception and secure storage of backup data (with concept of transactions and data coherency) +
  • Service API for backing up data +
+ +

Future Spec enhancements (to be developped)

+
    +
  • Multi-threaded application support +
  • Add a UDP channel from Client to Shard front end +
  • Investigate ways of adding a UDP channel from shard to client (looks tricky) +
  • Add support for data compression +
  • Optimisation of communication between services running on the same server (via pipes and/ or shared memory) +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/features_nel_net.php3 b/docs/features_nel_net.php3 deleted file mode 100644 index 75b3330a..00000000 --- a/docs/features_nel_net.php3 +++ /dev/null @@ -1,137 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
NeL Network Library : Features
- - -

Introduction

-

The first objective of NeL's network library (NeL Net) is to provide a complete OS-independent data transfer API that abstracts system specific code and provides mechanisms for complete control of bandwidth usage by the application code.

-

NeL Net has a further objective of providing a complete toolkit, comprising further layers of library code and core service implementations, for the development of performance critical distributed program systems for massively multi user universe servers.

- -

Features

-

General Features

-
    -
  • A layer based architecture with API access to every layer -
  • Client application API -
  • Encapsulation of process of connection to Shard Front End -
  • Encapsulation of buffering and data transmission to Shard Front End -
  • Encapsulation of reception and decoding of messages within data packets received from shard -
  • Current implementation is based on TCP/IP -
- -

Shard Back End application ('service') Framework and API

-
    -
  • Framework for developing new services -
  • Abstraction of inter-service connections with disconnection and reconnection management -
  • Management of transmission of messages to other services (with buffering) -
  • Management of reception and treatment of messages from other services (with buffering) -
  • Management of time synchronisation -
  • Management of log messages with consolidation and filtering tools -
  • Centralised shard administration and management -
  • Current implementation is based on TCP/IP -
- -

Shard Front End application API

-
    -
  • All features pertaining to back end services -
  • Multi-threaded client-communication management for large numbers of client connections -
  • Separation of incoming messages from the shard back end and incoming messages from clients -
  • Login authentication -
  • Mechanisms for monitoring growth of output data packets to the application program -
  • Current implementation is based on TCP/IP -
- -

Login/ logout management

-
    -
  • Automated system fo registration of shards with Login Manager -
  • API for connection of client application to Login Manager, for login and password authentication and for valid shard list retrieval by the client. -
  • API for selection of a shard (for an authenticated user), selection of least loaded front end server on the shard for client connection and secure system for establishing the client connection. -
- - -

On the fly backup management (to be developped)

-
    -
  • Management of a backup schedules and shard backup synchronisation -
  • Standalone service dedicated to reception and secure storage of backup data (with concept of transactions and data coherency) -
  • Service API for backing up data -
- -

Future Spec enhancements (to be developped)

-
    -
  • Multi-threaded application support -
  • Add a UDP channel from Client to Shard front end -
  • Investigate ways of adding a UDP channel from shard to client (looks tricky) -
  • Add support for data compression -
  • Optimisation of communication between services running on the same server (via pipes and/ or shared memory) -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/features_nel_pacs.php b/docs/features_nel_pacs.php new file mode 100644 index 00000000..d9f4f23b --- /dev/null +++ b/docs/features_nel_pacs.php @@ -0,0 +1,114 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
NeL Pacs Library : Features
+ + +

Introduction

+ +

The NeL PACS library comprises world surface representations for content movement and collision management for both server and client applications.

+ +

Features

+ +

General features

+
    +
  • Both landscape and enclosed spaces are supported. +
  • PACS can either be linked to application as a library or run as a pair of stand-alone service. +
+ +

Path Finding

+
    +
  • Algorithm for determining (non-convex) surface list for a path +
  • Surface border skirting algorithm for generating paths across surfaces +
+In development : +
    +
  • Genration of 'wide' paths with liberty of movement for management of gine detail obstacle avoidance +
+ +

Collisions

+
    +
  • There is support for both object-object collisins and object-scenery collisions. +
  • Objects are divided into static solid objects, dynamic solid objects and dynamic 'ghost' objects that have no impact on the scenery +
  • Both Logical collisions and Blocking collisions are supported +
  • Blocking collisions may be treated as 'sticky', 'sliding' or 'bounce' +
  • Object collision primitives include cylinders and cuboids. +
  • PACS may maintain a collision space history which allows re-tracing of movement information received late, by the server, through the world as it was for lag management purposes. +
+ +

Tools

+
    +
  • Landscape scenery is converted directly to a surface representation by exported data re-processing utilities. +
  • Streets and interiors must have explicit collision models (surface models) which are exported from 3DStudio Max and processed to generate the same surface representation. +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/features_nel_pacs.php3 b/docs/features_nel_pacs.php3 deleted file mode 100644 index d9f4f23b..00000000 --- a/docs/features_nel_pacs.php3 +++ /dev/null @@ -1,114 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
NeL Pacs Library : Features
- - -

Introduction

- -

The NeL PACS library comprises world surface representations for content movement and collision management for both server and client applications.

- -

Features

- -

General features

-
    -
  • Both landscape and enclosed spaces are supported. -
  • PACS can either be linked to application as a library or run as a pair of stand-alone service. -
- -

Path Finding

-
    -
  • Algorithm for determining (non-convex) surface list for a path -
  • Surface border skirting algorithm for generating paths across surfaces -
-In development : -
    -
  • Genration of 'wide' paths with liberty of movement for management of gine detail obstacle avoidance -
- -

Collisions

-
    -
  • There is support for both object-object collisins and object-scenery collisions. -
  • Objects are divided into static solid objects, dynamic solid objects and dynamic 'ghost' objects that have no impact on the scenery -
  • Both Logical collisions and Blocking collisions are supported -
  • Blocking collisions may be treated as 'sticky', 'sliding' or 'bounce' -
  • Object collision primitives include cylinders and cuboids. -
  • PACS may maintain a collision space history which allows re-tracing of movement information received late, by the server, through the world as it was for lag management purposes. -
- -

Tools

-
    -
  • Landscape scenery is converted directly to a surface representation by exported data re-processing utilities. -
  • Streets and interiors must have explicit collision models (surface models) which are exported from 3DStudio Max and processed to generate the same surface representation. -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/gpl.php b/docs/gpl.php new file mode 100644 index 00000000..30e6a399 --- /dev/null +++ b/docs/gpl.php @@ -0,0 +1,164 @@ + + + + Nevrax.org : License + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+home + +
+ + + + + +
License
+ + + + + + + + +
NeL License
+

NeL is distributed under the GNU General Public License.

+

You may find the original license document and assorted documents on +Free Software on the site of the Free +Software Foundation. The license +text has been copied +verbatim (per the license itself) below.

+ + + + + + + + +
Gnu General Public License
+ + + + +
+ +

Version 2, June 1991

+
Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
+59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+

Preamble

+

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

+

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

+

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

+

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

+

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

+

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

+

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

+

The precise terms and conditions for copying, distribution and modification follow.

+

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

+

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

+

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

+

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

+

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

+ +
    +
  • a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
  • +
  • b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
  • +
  • c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
+ +

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

+

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

+

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

+

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

+ +
    +
  • a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • +
  • b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • +
  • c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+ +

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

+

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

+

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

+

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

+

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

+

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

+

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

+

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

+

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

+

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

+

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

+

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

+

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

+

NO WARRANTY

+

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+ +
+ + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/gpl.php3 b/docs/gpl.php3 deleted file mode 100644 index 30e6a399..00000000 --- a/docs/gpl.php3 +++ /dev/null @@ -1,164 +0,0 @@ - - - - Nevrax.org : License - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-home - -
- - - - - -
License
- - - - - - - - -
NeL License
-

NeL is distributed under the GNU General Public License.

-

You may find the original license document and assorted documents on -Free Software on the site of the Free -Software Foundation. The license -text has been copied -verbatim (per the license itself) below.

- - - - - - - - -
Gnu General Public License
- - - - -
- -

Version 2, June 1991

-
Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-

Preamble

-

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

-

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

-

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

-

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

-

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

-

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

-

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

-

The precise terms and conditions for copying, distribution and modification follow.

-

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

-

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

-

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

-

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

-

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

-

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

- -
    -
  • a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
  • -
  • b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
  • -
  • c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
- -

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

-

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

-

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

-

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

- -
    -
  • a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • -
  • b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
  • -
  • c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
- -

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

-

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

-

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

-

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

-

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

-

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

-

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

-

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

-

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

-

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

-

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

-

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

-

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

-

NO WARRANTY

-

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

-

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

- -
- - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/nel_extensions.php b/docs/nel_extensions.php new file mode 100644 index 00000000..6130e6e9 --- /dev/null +++ b/docs/nel_extensions.php @@ -0,0 +1,238 @@ + + + + Nevrax.org : nel_extensions + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+nel_extensions + +
+ + + + + +
NeL extentions
+ +

This document briefly describes the different filename extensions used and/or created by Nevrax for their library. If you have any suggestion, missing extention, +please report to us

+ + + + + + + + + +
 Terminology
+ +

build_gamedata : automatic fully incremental batch process that produce final compiled data from top most working data.

+

WK : WORKING DATA : This data is a file edited by the artists. It will not be in client final data. This data is an input data for the build_gamedata process.

+

RT : RUNTIME DATA : This data is generated by build_gamedata. It is not edited by the artists. It will be included in client final data.

+

WR : WORKING and RUNTIME DATA : This data is a file edited by the artists but it will be included in final data. Build_gamedata will only copy it.

+

TP : TEMPORARY DATA : This data is produce by build_gamedata to build another kind of data. This data is not edited by the artists and not included in final data.

+ + + + + + + + + +
 Extentions listLast updated: August 22th 2002
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExtensionTypeComment
.animRT +NeL 3d animations. Contains several named animation tracks. Generated from .max files by build_gamedata. +It is readable by NeL. Viewable in object_viewer. +
.bankWK +NeL tile bank. Bank of bitmap tiles used by the landscape. Edited by the artists with tile_edit.exe. +build_gamedata generates .smallbank with it. Only one bank file per landscape. Readable by NeL. +
.cfgRT +Configuration file used by NLMISC::CConfigFile class. Used to set user parameters for NeL applications. +
.clodbankRT +Character LOD bank using 3d sprit objects (quake 1 like) to be quickly draw and animated when far away. +Generated from .max files by build_gamedata. Readable by NeL. +
.cmbTP +Simple geometry dump used by build_gamedata to compute surfaces for interior collision meshes. Exported from .max files. +Not readable by NeL. +
.ddsRT +Microsoft DirectDraw Surface (DDS) format is used to store textures and cubic environment maps with mipmaps. It compress textures +in a hardware friendly format. Generated from .tga files by build_gamedata. Readable by NeL. +More information here +
.farbankRT +NeL far bank. Bank of bitmap used by the landscape to map patches when far away. Generated by build_gamedata from .tga tiles and the +bank file. +Only one farbank file per landscape. Readable by NeL. +
.grRT +Instances of local retrievers. Used for NeL 3d collisions. Readable by NeL. +
.igRT +NeL 3d Instance Group. Contains a list of instanced stuffs in a landscape (a shape reference with a matrix) (optinal), a list of +lights (optinal) and +a cluster system description (optinal). It is generated by build_gamedata from .max files. Readable by NeL. +
.lrTP +Temporary landscape zone surface file produced during by build_gamedata from a .tessel file. Used to build .gr and .rbank files. Not +readable by NeL. +
.maxWK +3dsmax file format. Used to produce .anim, .clodbank, .cmb, .ig, .pacs_prim, .shape, .skel, .swt, .zone files. NeL can't direclty +read it. +build_gamedata exports those files using 3dsmax scripts and plugins. +
.pacs_primRT +Set of PACS primitive (Box or cylinder description with size, radius, height, position and PACS properties). Generated from .max +file by build_gamedata. +Readable by NeL. +
.psWK +NeL 3d particule system. This file is edited with object_viewer.exe. +Readable by NeL. In fact, .ps are .shape files. +
.rbankRT +Retrievers Bank. It is the bank of collision zones used by NEL::PACS. +Generated by build_gamedata from .lr files. Readable by NeL. +
.shapeRT +NeL 3d object used to store a 3d mesh. It can be a simple mesh, skinned mesh, a multilod mesh, a lensflare, a remanence mesh, +a water mesh, a particul system. Generated by build_gamedata from .max files. Readable by NeL. +
.skelRT +NeL 3d skeleton description used to deform skinned shapes using .anim. Generated by build_gamedata from .max files. Readable by NeL. +
.smallbankRT +Same file than .bank but some informations have been removed to get a smaller runtime file. Generated by build_gamedata. Readable by +NeL. + +
.swtRT +NeL 3d file that contains weight for skeleton animation. Generated by build_gamedata from .max files. Readable by NeL. +
.tesselTP +Temporary landscape zone tesselation file produced during the build_gamedata process with a .zone and its neighbors. +Used to generate .lr files. Very Hugh zone tesselation dump. (at 0.5 meter). Not used in final data. Not readable by NeL. +
.tgaWK/RT +Targa Truevision Graphics bitmap file format. Edited by artists. Format RGBA 16 and 32 bits uncompressed, RGB 24 bits uncompressed +readable by NeL. This file format is used by build_gamedata to generate .dds files. It is used to as runtime data for +bitmap that doesn't need to be 'dds' compressed. (Like displacement tiles). +
.vegetRT +Vegetable file. This file is a simple mesh with only few polygons used like a blade of grass by a vegetset. +Generated from .max files by build_gamedata. +
.vegetsetWK +Vegetable set file. This file describe a micro-vegetation material. It can be edited with object_viewer.exe. +It can be assigned to a lanscape tileset (in bank file) using tile_edit.exe. + +
.zoneTP +NeL landscape zone made of patches of 160 x 160 meters generated by build_gamedata from .max files. Used by build_gamedata to +produce .zonew files. Readable by NeL. +
.zonewTP +Same file than .zone but welding informations with neighbors has been computed by build_gamedata. Readable by NeL. +
.zonelRT +Same file than zonel but lighing informations have been computed by build_gamedata. Readable by NeL. +
+

+ + + + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/nel_extensions.php3 b/docs/nel_extensions.php3 deleted file mode 100644 index 6130e6e9..00000000 --- a/docs/nel_extensions.php3 +++ /dev/null @@ -1,238 +0,0 @@ - - - - Nevrax.org : nel_extensions - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-nel_extensions - -
- - - - - -
NeL extentions
- -

This document briefly describes the different filename extensions used and/or created by Nevrax for their library. If you have any suggestion, missing extention, -please report to us

- - - - - - - - - -
 Terminology
- -

build_gamedata : automatic fully incremental batch process that produce final compiled data from top most working data.

-

WK : WORKING DATA : This data is a file edited by the artists. It will not be in client final data. This data is an input data for the build_gamedata process.

-

RT : RUNTIME DATA : This data is generated by build_gamedata. It is not edited by the artists. It will be included in client final data.

-

WR : WORKING and RUNTIME DATA : This data is a file edited by the artists but it will be included in final data. Build_gamedata will only copy it.

-

TP : TEMPORARY DATA : This data is produce by build_gamedata to build another kind of data. This data is not edited by the artists and not included in final data.

- - - - - - - - - -
 Extentions listLast updated: August 22th 2002
- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ExtensionTypeComment
.animRT -NeL 3d animations. Contains several named animation tracks. Generated from .max files by build_gamedata. -It is readable by NeL. Viewable in object_viewer. -
.bankWK -NeL tile bank. Bank of bitmap tiles used by the landscape. Edited by the artists with tile_edit.exe. -build_gamedata generates .smallbank with it. Only one bank file per landscape. Readable by NeL. -
.cfgRT -Configuration file used by NLMISC::CConfigFile class. Used to set user parameters for NeL applications. -
.clodbankRT -Character LOD bank using 3d sprit objects (quake 1 like) to be quickly draw and animated when far away. -Generated from .max files by build_gamedata. Readable by NeL. -
.cmbTP -Simple geometry dump used by build_gamedata to compute surfaces for interior collision meshes. Exported from .max files. -Not readable by NeL. -
.ddsRT -Microsoft DirectDraw Surface (DDS) format is used to store textures and cubic environment maps with mipmaps. It compress textures -in a hardware friendly format. Generated from .tga files by build_gamedata. Readable by NeL. -More information here -
.farbankRT -NeL far bank. Bank of bitmap used by the landscape to map patches when far away. Generated by build_gamedata from .tga tiles and the -bank file. -Only one farbank file per landscape. Readable by NeL. -
.grRT -Instances of local retrievers. Used for NeL 3d collisions. Readable by NeL. -
.igRT -NeL 3d Instance Group. Contains a list of instanced stuffs in a landscape (a shape reference with a matrix) (optinal), a list of -lights (optinal) and -a cluster system description (optinal). It is generated by build_gamedata from .max files. Readable by NeL. -
.lrTP -Temporary landscape zone surface file produced during by build_gamedata from a .tessel file. Used to build .gr and .rbank files. Not -readable by NeL. -
.maxWK -3dsmax file format. Used to produce .anim, .clodbank, .cmb, .ig, .pacs_prim, .shape, .skel, .swt, .zone files. NeL can't direclty -read it. -build_gamedata exports those files using 3dsmax scripts and plugins. -
.pacs_primRT -Set of PACS primitive (Box or cylinder description with size, radius, height, position and PACS properties). Generated from .max -file by build_gamedata. -Readable by NeL. -
.psWK -NeL 3d particule system. This file is edited with object_viewer.exe. -Readable by NeL. In fact, .ps are .shape files. -
.rbankRT -Retrievers Bank. It is the bank of collision zones used by NEL::PACS. -Generated by build_gamedata from .lr files. Readable by NeL. -
.shapeRT -NeL 3d object used to store a 3d mesh. It can be a simple mesh, skinned mesh, a multilod mesh, a lensflare, a remanence mesh, -a water mesh, a particul system. Generated by build_gamedata from .max files. Readable by NeL. -
.skelRT -NeL 3d skeleton description used to deform skinned shapes using .anim. Generated by build_gamedata from .max files. Readable by NeL. -
.smallbankRT -Same file than .bank but some informations have been removed to get a smaller runtime file. Generated by build_gamedata. Readable by -NeL. - -
.swtRT -NeL 3d file that contains weight for skeleton animation. Generated by build_gamedata from .max files. Readable by NeL. -
.tesselTP -Temporary landscape zone tesselation file produced during the build_gamedata process with a .zone and its neighbors. -Used to generate .lr files. Very Hugh zone tesselation dump. (at 0.5 meter). Not used in final data. Not readable by NeL. -
.tgaWK/RT -Targa Truevision Graphics bitmap file format. Edited by artists. Format RGBA 16 and 32 bits uncompressed, RGB 24 bits uncompressed -readable by NeL. This file format is used by build_gamedata to generate .dds files. It is used to as runtime data for -bitmap that doesn't need to be 'dds' compressed. (Like displacement tiles). -
.vegetRT -Vegetable file. This file is a simple mesh with only few polygons used like a blade of grass by a vegetset. -Generated from .max files by build_gamedata. -
.vegetsetWK -Vegetable set file. This file describe a micro-vegetation material. It can be edited with object_viewer.exe. -It can be assigned to a lanscape tileset (in bank file) using tile_edit.exe. - -
.zoneTP -NeL landscape zone made of patches of 160 x 160 meters generated by build_gamedata from .max files. Used by build_gamedata to -produce .zonew files. Readable by NeL. -
.zonewTP -Same file than .zone but welding informations with neighbors has been computed by build_gamedata. Readable by NeL. -
.zonelRT -Same file than zonel but lighing informations have been computed by build_gamedata. Readable by NeL. -
-

- - - - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/nelnet.php b/docs/nelnet.php new file mode 100644 index 00000000..3780c401 --- /dev/null +++ b/docs/nelnet.php @@ -0,0 +1,530 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
Nel Network Library
+

Introduction

+

This documents +presents 'NeL Net', the NeL network library.

+

NeL is a toolkit +for the development of massively online universes. It provides the +base technologies and a set of development methodologies for the +development of both client and server code.

+

The NeL Net +comprises code libraries for inter-server communication and +server-client communication. It also provides implementations of the +service executables required by the higher level layers of the code +libraries.

+

Mission Statement

+

The first objective +of NeL Net is to provide a complete data transfer system that +abstracts system specific code and provides mechanisms for complete +control of bandwidth usage by the application code.

+

NeL Net has a +further objective of providing a complete toolkit, comprising further +layers of library code and core service implementations, for the +development of performance critical distributed program systems for +massively multi user universe servers. +

+

The current feature +requirement list for NeL Net corresponds to the application +architecture for Nevrax' first product. This notably includes the +requirement for a centralised login validation system at a separate +geographical location from the universe servers.

+

Nevrax is currently +developing a TCP/IP implementation of the low level network layers. A +UDP implementation may be developed at a later date.

+

Target Platforms

+

The Nevrax team +expect to run GNU/Linux servers for their first product. As such, GNU/Linux +is the primary target operating system.

+

NeL Net is +currently tested on GNU/Linux and Microsoft Windows NT platforms.

+


+

+

Statement of requirements

+

The Network library +addresses the following problems:

+

Client -> Server communication

+
    +
  • The product + code (also referred to as app code) on the Client needs to be able + to pass blocks of information to the network layer for communication + to the server. The network code is responsible for ensuring that + the blocks of data arrive complete server-side. In the majority of + cases the blocks of data from the client will be significantly + smaller than the maximum packet size, which means that the network + code should not need to split data blocks across network packets.

    +
  • In order for + the app code to control the flow of data to the server, the network + code should buffer sends until either an app-definable time has + elapsed or an app-definable packet size has been reached.

    +
  • Note: The + information sent from the client to the server will generally be + small in size, typically representing player actions such as + movement. +

    +
+

Server -> Client communication

+
    +
  • The app code + on the Server needs to be able to pass blocks of information to the + network layer for communication to the client. This problem is + exactly the same as the Client -> Server problem, described + above.

    +
  • The app code + is responsible for limiting the amount of data sent to each player + each second by prioritising the information to be dispatched. In + order to achieve this, the network code should buffer sends until + the app code explicitly requests a buffer flush. The network API + should provide the app code with the means of tracking the growth of + the output buffer. +

    +
  • Note: The + information sent from the server to the client will often be large + in size, as the server must inform the player of changes of state + and position of all other characters and objects in the player's + vicinity. +

    +
+

Inter-Process communication across servers

+
    +
  • The different + processes that make up the game need to be able to send messages to + each other to request or exchange information.

    +
  • There needs to + be a transparent routing mechanism that locates the services to + which messages are addressed and dispatches them.

    +
  • There needs to + be a standard framework that handles the queue of incoming messages + and manages the dispatch of messages to different modules within a + process. (e.g. A process that manages a set of AI controlled + characters may have one module that handles incoming environment + information, another that treats other processes' information + requests, and so on).

    +
+

On the fly backup management

+
    +
  • There needs to + be a reliable centralised system for backing up and retrieving world + data.

    +
  • The system + must be capable of treating large volumes of data as 'transactions'. + This means that if a server goes down - when it comes back up + transactions will never be 'half complete'. Any transactions that + had been begun but not finished must be automatically undone.

    +
  • The backup + system must be capable of managing a 'backup schedule' under which + it sends backup requests to scheduled processes and treats the + return data.

    +
  • The backup + system must be capable of handling spontaneous backups from + different processes (particularly the player management processes + who are capable of backing up players at any time).

    +
  • The backup + system will be called upon to retrieve player data whenever a player + logs in. This operation must be reasonably fast.

    +
  • The backup + system will be called upon to supply data to each system at system + initialisation time. The backup system should supply such systems + with their complete data sets.

    +
+

General requirements

+
    +
  • The app code + is responsible for network traffic and must be capable of much lower + level access to the Network library than the above requirements + suggest.

    +
+

Login/ logout management

+
    +
  • The product + that Nevrax is developing handles multiple instances of the game + world running on different server sets (known as 'Shards') with a + single centralised login manager.

    +
  • The login + manager must:

    +
      +
    • Receive login + requests from client machines

      +
    • Validate + login requests with the account management system

      +
    • Provide the + client with the active shard list

      +
    • Negotiate a + connection with the shard of the client's choice

      +
    • Dispatch the + shard's IP address and a unique login key to the client

      +
    +
  • The login + manager must refuse attempts to login multiple times under the same + user account. This implies that the login manager must be warned + when players log out.

    +
  • The login + system should include client and shard modules that provide a high + level interface to the login manager, encapsulating communication.

    +
+

Account management

+
    +
  • No choice has + been made as to what solution to take to account management at NeL.

    +
  • It is + sufficient to know that we need a standard API for the account + management system capable of validating logins.

    +
+

Technical design details

+

Design outline

+

The NeL network +library provides a single solution which caters for all of the Server +-> Client, Client -> Server and Inter-Process communication +requirements.

+

This solution is +structured as a number of layers that are stacked on top of each +other. The API gives the app programmers direct access to all of the +layers.

+

There is a program +skeleton for the programs within a shard who are capable of +communicating with each other via layer 5 messages. Programs of this +form are referred to as 'Services'.

+

The backup system +is a standalone service (a service being a process which exposes a +standard message interface) which will encapsulate a 3rd party +database.

+

The login manager +and account manager are standalone programs at an isolated site.

+

In a nutshell the +network support layers include:

+ + + + + + + + + + + + + + + + + + + + + + + +
+

Layer 4

+

(Top Layer)

+
+

Inter-Service + message addressing layer

+

Handles routing of messages to + services, encapsulating connection to naming service and handling + of lost connections.

+
+

Layer 3

+
+

Message management layer
(Handling + of asynchronous message passing, and callbacks)

+
+

Layer 2

+
+

Serialised data + management layer

+

Supports the standard serial() + mechanism provided by NeL for handling data streams.

+
+

Layer 1

+
+

Data block + management layer
(buffering and structuring of data with + generic serialization system)

+

Also provides multi-threading + listening system for services

+
+

Layer 0

+

(Bottom Layer)

+
+

Data transfer layer
Abstraction + of the network API and links (PC may be across a network, or local + messaging)

+
+


+

+


+

+

Layer 0

+

Layer 0 includes +the following classes:

+
    +
  • CSock : + Base interface and behavior definition for hierarchical descendents

    +
  • CTcpSock : + Implementation of a socket class for the TCP/IP protocol

    +
  • CUdpSock : + Implementation of a socket class for the UDP protocol

    +
+

**** +Document under construction

+

Layer 1

+

Layer 1 includes +the following classes:

+
    +
  • CBufNetBase : + Buffer functionality common to client and server

    +
  • CBufClient : + Implements client-specific buffer functionality +

    +
  • CBufServer : + Implements server-specific buffer functionality

    +
+

**** +Document under construction

+

Layer 2

+

Layer 2 includes +the following classes:

+
    +
  • CStreamNetBase : + Stream functionality common to client and server

    +
  • CStreamClient : + Client-specific stream functionality

    +
  • CStreamServer : + Server-specific stream functionality

    +
+

**** +Document under construction

+

Layer 3

+

Layer 3 includes +the following classes:

+
    +
  • CCallbackNetBase : + Functionality common to client and server

    +
  • CCallbackClient : + Client-specific functionality

    +
  • CCallbackServer : + Server-specific functionality

    +
+

**** +Document under construction

+

Layer 4

+

**** +Document under construction

+

System Services

+

The following +system services are provided as part of NeL. For each of these +services there exists an API class that may be instantiated in any +app-specific service in order to encapsulate the system service's +functionality.

+

The Naming Service

+

A standalone +program used by all services to reference each other.

+
    +
  • All services + connect to the naming service when they are initialised. They + inform the naming service of their name and whereabouts.

    +
  • The naming + service is capable of informing any service of the whereabouts of + any other service.

    +
  • When more than + one instance of the same service connect to the naming service we + anticipate the possibility of the naming service managing simple + load balancing by distributing connection requests to the given + service across the available instances.

    +
+

API class: +CNamingClient

+
    +
  • Generates + dynamic port numbers

    +
  • Registers the + application service's name with the naming service.

    +
+
    +
  • Retrieves the + IP address and port number for a named service.

    +
  • See + technical documentation for details

    +
+

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

    +
+

The Service Skeleton

+

The network library +presents a generic service skeleton, which includes the base +functions of a distributed service. At initialisation time it +performs the following:

+
    +
  • Reads and + interprets configuration file and command line parameters

    +
  • Redirects the + system signals to NeL handler routines

    +
  • Connects to + the Log Service

    +
  • Connects to + the Time Service and synchronises clock with universal time

    +
  • Creates and + registers callbacks for network layer 3

    +
  • Sets up the + service's 'listen' socket

    +
  • Registers + itself with the Naming Service

    +
+

The skeleton also +handles exceptions and housekeeping when the program exits (whether +cleanly or not)

+

Login system

+

**** +Document under construction

+

Login manager(stand alone)

+

**** +Document under construction

+

Login client API

+

**** +Document under construction

+

Login shard API

+

**** +Document under construction

+

Account manager (stand alone)

+

Stand alone program +that handles the list of users permitted to connect to shards managed +by a given Login Manager. +

+

NeL provides a +skeleton program that includes the communication protocols for the +Login manager.

+

Backup Service

+

**** +Document under construction

+

Administration

+

NeL provides the +base mechanisms for administering a NeL shard. Two basic services +are provided:

+

The Admin +Service (1 per shard)

+
    +
  • Provides an entry point for + cluster administration.

    +
  • Provides access to logging + information and mechanisms for starting or restarting services

    +
+

The Admin +Executor (1 per server)

+
    +
  • This is the relay for the Admin + Service.

    +
  • Fetches statistics on the local + machine and relays them to the Admin Service

    +
  • Launches and controls the services + running on the local machine.

    +
+

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. +

+

**** +Document under construction

+ + +
                                                                                                                                                                    +
+ + + \ No newline at end of file diff --git a/docs/nelnet.php3 b/docs/nelnet.php3 deleted file mode 100644 index 3780c401..00000000 --- a/docs/nelnet.php3 +++ /dev/null @@ -1,530 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
Nel Network Library
-

Introduction

-

This documents -presents 'NeL Net', the NeL network library.

-

NeL is a toolkit -for the development of massively online universes. It provides the -base technologies and a set of development methodologies for the -development of both client and server code.

-

The NeL Net -comprises code libraries for inter-server communication and -server-client communication. It also provides implementations of the -service executables required by the higher level layers of the code -libraries.

-

Mission Statement

-

The first objective -of NeL Net is to provide a complete data transfer system that -abstracts system specific code and provides mechanisms for complete -control of bandwidth usage by the application code.

-

NeL Net has a -further objective of providing a complete toolkit, comprising further -layers of library code and core service implementations, for the -development of performance critical distributed program systems for -massively multi user universe servers. -

-

The current feature -requirement list for NeL Net corresponds to the application -architecture for Nevrax' first product. This notably includes the -requirement for a centralised login validation system at a separate -geographical location from the universe servers.

-

Nevrax is currently -developing a TCP/IP implementation of the low level network layers. A -UDP implementation may be developed at a later date.

-

Target Platforms

-

The Nevrax team -expect to run GNU/Linux servers for their first product. As such, GNU/Linux -is the primary target operating system.

-

NeL Net is -currently tested on GNU/Linux and Microsoft Windows NT platforms.

-


-

-

Statement of requirements

-

The Network library -addresses the following problems:

-

Client -> Server communication

-
    -
  • The product - code (also referred to as app code) on the Client needs to be able - to pass blocks of information to the network layer for communication - to the server. The network code is responsible for ensuring that - the blocks of data arrive complete server-side. In the majority of - cases the blocks of data from the client will be significantly - smaller than the maximum packet size, which means that the network - code should not need to split data blocks across network packets.

    -
  • In order for - the app code to control the flow of data to the server, the network - code should buffer sends until either an app-definable time has - elapsed or an app-definable packet size has been reached.

    -
  • Note: The - information sent from the client to the server will generally be - small in size, typically representing player actions such as - movement. -

    -
-

Server -> Client communication

-
    -
  • The app code - on the Server needs to be able to pass blocks of information to the - network layer for communication to the client. This problem is - exactly the same as the Client -> Server problem, described - above.

    -
  • The app code - is responsible for limiting the amount of data sent to each player - each second by prioritising the information to be dispatched. In - order to achieve this, the network code should buffer sends until - the app code explicitly requests a buffer flush. The network API - should provide the app code with the means of tracking the growth of - the output buffer. -

    -
  • Note: The - information sent from the server to the client will often be large - in size, as the server must inform the player of changes of state - and position of all other characters and objects in the player's - vicinity. -

    -
-

Inter-Process communication across servers

-
    -
  • The different - processes that make up the game need to be able to send messages to - each other to request or exchange information.

    -
  • There needs to - be a transparent routing mechanism that locates the services to - which messages are addressed and dispatches them.

    -
  • There needs to - be a standard framework that handles the queue of incoming messages - and manages the dispatch of messages to different modules within a - process. (e.g. A process that manages a set of AI controlled - characters may have one module that handles incoming environment - information, another that treats other processes' information - requests, and so on).

    -
-

On the fly backup management

-
    -
  • There needs to - be a reliable centralised system for backing up and retrieving world - data.

    -
  • The system - must be capable of treating large volumes of data as 'transactions'. - This means that if a server goes down - when it comes back up - transactions will never be 'half complete'. Any transactions that - had been begun but not finished must be automatically undone.

    -
  • The backup - system must be capable of managing a 'backup schedule' under which - it sends backup requests to scheduled processes and treats the - return data.

    -
  • The backup - system must be capable of handling spontaneous backups from - different processes (particularly the player management processes - who are capable of backing up players at any time).

    -
  • The backup - system will be called upon to retrieve player data whenever a player - logs in. This operation must be reasonably fast.

    -
  • The backup - system will be called upon to supply data to each system at system - initialisation time. The backup system should supply such systems - with their complete data sets.

    -
-

General requirements

-
    -
  • The app code - is responsible for network traffic and must be capable of much lower - level access to the Network library than the above requirements - suggest.

    -
-

Login/ logout management

-
    -
  • The product - that Nevrax is developing handles multiple instances of the game - world running on different server sets (known as 'Shards') with a - single centralised login manager.

    -
  • The login - manager must:

    -
      -
    • Receive login - requests from client machines

      -
    • Validate - login requests with the account management system

      -
    • Provide the - client with the active shard list

      -
    • Negotiate a - connection with the shard of the client's choice

      -
    • Dispatch the - shard's IP address and a unique login key to the client

      -
    -
  • The login - manager must refuse attempts to login multiple times under the same - user account. This implies that the login manager must be warned - when players log out.

    -
  • The login - system should include client and shard modules that provide a high - level interface to the login manager, encapsulating communication.

    -
-

Account management

-
    -
  • No choice has - been made as to what solution to take to account management at NeL.

    -
  • It is - sufficient to know that we need a standard API for the account - management system capable of validating logins.

    -
-

Technical design details

-

Design outline

-

The NeL network -library provides a single solution which caters for all of the Server --> Client, Client -> Server and Inter-Process communication -requirements.

-

This solution is -structured as a number of layers that are stacked on top of each -other. The API gives the app programmers direct access to all of the -layers.

-

There is a program -skeleton for the programs within a shard who are capable of -communicating with each other via layer 5 messages. Programs of this -form are referred to as 'Services'.

-

The backup system -is a standalone service (a service being a process which exposes a -standard message interface) which will encapsulate a 3rd party -database.

-

The login manager -and account manager are standalone programs at an isolated site.

-

In a nutshell the -network support layers include:

- - - - - - - - - - - - - - - - - - - - - - - -
-

Layer 4

-

(Top Layer)

-
-

Inter-Service - message addressing layer

-

Handles routing of messages to - services, encapsulating connection to naming service and handling - of lost connections.

-
-

Layer 3

-
-

Message management layer
(Handling - of asynchronous message passing, and callbacks)

-
-

Layer 2

-
-

Serialised data - management layer

-

Supports the standard serial() - mechanism provided by NeL for handling data streams.

-
-

Layer 1

-
-

Data block - management layer
(buffering and structuring of data with - generic serialization system)

-

Also provides multi-threading - listening system for services

-
-

Layer 0

-

(Bottom Layer)

-
-

Data transfer layer
Abstraction - of the network API and links (PC may be across a network, or local - messaging)

-
-


-

-


-

-

Layer 0

-

Layer 0 includes -the following classes:

-
    -
  • CSock : - Base interface and behavior definition for hierarchical descendents

    -
  • CTcpSock : - Implementation of a socket class for the TCP/IP protocol

    -
  • CUdpSock : - Implementation of a socket class for the UDP protocol

    -
-

**** -Document under construction

-

Layer 1

-

Layer 1 includes -the following classes:

-
    -
  • CBufNetBase : - Buffer functionality common to client and server

    -
  • CBufClient : - Implements client-specific buffer functionality -

    -
  • CBufServer : - Implements server-specific buffer functionality

    -
-

**** -Document under construction

-

Layer 2

-

Layer 2 includes -the following classes:

-
    -
  • CStreamNetBase : - Stream functionality common to client and server

    -
  • CStreamClient : - Client-specific stream functionality

    -
  • CStreamServer : - Server-specific stream functionality

    -
-

**** -Document under construction

-

Layer 3

-

Layer 3 includes -the following classes:

-
    -
  • CCallbackNetBase : - Functionality common to client and server

    -
  • CCallbackClient : - Client-specific functionality

    -
  • CCallbackServer : - Server-specific functionality

    -
-

**** -Document under construction

-

Layer 4

-

**** -Document under construction

-

System Services

-

The following -system services are provided as part of NeL. For each of these -services there exists an API class that may be instantiated in any -app-specific service in order to encapsulate the system service's -functionality.

-

The Naming Service

-

A standalone -program used by all services to reference each other.

-
    -
  • All services - connect to the naming service when they are initialised. They - inform the naming service of their name and whereabouts.

    -
  • The naming - service is capable of informing any service of the whereabouts of - any other service.

    -
  • When more than - one instance of the same service connect to the naming service we - anticipate the possibility of the naming service managing simple - load balancing by distributing connection requests to the given - service across the available instances.

    -
-

API class: -CNamingClient

-
    -
  • Generates - dynamic port numbers

    -
  • Registers the - application service's name with the naming service.

    -
-
    -
  • Retrieves the - IP address and port number for a named service.

    -
  • See - technical documentation for details

    -
-

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

    -
-

The Service Skeleton

-

The network library -presents a generic service skeleton, which includes the base -functions of a distributed service. At initialisation time it -performs the following:

-
    -
  • Reads and - interprets configuration file and command line parameters

    -
  • Redirects the - system signals to NeL handler routines

    -
  • Connects to - the Log Service

    -
  • Connects to - the Time Service and synchronises clock with universal time

    -
  • Creates and - registers callbacks for network layer 3

    -
  • Sets up the - service's 'listen' socket

    -
  • Registers - itself with the Naming Service

    -
-

The skeleton also -handles exceptions and housekeeping when the program exits (whether -cleanly or not)

-

Login system

-

**** -Document under construction

-

Login manager(stand alone)

-

**** -Document under construction

-

Login client API

-

**** -Document under construction

-

Login shard API

-

**** -Document under construction

-

Account manager (stand alone)

-

Stand alone program -that handles the list of users permitted to connect to shards managed -by a given Login Manager. -

-

NeL provides a -skeleton program that includes the communication protocols for the -Login manager.

-

Backup Service

-

**** -Document under construction

-

Administration

-

NeL provides the -base mechanisms for administering a NeL shard. Two basic services -are provided:

-

The Admin -Service (1 per shard)

-
    -
  • Provides an entry point for - cluster administration.

    -
  • Provides access to logging - information and mechanisms for starting or restarting services

    -
-

The Admin -Executor (1 per server)

-
    -
  • This is the relay for the Admin - Service.

    -
  • Fetches statistics on the local - machine and relays them to the Admin Service

    -
  • Launches and controls the services - running on the local machine.

    -
-

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. -

-

**** -Document under construction

- - -
                                                                                                                                                                    -
- - - \ No newline at end of file diff --git a/docs/writing.php b/docs/writing.php new file mode 100644 index 00000000..cb3df37d --- /dev/null +++ b/docs/writing.php @@ -0,0 +1,172 @@ + + + + Nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
+
+ + + +
+ + +
+docs + +
+ + + + + +
Programmer's Guide to NeL
+ + + + + + + + +
What is NeL
+

Roughly speaking, NeL is a platform for the creation of multiplayer +entertainment on the Internet.

+ + + + + + + + +
Licensing
+

NeL is released as a Free Software project, under the GNU General Public License. +If you are not familiar with it, check the GPL text +here, or go +directly to the Free Software Foundation +site.

+

NeL uses the GNU GPL to provide as many guarantees as possible for +everyone involved. Meaning the original authors, the casual user, and +all possible contributors. The GPL makes NeL an open platform +and ensures that will stay so.

+ + + + + + + + +
What's in it for me?
+

There are many potential benefits for you. As it is free software, you +have full control over what it does for you. You are not dependent on anyone +for support or adaptation. You may port NeL to any obscure environment +that no one but you knows about. You may fix the nagging bug that affects +only your computer. You +may add the latest technology you've stumbled upon, without having to +wait for anybody to be convinced that it is an important +project. You may customize NeL to do exactly what you want.

+

The fact that everyone can read the NeL source also offers a guarantee +of quality. A source that anyone can read will have to be readable by +anyone, and a source that is easy to read is a source that is hard to bug.

+ + + + + + + + +
What's in it for Nevrax?
+

First and foremost, at Nevrax, we believe software should be Free.

+

In practice, we gain exactly the same things you do. Nevrax does not and cannot have the +level of manpower that a free software community built around a project +has; no one can. So, while Nevrax will work on its own priorities, it will +maintain the NeL reference platform to the best interest of the community.

+

As people add, enhance and debug NeL, the code will grow, in terms of +quality and functionality, faster than any single organisation could do on its own. Nevrax +is commited to integrate the best of the enhancements, ports and other +useful modifications into the reference platform.

+ + + + + + + + +
How can I participate?
+

There are many tools used to make easier the whole process. This site +is dedicated to fostering the kind of community NeL needs, and has all +levels of activity.

+

A community needs communication, and thus, the first step is to subscribe +to the NeL mailing List. Download +the source tree (preferably using CVS to stay in sync +with the current version later). Eventually, register +for bug tracking.

+

The mailing list is the place to discuss the way NeL is structured, the +way its contents are written, and what to add or modify in it. If you have +modifications to contribute, the mailing list is where you may post +your patches, and the place where they can be reviewed by the public.

+

Larger patches that would be too long to post may be sent directly to +the code@nevrax.org submission address +for internal review.

+

As in all such communities, your contributions will be judged on their +merit and the reputation you will build for youself. The best way to have a significant and +positive input is not a magic recipe. Be courteous, be pertinent, be +critical - in positive as much as negative manner - and be accurate. +The quality of your contribution will ensure your rightful place in the NeL development.

+

Oh, and by the way, we do credit all contributors, even if they have +only two lines of code in the whole source tree...

+ + +
                                                                                                                                                                    +
+ + + diff --git a/docs/writing.php3 b/docs/writing.php3 deleted file mode 100644 index cb3df37d..00000000 --- a/docs/writing.php3 +++ /dev/null @@ -1,172 +0,0 @@ - - - - Nevrax.org : docs - - - - - - - - - - - - - - -
# Home   # nevrax.com   
- - - - -
Nevrax
- - - - - - - - - - -
- - -
- Nevrax.org
- - - - - - - - - - -
#News
#Mailing-list
#Documentation
#CVS
#Free software
#Download
#FS Suggest
#FAQ
-
- - - -
- - -
-docs - -
- - - - - -
Programmer's Guide to NeL
- - - - - - - - -
What is NeL
-

Roughly speaking, NeL is a platform for the creation of multiplayer -entertainment on the Internet.

- - - - - - - - -
Licensing
-

NeL is released as a Free Software project, under the GNU General Public License. -If you are not familiar with it, check the GPL text -here, or go -directly to the Free Software Foundation -site.

-

NeL uses the GNU GPL to provide as many guarantees as possible for -everyone involved. Meaning the original authors, the casual user, and -all possible contributors. The GPL makes NeL an open platform -and ensures that will stay so.

- - - - - - - - -
What's in it for me?
-

There are many potential benefits for you. As it is free software, you -have full control over what it does for you. You are not dependent on anyone -for support or adaptation. You may port NeL to any obscure environment -that no one but you knows about. You may fix the nagging bug that affects -only your computer. You -may add the latest technology you've stumbled upon, without having to -wait for anybody to be convinced that it is an important -project. You may customize NeL to do exactly what you want.

-

The fact that everyone can read the NeL source also offers a guarantee -of quality. A source that anyone can read will have to be readable by -anyone, and a source that is easy to read is a source that is hard to bug.

- - - - - - - - -
What's in it for Nevrax?
-

First and foremost, at Nevrax, we believe software should be Free.

-

In practice, we gain exactly the same things you do. Nevrax does not and cannot have the -level of manpower that a free software community built around a project -has; no one can. So, while Nevrax will work on its own priorities, it will -maintain the NeL reference platform to the best interest of the community.

-

As people add, enhance and debug NeL, the code will grow, in terms of -quality and functionality, faster than any single organisation could do on its own. Nevrax -is commited to integrate the best of the enhancements, ports and other -useful modifications into the reference platform.

- - - - - - - - -
How can I participate?
-

There are many tools used to make easier the whole process. This site -is dedicated to fostering the kind of community NeL needs, and has all -levels of activity.

-

A community needs communication, and thus, the first step is to subscribe -to the NeL mailing List. Download -the source tree (preferably using CVS to stay in sync -with the current version later). Eventually, register -for bug tracking.

-

The mailing list is the place to discuss the way NeL is structured, the -way its contents are written, and what to add or modify in it. If you have -modifications to contribute, the mailing list is where you may post -your patches, and the place where they can be reviewed by the public.

-

Larger patches that would be too long to post may be sent directly to -the code@nevrax.org submission address -for internal review.

-

As in all such communities, your contributions will be judged on their -merit and the reputation you will build for youself. The best way to have a significant and -positive input is not a magic recipe. Be courteous, be pertinent, be -critical - in positive as much as negative manner - and be accurate. -The quality of your contribution will ensure your rightful place in the NeL development.

-

Oh, and by the way, we do credit all contributors, even if they have -only two lines of code in the whole source tree...

- - -
                                                                                                                                                                    -
- - - -- cgit v1.2.1