Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Thu Mar 28, 2024 8:42 pm

All times are UTC




Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Sep 13, 2006 8:55 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Hi,

I've received a few interesting contacts these times, and I think we're now able to start a big enhancement for ManiaDrive : a new world :)

It means:
- New car(s)
- New physics
- New blocks

This thread is about last point : blocks. The idea is not to replace existing ones with better ones, but to build a whole new set of blocks. The good new here comes from Jonas Bähr (huge thank to him for contacting us): He wrote a reader for ... Stunts 4D Sports Drinving track format !

See this here: http://jonas-baehr.de/stunts/format.php

That means (if we succed) that ManiaDrive would be able to import original tracks from Stunts ! :)
The other good thing here is that we get a complete list of needed blocks !
Finally, a new member of the forum, SamB, seems very interested about this ... and he's a user of Blender since 7 years ! (You may present yourself like as you did in your PM, if you want, SamB ;) )

About this new world, one of the first thing to do is to build a list of all different blocks of Jonas's list. For example, 0x0a and 0x0b are the same block (only rotated). This new "filtered" list will act as a TODO. I've just started the work here: http://wiki.raydium.org/wiki/ManiaDriveNewWorld

I want to add that we're not stuck with the "ambiance" of Stunts ... The theme for this new world may be "desert", "forest", "beach" or whatever ... we must only respect shapes of original blocks, that's it.

Obviously, I will also answer to any technical question about the engine in this thread.

So guys ... let's go ! :)


Top
 Profile  
 
 Post subject:
PostPosted: Wed Sep 13, 2006 9:57 pm 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
hello, I'm the one who Xfennec is talking about


I use blender since it's on internet, approximately 7 years.
Here's some links about my lastest works :

http://www.rgrafx.org My animation short in progress
http://http://www.zoo-logique.org/3D.Blender/galeries_automatiques/index.php?cat=wip&gal=samb
A page for my old work in progress.

I discovered raydium and ManiaDrive during research on game engines and I found the engine and the game really powerful.

As I like much ManiaDrive, I decided to join the team as 3Dartist.
I'll work on 3d gfx. The fisrt task is creating new blocks as Xfennec says.

Stunts tracks import sounds really promising. The main difficulty will be creating seamless good textures.

I readed that Stunts track are composed of 900 squares. It means that if we want to import a track correctly, Maniadrive will show 900 blocks in 3d.

I don't know how the engine will support a heavy polycount like this.

So, about polycount. Is it possible to have the original (blender ?) files for roads ? I need to know exactly the maximum faces number on a block to keep the game playable

And at least, we just have to decide what kind of new world the games want. Maybe it'll be easier to create a poll to decide


Last edited by SamB on Fri Mar 30, 2007 1:39 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 14, 2006 10:35 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Quote:
I readed that Stunts track are composed of 900 squares. It means that if we want to import a track correctly, Maniadrive will show 900 blocks in 3d.

Right ! We can imagine a small "filter" that reads only the "interesting" part of the track (smaller square), but in facts, I don't think a 30x30 grid is a problem for Raydium, if the "default" ground block is simple (like current one : two triangles).

Quote:
So, about polycount. Is it possible to have the original (blender ?) files for roads ? I need to know exactly the maximum faces number on a block to keep the game playable

Well, the bad news is that these blender files does not exists ! ;) The good news is that you can import them using Raydium scripts ( http://wiki.raydium.org/wiki/TriVersBlender )
Looking at these old blocks is perhaps not a good idea ... there're really badly build.
A good hint here is that the current (ManiaDrive 1.2) "correct" limit is near 20.000 triangles for the track (canyon.mni track is near this). If needed, we can probably push this limit over 40.000, increasing a bit the minimum hardware requirements for the game. You can probably start from these informations, no ?

Quote:
And at least, we just have to decide what kind of new world the games want. Maybe it'll be easier to create a poll to decide

Do !
As the main artist on this task, you may decide by yourself too ;)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 14, 2006 11:11 am 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
ok, 20k is a good weight.
I will prbably create more blocks than stunts ones if it's possible. I noticed Stunt tracks can't have superimposed. Si it's impossible to make tracks like caynon or krass. Every block in stunt looks very flat.

