

The Story:
The demo is divided in two part. After a little technical introduction,
there is a "very little" story, following the hero of the previous
Demo,
"Trip To Mars". This guy have a new mission to acomplish, and we follow
him during his long and dangeourous trip. The graphic are mainly 3D
real
time vector graphics with a bitmap background. During this first part,
a nice tune called Apocalypse(.mod 128ko) is
playing.
The second part is more classical, with a lot of 3D nice and new vector
object: Some Real Time 3D PoiPoi playing music, a mouse, etc.... A
different
tune for this part: Hysteria (.mod, 89 ko),
from Audiomonster.
All the graphics used in this page are the graphics of the demo, and
they are made by three different artist: C-Dryk and Elmer, a few one by
skew. The "Blade Runner" pics is from Tobias Richter.

* The 3D engine:
The 3D engine include the ability to display real sphere, but also
real circles and even real cylinder. A real cylinder is not a
modleisation
of a cylinder if several faces, likes usually see pics, but a cylinder
is displayed as an "atomic object", just like a face. This is much more
difficult to display these kind of objects like this, but the result is
musch more faster and accurate.
* The scripting engine
One other intersting challenge of the demo was the scripting engine.
In fact, VirtualWorld is only playing a script , but the scripting
engine
could be reused for another demo.
There was possibilites to "extension" to this engine. The text
displayer
was one of this extension. In fact, it's just like a Netscape plug-ins:
you can extend the language without regenerating a new executable. Each
3D obj can execute his own screen at the same time than the others (not
really object oriented, but more like multitasking of scripts).
The idea beyond that was to take more time to improve scripting than
demo coding.
For the Fun, here it is the complete instruction set (!) of the
scripting language. Very rough, but funny. Today I'll write a complete
different set of language, mainly object oriented. In case if you dare,
here is the complete script of the original
demo.
The 3D object was defined in another file: objects.
LOAD_MUS
"modules/mod.hysteria"
Load and play a music module
LOAD_EXT
"intro.ext",3
Load an extension (intro.ext, into slot 3)
EFFECT 3,0
Play the effect into slot 3
UNLOAD_EXT
3
Unload the extension from slot 3
ADD_OBJ
"HELICO"
Add the object HELICO to the list of displayed object
ADD_OBJ
"HELICO","YOUR
SCRIPT" Do the same things, but use YOUR SCRIPT for this obj.
REM_OBJ
"HELICO"
Remove the object HELICO from the list of displayed object.
WAIT_RDV
0
Set a syncrhonisation point : Wait other subscript to finish
REM_ALL_SPRITE
Remove all 2D sprites
SET_SPRITE
5,128,190,2,47
Display a 2D sprite
FADE_OUT
Fadethe current colormap to black
FADE_IN
Fade from black to the current colormap
START_TASK
Start the Amiga multitasking
LOAD_BACK "pics/colormap"
load a picture as the current background
RESTORE_COP
Restore system copper list
PROF
5
Number of bitplanbes used ( here it's 5)
VIT_OBJ
10
set speed of the object in is own coordinate
SELECT
"MOTO"
Set an object as the current object for scripting
SET_ANGLE
-20,0,0
Set angles of the object
SET_SPANG
0,0,5
Set rotation speed
SET_SPEED 5,0,20 Set
displacment
speed
EFFECT 1,0,600,"Hello Everybody" Call a plugins effect
with parameters
STOP_TASK Stop amiga multitasking
START_TASK
BACK_ON
use bitmap background
BACK_OFF
Don't use bitmap background
CLEAR_FOND
Clear background
PUT_FOND "CURRENT" Put the object named
"CURRENT" into the bitmap background
WAIT 100 Wait an amount of time
LAB
"Label"
Add a new label. It's also the entry point for a subprogram
VAL_COL
16
Set color fading to a new value
OMBRE_OFF
Remove shadows (ombre is shadow in french)
CALL "go back"
Call a subprogram
REM_ALL
Remove evrything from the scree
RETURN
Return from a subprogram
END End the script
And now, more background from the demo:




