NODE Documentation | Script reference | Screenshots


NODE Version: 1.2.4.0578
Version Date: 10.09.2006



Contents


1 Abstract
1.1 Projects based on NODE
1.2 Feature list

2 Resource files
2.1 Resource handling
2.2 Image files
2.3 Sound files
3.4 Ligtwave files
3.5 Animation scripts (MNDs)
3.6 Package files (MNPs)

3 Lightwave specific
3.1 Surfaces
3.2 Textures
3.3 Models
3.4 Scenes
3.5 Objects
3.6 Lights
3.7 Cameras
3.8 Bones
3.9 Scene Instancing

4 NORD usage
4.1 Demo Version

5 Vocabulary
5.1 NODE
5.2 NORD (NOde Realizator for Demos)
5.3 NOMAD (NOde Modulator And Demodulator)
5.4 MND (Mindnever Node Demo)
5.5 MNP (Mindnever Node Package)

6 Contact



Abstract


NODE is general purpose realtime multimedia engine intended to be used in
development of games, demos, presentations.
Its development started back in 2002. as demo engine. Its first successful
usage was on Scene Strike 6 held in Belgrade where mindnever group won the
first place with its demo reborn. It has been developed since than, first as a
demo-engine, later it evolved into game-engine and nowadays its development is
moving toward general purpose multimedia engine.

It features resource handling, 2D and 3D rendering, music and sound playback,
realtime animation, powerful console, skinnable GUI system and much more.

NODE uses Ligtwave for all animation stuff (object models and animation
scenes) and takes many advantages of LW.



Projects based on NODE


reborn (August, 2002)
demo, 1st place on Scene Strike 6, Belgrade

sodomaLite (March, 2005)
freeware game, 3rd place on Pascal Game Development Contest
(www.pascalgamedevelopment.com); development of sodomaLite is temporarely
suspended, waiting for new powerful skinnable GUI system

NORD (in progress)
player for NODE animations; features on-screen timeline which can be
used to quickly "rewind" demo playback; full working version is
available with every release of NODE

NOMAD (future plan)
successor of NORD; complete interactive environment for development
of high quality multimedia products (demos, games, presentations)

sodoma (future plan)
successor of sodomaLite; commercial software

angel (in progress, work temporarely suspeded)
new demo of mindnever



Feature list


This is a brief listing of NODE features. More details are available in
specific sections.


GENERAL


GENERAL - RESOURCE FILES


OBJECT MODELS


OBJECT MODELS - SURFACES


OBJECT MODELS - TEXTURES


SCENES


SCENES - OBJECTS


SCENES - LIGHTS


SCENES - CAMERAS


SCENES - BONES


SCENES - SCENE INSTANCING


PROJECTS


RENDERING - 2D


RENDERING - 3D


RENDERING - GUI


CONSOLE




Resource files



Resource handling


All resources used by NODE are uniquely identified by their name
relative to the main program directory. Resources names are platform
independed which allows easy migration to other architectures. They
have form of ~/path/name and all filenames used in NODE application are
translated into this form.

Resources are handled by Resource Manager, which allows having only one copy
of each resource in memory. Resources are handled effitiently so that they
can be wiped out from memory as soon as they are not needed anymore.

NODE supports term of a "critical resource". These resources are
handled in a special way when an application using NODE is in
fullscreen and user switches to another application and then jumps
back. At that moment, these resources have to be re-initialized, which
is done automaticly for all registered critical resources.



Image files


NODE uses FreePascal's Free Component Library which has support for
image loading. At the moment it supports following formats:


Although PNG is the only format which supports alpha channel, there is
a way to specify alpha channel for image in any format. You create
another image in PNG format and add -A.PNG to its name. So, if base image
is called MYTEXTURE01.JPG, then image called MYTEXTURE01.JPG-A.PNG is
used as alpha channel for this image. You can use any of these two
images in Lightwave, both denote same image.

Another way to specify transparency is to use transparent color. This
color is fixed: (Red=255, Green=0, Blue=255). Every pixel of this color
is replaced with transparent black.