Can we make a real ground with blocks of different height ?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 14, 2006 11:21 am 
Offline
User avatar

Joined: Thu Sep 29, 2005 2:59 pm
Posts: 828
Good idea starting the new world.

Maybe is also a good time to pose ourselves about the use of LOD(level of detail) in the meshes and implement a good method to avoid draw unneeded objects(Is something like that in raydium currently?)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 14, 2006 11:32 am 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
Is LOD already implemented in raydium ? Have we access to tricks like backface culling ?

For LOD, wa can swtich an object by an other wit less faces. I can make 3 differents mesh for a block : lowpoly, very lowpoly and veryvery lowpoly :)

We jsut have to swicth objects measuring the distance from the camera.


EDIT : i need to import existing blocks to blender for scale purpose. i managed to import the clio. This car could be more low poly without loose details..


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 14, 2006 3:17 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
I don't think LOD is a good idea for ManiaDrive: Once loaded, the track is stored in one object, compiled in a display list. LOD then means that we must swith to a per-block rendering system ! I'm almost sure that this method would slow down the rendenring. As a reference, we must remember that TrackMania itself use a brute-force renderer. And the "popping" effect (per-block) may be visually horrible :) (but for cars, it may works).

About the Clio, it's clear that the object is far from being optimised :)
Well, we'll try to do not repeat this problem with our new car ;) (we must perhaps create a poll about this car, too ! :) [we already have a Fiesta, for example]).

Quote:
Can we make a real ground with blocks of different height ?

The mania2 track editor is already able to move blocks on Z axis, so we only need to create one ground block ... It will be to the importer to move this block according to the Stunts track (but we can build two different ground blocks if you want to use different textures, for example).

I dunno if I'm clear on this point ? :)

As the last point, backface culling is not activated with Raydium, since a lot of objects are made for a two sided rendering (look at the Clio for example !) ... it saves us a few triangles on meshes. But for ground, the problem is not the same, since the physics is single sided ... I may activate culling for ground (as an option), why not ... This is not a big priority, since the performance gain will be very small, because of (aggresive) video cards optimizations (HyperZ and so on ...).


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 14, 2006 9:59 pm 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
hum, here's what I understand :

in maniadrive, the ground is made with one main block. In actual tracks it's the big mesh that looks lika a crater. So, when you talk about one or two gound block you talk about this big mesh.

According to this, when a player make a track, he can't change the apparence of the ground. Ground is flat only.

In Stunt, gournd blocks seems to be flat too,but there're different kind of ground block. We have some blocks to make the main ground, some others to make the coast. The world isn't closed like in Maniadrive.

If we look at Trackmania ( I saw just screenshots ), the level editor give access to several ground block to make a world "open". If there's a skybox, you can see the horizon at sea level.

I think we can do the same in maniadrive :

Make a new skybox for the new world.
Make the ground with differents blocks.
Use stunts like blocks to import correctly stunts tracks ( flat ground)
Add more blocks to the level editor to give the player a way to make tracks like trackmania ones, with height for ground ( essential in a mountain world for example) and fun blocks for road that don't figure in stunt.

Answer me if it's realizable or not?And If you understand :)


Top
 Profile  
 
 Post subject: square block
PostPosted: Thu Sep 14, 2006 10:23 pm 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
Another post to discuss block desig.

Stunts block are always square. In MD there are some blocks like looping that aren't square.

I've to keep them non square or reshape them to square.

other question, only to be sure i understangon well.

If I look at Stunts block. i see blocks 4x greater than others. 0x14 is for me greater than 0x13.

It's right ?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 15, 2006 7:29 am 
Offline
User avatar

Joined: Thu Sep 29, 2005 2:59 pm
Posts: 828
hmmm, apart of the ODE system i see no reason to avoid using lod in blocks...
For ODE the game could create a unique mesh at the start that will work as currently.
For the rest we can use LOD'ed, and for sure they will render speeder than now (i really think that). Even more if we change display list for compiled vertex array or something newer.

And now that i'm thinking... the game could work if the ground is suplanted by a series of static blocks?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 15, 2006 10:23 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
To SamB:

Quote:
in maniadrive, the ground is made with one main block. In actual tracks it's the big mesh that looks lika a crater. So, when you talk about one or two gound block you talk about this big mesh.

