Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Vianney Lecroart, posted on November 19, 2001

Image Description, by Vianney Lecroart

These screenshots was taken from our game (Ryzom, a MMORPG) developed by Nevrax ( using NeL (Nevrax Library). NeL is our GNU GPL library ( used to develop our program. It contains a 3d engine, ai engine, network engine, sound engine and lot of other features. It is multiplateform and is developped under win32 and linux. For the moment, NeL uses OpenGl and OpenAl.

The 3d engine handle indoor and outdoor scene with totaly different algorithms (On screenshot, you see only outdoors scene).

Landscape features:
  • Landscape texture mapping at a constant 1.5cm/ texel, with the possibility of a second complete additive texture layer.
  • The landscape is mapped with tile textures using smooth material transitions.
  • Bezier patch landscape modeling gives NeL enormously more flexibilty than traditional height fields. NeL supports vertical faces, overhangs, and so on.
  • An incremental ROAM-like 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. It is computed with a vertex program.
  • Landscape colouring effects include vertex colouring and application of pre-calculated shadow maps (with soft shadow and radiosity like alg).
  • Landscape is dynamicaly streamed into memory with background loading
  • Displacement maps (also known as geometric noise) is used at tesselation time. These are taken into account during lightmap generation which means that they can still be 'seen' at low levels of detail
  • A complete set of 3dsmax modifier and exporter plugins is available to edit the landscape.
  • For other 3d features, take a look on

    For other NeL features and docs:

    Nevrax Team

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
    CGI Joe

    November 19, 2001, 07:20 PM

    Very impressive! Super-slick indeed .. those large objects in the background give a satisfying feeling of scale and freedom.


    November 19, 2001, 08:14 PM

    Very nice cartoonish look. But I agree too that the middle and bottom hand pictures are difficult to "read". Depth of field blur would definitely help for the middle one ;)
    I especially like to read that the engine is multiplatform (I'm an Amiga user, you see ;)).


    November 19, 2001, 09:00 PM

    Argh! Now I have to make my game look that good! =)

    Congratulations on raising the bar for landscapes, this looks spectacular.


    November 19, 2001, 09:02 PM

    Congratz... That looks promising.

    Have you already got a publisher? ;)

    Tavbase Head Admin

    Roch Denis

    November 19, 2001, 09:31 PM

    As Cranos said, this raise the bar for landscapes, at least for me! Geee I guess my terrain engine code is going to need a bit of revision ^_^.

    Matt D

    November 19, 2001, 09:41 PM

    just when i was about to start my heightmap based roam implementation this comes along.. shesh..

    all i can say is wow, someone's finally gone and done a landscape engine with greater than vertical edges.. about bloody time too..

    a few questions though,

    do you have any papers on beizer patch based landscapes?

    how hard was it to make roam work with the biezer patches?

    how hard is collision detection using freeform beizer patches?
    especially when you have a greater than vertical edge?

    suppose you can just point me to the code, but hey.. i thought id ask :)

    -= i hate testing database reliant code =-


    November 19, 2001, 10:11 PM

    Oh.. yes I finally saw them, putting my screen brightness and contrast to their max. Sorry. But they were so dark.. ;-)


    November 19, 2001, 10:34 PM

    To all you guys wondering at how they can do 1.5cm per texel - without running out of video card memory or having a huge file on disk - "The landscape is mapped with tile textures using smooth material transitions.".

    Still, it doensn't make the IOTD any less cool - great work guys! Bezier + Displacement is great way to go, especially for a MMORPG, where you can have massive environments that go on for ever with not that much memory use - and disk paging working well too.


    November 19, 2001, 10:37 PM

    Fantastic! Reminds me of Monkey Island 4, graphic style wise. Good stuff...


    Jason Kozak

    November 19, 2001, 11:26 PM

    I think it has to do with the level of detail between the background and foreground. Since most of us are only human, the detail we see decreases with distance. If you'll notice, the models and textures for the foreground objects in the middle shot are pretty low detail in comparison to everything around them. We might be perceiving that to mean the objects are in the distance, which conflicts with visual cues that they're not, resulting in a really odd looking picture :)

    Da Wolf

    November 20, 2001, 12:00 AM

    Quite impressive.. so do you store bezier info in a "bitmap"?

    Lion V

    November 20, 2001, 12:24 AM

    Well now.
    You need to get your model textures a little more varied in color.

    What kick my interest on is the dynamic landscape loading...eventually my game(ETA before sun goes nova) will need that flexibility in size.

    Your sand-dune modeller is good. So is the cliff modeller.


    November 20, 2001, 02:00 AM

    Hehe, yeah, I saw the same thing first too.


    November 20, 2001, 04:44 AM

    We already are more than 40 people working on this game (MMORPG) and we can't plan to work on an another game right now, we have to finnish this one first :)


    November 20, 2001, 04:51 AM

    oh! too much questions :)

    > Could you explain in a little detail how you generate those landscapes?

    It's a big production pipeline to have this result, we have quite lot process so it's too long to explain here!

    > Does it work like in World Builder by defining contour lines?

    We use 3DS Max to generate all the patches.

    > Do you generate the landscape's texture on the fly or is it precalc'ed.

    Shadow are precalculated but textures are made by our artist.

    > if so, how do you store that texture?

    We have a set of texture (sand, wood, etc...) and paint them directly on the patches with our own painter.

    > Are you planning on releasing some tutorials explaining how it works?

    To much work now to do that, take a look on all the mailing list archives to understand ;)

    > Anyway, keep up the excellent work.



    November 20, 2001, 04:55 AM

    > Is that monster in the upper left "coming out of" the cliff wall?


    > Does it modify the terrain or just put a model on top of it that makes it look that way?

    We can't modify the terrain

    > The middle screen has some cool models , but the water there doesn't look too good.

    On this screenshot, the water is just a fake flat transparency polygon because the water algo is not finnish


    November 20, 2001, 04:59 AM

    To be honest the collision detection with the bezier patches (landscape) was a big problem to resolve, but now, it works quite well except very specific case that we have to fix.
    I think that this problem/solution could be a good Game Developer Conference but we don't have any doc about how it works right now.


    November 20, 2001, 05:04 AM


    Depth of field, ok, why not, it's just that we need to render all th scene at least 2 times and, hum, well, perhaps in few years but now it's too slow to do that now :)

    the network engine should work on every plaftform (actually work on windows and linux, but other os and computer should not be a big challenge).
    the 3d engine works also on windows and linux but of course you need a strong computer with of course a good 3d cards, so, i think that your amiga must not be enough (but if you want to port it, no problem, it could be fun but good luck ;)


    November 20, 2001, 05:10 AM

    > do you have any papers on beizer patch based landscapes?

    > how hard was it to make roam work with the biezer patches?

    it's not so hard but struct are totally differents and we need 10 times more memory than a standard heighmap roam

    >how hard is collision detection using freeform beizer patches?

    look my answer here:

    > especially when you have a greater than vertical edge?

    it s a global approch, it manages all cases in the same way.


    November 20, 2001, 05:12 AM

    ???? no, we store bezier info in our own data format


    November 20, 2001, 05:15 AM

    > You need to get your model textures a little more varied in color.

    The screenshot are taken from our desert territory so it's normal that textures are quite same, but we have other territory with very very different styles (perhaps a next ITOD ;)

    > What kick my interest on is the dynamic landscape loading

    It's really hard to stream from the CD so we stream from the hard drive with a specific thread and it work fine if the loading time and the moving time are syncro


    November 20, 2001, 05:42 AM

    More info about us.

    Nevrax is a young startup created to develop a MMORPG called Ryzom.
    Development studio is based in Paris/France.

    We developed a gpl "game" to show our technology called Snowballs.
    you can get it the win32 binaries on my website (but it's not official). The official way is to download the sources from here and try to compile them

    Snowballs was developed in less than 2 weeks so don't be crude, it's just a technologic demo of what you can do with NeL


    November 20, 2001, 06:44 AM

    I would love to have seen "download the sources from here and try to compile them" before I started :-)... You need to grab all kinds of libraries to build this -- libxml, freetype, OpenAL, the latest GLext, and probably a couple more I already have...

    The build process, in my experience today, is really nasty. I opened the NeL workspace and built all that, then decided to build Snowballs. But I had to sit there while it build the whole engine again! I'm just glad they DIDN'T include binaries -- I cranked out about ~60M worth of static libraries, including one which weighed in at a hefty 39M! To top it all off, there was over 400M worth of object files & build stuff on top of it! Glad I cleaned up my temp drive before I started :-) And, despite all that, I STILL couldn't get it to build! So, I wiped it and grabbed it off the CVS server again, and have a more detailed go at it tomorow. BTW I didn't have any luck connecting to the Win32 binary site -- DNS problems...

    Just about everybody here is suitably impressed by the graphics, so I'll just say they made me remember what my flipcode password was...

    As for the source, this is easily the most complex game I've ever seen. I used to think Golgotha was huge, but this takes the cake! I spent ages trying to figure out the CLandscape-CZone relationship, wondered what on earth a Vegetable was (some kind of new data? struct :-) ), and swimming through your huge project. In fact, the only problem I can see is that it uses Doxygen (I can't stand it, makes things too cluttered and hides too much).

    Apart from all that, I'm certainly looking forward to the future of this engine & your company. I should probably get back to my engine... anyday now :-). And sorry about the long post -- I've got about 2 years of non-posting to catch up on...

    Simon Wilson,
    XEOS Digital Development


    November 20, 2001, 08:45 AM

    "Just about everybody here is suitably impressed by the graphics, so I'll just say they made me remember what my flipcode password was..."

    So what was it ? :-D

    "In fact, the only problem I can see is that it uses Doxygen (I can't stand it, makes things too cluttered and hides too much)."

    I plan to use it.. do you know a better one ? What are you using ?



    November 20, 2001, 08:47 AM

    I can only hope the gameplay and social interaction will be as detailed and colourful :)


    November 20, 2001, 09:07 AM

    Really nice shots ! Keep up the good work !


    November 20, 2001, 09:20 AM

    Oh no! Not the surreal argument again! For the record, I agree with this usage of the word in this case.

    Mr. Slomo

    November 20, 2001, 11:35 AM

    mybe someone could tell me where i can find the used libs?


    November 20, 2001, 01:17 PM

    you could just decide that each square in your landscape is 1.4999 cm and "beat" him. i always wonder why people use measurements like cm in landscape engines, they're so useless...

    a decent measure of detail would be texels per triangle (for the landscape heightmap) or something...

    Wim Libaers

    November 20, 2001, 04:21 PM

    Presumably, it's to compare with the size of human characters in the game.

    This thread contains 63 messages.
    First Previous ( To view more messages, select a page: 0 1 2 ... out of 2) Next Last
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.