Also note that dimesnsions of all images must be at least 4 and at most
2048 and must be divisible by 4.

To achieve better performance, some files in FCL have been changed.
These modifications are publicly available and you can contact
alexione@mindnever if you are interested in these files.

Image loading is implemented in separate DLL for easier development, but
it is included inside main executable in release versions.



Sound files


NODE uses BASS library (www.un4seen.com) for all sound and music
loading and playback, and supports following formats: WAV, MP3, MP2,
MP1 and OGG.



Ligtwave files


NODE supports Ligtwave 6 object (LWO2) and scene (LWS3) formats.
Although it doesn't support all of the options, it will correclty load
any object or scene file. These formats are the only supported formats
for object models and scene animation.



Project scripts (MNDs)


Note: MND files carry their extension for historical reasons: at first,
NODE was just DEMO engine, so that is why scripts still have that
extension.

Each MND file represents one project script. This project can be
used in two ways:

Complete reference of MND commands and directives can be found in
mnd.txt.



Package files (MNPs)


Mindnever Node Packages are collections of any kind of files, which can
be access when this package is loaded into program which uses NODE. All
resources (images, sounds, animations...) can be stored and accessed
from MNP.

MNP's can easyly be created using GenMNP tool. This tools takes all
files and subdirectories in the directory where it is started and
stores them in one package.

Files from MNP created with GenMNP can be extracted all at once using
tool DegenMNP. These tools are not available in demo version of NORD.



Lightwave specific


This section explains some stuff about NODE which is specific for
Lightwave.


Surfaces


NODE supports following properties of surfaces:


Comment of surface is processed in a special way. You can use it to
further customize your surface. Type in one of these letters to get
desired effect:



Textures


NODE supports multiple texture layers per surface on color channel,
on texture as specular texture, and environment map texture. Color texture
is interpreted in the same way as in Lightwave: like it sits on top of
Color which is choosen for that surface. Use 'C' in surface comment
to disable this base color.

Blending mode of texture is used to combine color and texture. Note
that some blending modes are not interpreted in the same way as in
Lightwave, but those most important are interpreted exactly: Normal,
Additive, Multiply.

Other supported features for texturing are:




Models


Here is brief list of supported features regarding object models:


One special feature of NODE is Replacement Scene. Let's say we have
some model WEAPON01.LWO, and this object has layer called BASE. Also,
we have a scene WEAPON01!BASE.LWS in the same directory. Now, whenever
you use layer BASE of object WEAPON01.LWO, this layer is replaced with
complete contents of that scene (including all its objects and lights,
moprphings, all envelopes).

Replacement Scenes allow you to easily build scenes which are very
complex at realtime but still they are very simple at design time. Note
that it is possible to use WEAPON01.LWO inside WEAPON01!BASE.LWS in
which case layer BASE of object will not be replaced another time in
the scene.



Scenes


For every scene, NODE defines its starting and ending time. These times
are calculated from FPS (Frames Per Second) of scene and first and last
keyframe of preview where you desing your scene.

Here is list for other supported features:




Objects


NODE works with objects in the same way Lightwave does - through layers
of models. It reads data from Morph Mixer and deforms object in
realtime. Note that NODE combines these transformations with those
defined by bones of objects which gives you many combinations to
animate objects.

NODE also supports normal null objects, and some special null objects.

Sound and music null objects:

If null object name is SOUND:SOME-SOUND.XXX or MUSIC:SOME-SOUND.XXX
than SOME-SOUND.XXX is played for each instance of this scene. Note
that you are able to control starting time of playback of this sound;
the rule is simple: sound is started playing at the first keyframe of
scale for Z. The difference betweend usage of SOUND: and MUSIC: is
that when you use SOUND:, SOME-SOUND.XXX is always preloaded into memory
before playback.



Lights


Here is list of features regarding lights:




Cameras


NODE supports multiple camera with easy camera switching and envelope
on zoom for each camera.

One more special feature is ability to make some objects invisible from
specific camera. You achieve this by putting ~X in both Comment of
surface of that object, and also you put ~X in the name of camera (X is
digit 0-9). After that, polygons of that surface will not be visible
from this camera.



Bones


List of supported features regarding bones:




Scene Instancing


You can think of Lightwave scenes as templates for real scenes which
are rendered in NODE. This is done to be able to play one scene at
different times in the same application frame. You can think of this
much like instancing of objects in the scene - each of these instances
is animated in its own way.

NODE supports Alternative Scenes. These are scenes which can be used
instead of their base scene when starting playing some scene. Imagine
that you want to animate some explosion - you just need to create new
scene. Now, if you want to have different ways in which something
explodes, you just create Alternative Scenes, and NODE will randomly
choose one of them when explosion happens. This is very useful in
game development.

If your base scene is EXPLOSION.LWS, than alternative scenes have form of
EXPLOSION#*.LWS: EXPLOSION#2.LWS, EXPLOSION#3.LWS, EXPLOSION#XXX.LWS.


NORD usage


NORD plays MND, MNP and LWS files.

If you specify XXX.MND file as program parameter, XXX is used for name of
main demo. If you specify XXX.MNP file as program parameter, XXX is used
for name of main demo. In both cases, XXX.MNP is first loaded (to allow
access to files is package), and then XXX.MND.

If parameter of program is XXX.LWS, NORD is used as Lightwave scene
viewer with all special features of NODE.

If there is no program parameter, and XXX.EXE is name of program, then
XXX is used for name of the main demo and NORD searches for XXX.MNP and
XXX.MND.

At the beginning of program execution, NORD loads STADNARD.MNP (if it
exists; it is searched for in directory where is executable). After that
it loads all flies neccessary for animation/scene which is played. Also,
configuration file XXX.CONFIG is loaded to configure NODE (see next
section for details).

While demo is being played, you can enter debug mode by pressing
ScrollLock key (the same key is used to go back to normal playback mode).
In debug mode, pressing H gives simple on-screen help:


Time can be rewing by holding down right mouse button and moving mouse
cursor left/right anywhere inside the playback window.



Demo Version


There is also demo version of NORD which will be available for free
download. This version has following limitations:





Except these, there are no other restrictions. All other features are
present in Demo Version of NORD.

This version will be made available for free download in September, 2006.



Vocabulary



NODE


NODE is general purpose realtime multimedia engine intended to be used
in development of games, demos, presentations... Its development
started back in 2002. as demo engine. Its first successful usage was on
Scene Strike 6 held in Belgrade where mindnever group won the first
place with its demo reborn. It has been developed since than, first as
a demo-engine, later it evolved into game-engine and nowadays its
development is moving toward general purpose multimedia engine.


NORD (NOde Realizator for Demos)


NORD is a player for NODE animation files. It features on-screen
timeline which can be used to quickly "rewind" demo playback. NORD
comes in two versions: full-featured and demo version. Demo version is
free for download and any kind of non-commercial use.

See section NORD Usage for more details.



NOMAD (NOde Modulator And Demodulator)


NOMAD is successor of NORD. It will be complete interactive environment
for developmentof high quality multimedia products (demos, games,
presentations). It will be based on WYSIWYG principle. Its development
is in the beginning.



MND (Mindnever Node Demo)


MND's are animation scripts for NODE. Complete command reference for
MND's can be found in mnd.txt.



MNP (Mindnever Node Package)


Mindnever Node Packages are collections of any kind of files, which can
be access when this package is loaded into program which uses NODE. All
resources (images, sounds, animations...) can be stored and accessed
from MNP.

See section Resource files - Package files (MNPs) for more information.



Contact


alexione/mindnever - alexione@mindnever.org


If you have any questions about NODE feel free to contact me.


Other members of mindnever who give invaluable help in development of
NODE:

greent/mindnever - zli.greent@gmail.com


Thanks go to greent for official NODE logo, all his bug reports and all
his efforts in this project.


rudy/mindnever - rudy@mindnever.org


Thanks go to rudy for all his efforts and his design-lead in projects
based on NODE.


copyright © 2005,2006 mindnever.org /// node.mindnever.org /// www.mindnever.org