According to this, when a player make a track, he can't change the apparence of the ground. Ground is flat only.

No no no ! :) I must make myself clear on that point : "ground" is one big mesh generated from the mni file when the track is loaded.
if ManiaDrive tracks looks like a crater, it's because I've designed tracks like this ! ManiaDrive does not add any "default" ground or anything else to the track. ALL is just a set of small blocks.

So when I talk about "ground blocks", I means "small 1x1 blocks" ... Exactly like Stunts, in facts ;)

Since this is a important point, perhaps you should play a bit with the mania2 editor to see how it works, no ? We can also organise a small phone/TeamSpeak/Skype meeting to talk about all this ?

Quote:
I've to keep them non square or reshape them to square.

For Stunts blocks, make them square, and for "our" blocks (let's call it "enhanced blocks") use what you want :)

Quote:
If I look at Stunts block. i see blocks 4x greater than others. 0x14 is for me greater than 0x13.

It's right ?

Yeah, the 0x13 is a tight turn, the 0x14 a "large" turn. If you look at the 0x14, the road starts on the bottom left, so it can be "plugged" to the 0x13 without any problem.

To vicente:

Quote:
For the rest we can use LOD'ed, and for sure they will render speeder than now (i really think that).

I totally disagrees with that ! ;) Using a per block rendering requires a lot of context switches (think about texture changes for example !). And it will look bad, IMHO.
Again, think about TrackMania ... or even more impressive, to the upcoming "Enemy Territory : Quake Wars", which also use a brute force rendering with HUGE landscapes. LOD is used only for (ground and air) vehicules and players. I really think that "nowdays" video cards (and drivers) are smarter than any developpers when it comes to such subject ;) (John Carmack in the case of ET:QW ;) ).

About vertex arrays / VBO, I'm fully OK with you: it's almost always more effective than display lists (but it's also way more complex to deal with)... Be we know both that It will require a massive core rewrite of the engine ;)

Quote:
And now that i'm thinking... the game could work if the ground is suplanted by a series of static blocks?

About ODE ground representation ?

edit: typo bugfix ;)


Last edited by Xfennec on Fri Sep 15, 2006 11:55 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 15, 2006 11:44 am 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
It's now ok for me :)

before your last post and my tests on the level editor I thought the ground was one big flat objet and the level designer put small ground blocks on it.

I'm ready to begin the new world.

The action will take place in the desert, like the paris-dakar. I've ideas for fun blocks and additional objects.

The first part of the work start with the Stunt blocks modeling. stay tuned.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Sep 15, 2006 11:53 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Great ! :)


Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 16, 2006 11:32 am 
Offline

Joined: Thu Sep 07, 2006 1:49 am
Posts: 99
let's discuss about shadows :

In some raydium demo Ican see shadows. In maniaDirve, only the car seems to have shadows. Is it realtime shadows or not ?

If yes, it's great but I think shawdws need to be more "hard" or "crisp".

Now antoher quesiton about texture, shadows and memory use :

If few blocks share the same texture like grass. does the texture loaded into memory one time or for each block ?

I ask that because I have an idea to make the environement more "real"

First, I create a skybox with clouds and sun. In blender I put a sun lamp according to the sun position on the skyboxe. Now I can render and bake the shadows into texture.

The only problem is each block will have its own texture. And I raydium have to load all them into memory, It could be difficult to keep a godd framerate.

I hope this idea being possible. With ambient occlusion and shadow baking in blender, I'm sure this new world could be really impressive.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 16, 2006 6:43 pm 
Offline
User avatar

Joined: Thu Sep 29, 2005 2:59 pm
Posts: 828
samB, about your last idea, i think it can work.
If each object (ok, ok, i'll forget the ground... ) has, for example, 3 levels of LOD, also that can be said for textures.
So each different object baked will have 3 different textures. The common use of the elements in the game will put just only a few objects near the player and the rest will be far away and even further.
So i assume that just a few big textures will be loaded in graphic memory each frame.

Alternative way:
self-shadows could be baked in blender like an independet map that could be applied over the usual textures of the object. This will be less impressive, but quite more fast at rendering. Now raydium supports multitexturing, so apply the shadow map won't be a problem.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group