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

 Home / Game Design & Programming / Going big :-) Account Manager
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.

January 07, 2005, 11:29 AM

Most of the starting program stay in a small world
closed by mountain or wall

I want to have a world where you can run around from room to room

Did any of you did it ?
(I don't mean a 10 room bsp map program, but a huge world)
(I'm thinking Ray-man style)

Here is the problems/questions I have:

Do you use a map ? Or just draw each room one after the other
Or do you put all in one bite and use frustum culling
Do you use huge coordinate or do you draw each room in relative
How do you switch from world to world ?
(According to where you are in the map ?)
If you use frustum culling, how do you make collision with
the wall that you don't draw
Do you keep one set of triangle for collision
and one for drawing ?
Where and how do you keep your info ?
(small files for each level, or database)

did anyone try to do a huge world
Do you have any web site that talk about this ?
I wish I could see a complete program that does all this
just to see how they manage the level and many rooms

How do the pro do it ?

Brandon Jones

January 07, 2005, 01:27 PM

Well, I'm not sure I understood a large majority of the post, but I'll try and answer the best I can.

The main question: How do the pro's do it?
Answer: Depends on which pro you talk to.

There really is no all encompassing "best way" of rendering large maps. (If there was, I think the programming would would be kinda boring.) If you look at some of the newer games out there, you'll find a lot of different methods.

Doom 3: A strictly portal based approach. This works really well for indoor arcitecture, but can be modified to work passably with outdoor scenes too.

Unreal Tournament (2k4): BSP based approach, but with "helper portals" throughout. Kind of a hybrid.

Quake 3: Straight BSP, with a brute force ray-trace visibility check run at compile time and stored in Potential Visibility Sets. Rather outdated approach.

Half Life 2: BSP based, if I remember correctly. I'm sure they have a lot of auxillary tricks to help with the outdoor scenes, though. Maybe an Octree?

It really depends on the type of game your looking at. If you are trying to create a game with a lot of indoor space, maybe a portal based implementation is best. If you want massive outdoor worlds, look into Quad/Oct-trees, along with some LOD algorithms. There's newer methods too, like occlusion culling using a pre-rended depth buffer (don't remember what it's called right now).

So what are you trying to create? That's the first question that needs to be answered. After that, the rest of the questions become a lot easier to answer. (Not to say that it's all going to fall into your lap, of course.)


January 07, 2005, 03:17 PM

Thank you Brandon for your excellent answer

So it's basically BSP and Portal maybe octtree and LOD for terrain

I've seen Indiana Jones demo using a map for the word
I've seen the demo of Rayman 2(Great graphic and music)

I have a render engine that do all the trick around 0,0,0
Now I want to design a ''huge'' world
And I have some design problem

How do you keep track of the big world

When do you reload another set of texture or triangle

Like you said programming would be boring if there was only one solution :-)

Demo with code that implement a complete game with level
and many room are hard to find

Thank you again for your post

Brandon Jones

January 07, 2005, 04:11 PM

One more recommendation I have: If possible, pick a map format that is similar to the results you want and create a program that loads it. It will give you a much better understanding of the way things are stored/partitioned/rendered. I never really understood the concept behind a BSP tree till I made a simple Quake 2 map loader. I'm learning more and more about Portal engines as I work on my Doom 3 loader. Eventually I'm going to branch out into my own file formats, but having the knowledge of how past formats work has been a huge help to me.

This thread contains 4 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.