[Reopened?] Help me know if PLSM is right for me...

Epoch of Entropy

27-06-2006 20:54:37

I'm hoping some of the people with a lot of experience with the PLSM and Ogre in general can help me here, as I'm new to this engine and platform.

After looking through the scene managers, the PLSM stands out because it allows arbitrarily large levels to be loaded. I do like the seamless worlds without loading screens, and wanted to take this concept into a detailed and large FPS game, that will most likely have multiplayer support.


Some Background:
There are four major types of areas in the game, broken down into Surface and Underground.

Surface Spacious: Regular surface areas you see in most games, with many wide open plains, rolling hills, etc. Vegetation will definitely play a factor.

Surface Urban: Sprawling urban complexes with numerous buildings that can be entered. Think Manhattan in size and approximate layout. The majority of gameplay will be outside of the buildings, but you will be able to move through these areas quickly, implicating that many small pages will be loaded/unloaded.

Underground Tunnels/Rooms: There will be many tunnels and rooms underground in certain areas of the game. Some man made, some like caves. Players will be able to move through these tunnels very quickly, or slowly depending on the circumstances.

Underground Cavernous: There will also be wide cavernous spaces that are similar to Surface Urban but differentiate in that they will probably be a mesh and no skydome will be used. These areas are meant to challenge a player's z-axis fighting abilties. This will have many swaps from areas that are rooms and halllways to areas where you overlook a wide view of the complex.


Questions:
-- Can the PLSM handle transitioning from Surface to Underground well, where the surface is mostly a heightmap, and the Underground is mostly a mesh?

-- How well will the PLSM handle a large mesh to page for the Underground areas?

-- How far can I draw opponents? If I can see a building, can opponents be on it? This seems more like a LOD issue, but it's worth bringing up if it can be answered quickly.

-- Will lighting, shaders, physics or sound be limited in any way by using the PLSM in either Surface or Underground areas?

-- By chance, can I have numerous "stacked" heightmaps? One for surface, and n for Underground? This may make certain Underground areas easier to achieve.

-- Are there any server-side issues I should be aware of if the game is run as a multiplayer platform?

-- Referring to the Surface Urban and Underground Tunnel, how well will the PLSM handle fast paging requests if the person is moving through an area that has numerous details at speed? Can I (or should I) load more or less detail depending on the velocity they are moving?


I'm sure there are more questions, but that's off the top of my head. I sincerly appreciate the help from those who have experience with the PLSM helping me go in the right direction, so I can potentially save a lot of time in the future.

Thanks guys!

.:: Epoch of Entropy

jacmoe

28-06-2006 01:01:01

I think you might want to wait a month or two.
The Google Summer of Code project by farakon is a over-scenemanager allowing for seemless transitions between scenemanagers.
Check out the SoC section at the main forum. :wink:

Falagard

28-06-2006 01:51:44

I'll answer these how I'd implement if I were you:

-- Can the PLSM handle transitioning from Surface to Underground well, where the surface is mostly a heightmap, and the Underground is mostly a mesh?

A: I'd do what Guild Wars does - have an entrance into underground that then has a brief loading screen and then load a new scene. Your underground can be a combination of terrain for the ground, and meshes for the cave walls and cave ceiling.

-- How well will the PLSM handle a large mesh to page for the Underground areas?

A: PLSM doesn't page meshes, it pages terrain heightmap. You need to do your own paging of meshes by hooking into the page load / unload events, or take a look at the GOOF framework which has paging meshes.

-- How far can I draw opponents? If I can see a building, can opponents be on it? This seems more like a LOD issue, but it's worth bringing up if it can be answered quickly.

A: Nothing to do with PLSM, depends on amount of geometry being shown, etc. You can make them draw as far as you want if you're willing to take the framerate hit.

-- Will lighting, shaders, physics or sound be limited in any way by using the PLSM in either Surface or Underground areas?

A: Not really, you can use the built in shaders for lighting the terrain, or implement your own if you wish. Everything else, such as meshes, are shaded however you want and have nothing to do with the PLSM.

-- By chance, can I have numerous "stacked" heightmaps? One for surface, and n for Underground? This may make certain Underground areas easier to achieve.

A: Not at present.

-- Are there any server-side issues I should be aware of if the game is run as a multiplayer platform?

A: If you're planning on running the PLSM server side do a bit of searching, a few people have attempted to run the scene manager on the server without any render system initialized and I think got it working.

-- Referring to the Surface Urban and Underground Tunnel, how well will the PLSM handle fast paging requests if the person is moving through an area that has numerous details at speed? Can I (or should I) load more or less detail depending on the velocity they are moving?

A: You have the ability to dynamically change the level of detail using the max pixel error setting and a few other settings (such as maximum number of pages visible, etc.), so yes you can change detail at runtime based on whatever you want, such as velocity.

Epoch of Entropy

28-06-2006 02:35:48

Hm.... a few of these are deal brakers. I'll have to bug the guys at GOOF, or hope that the GSOC project comes out as planned.

I appreciate your candid and timely feedback.


For future retrospect:

A: I'd do what Guild Wars does - have an entrance into underground that then has a brief loading screen and then load a new scene. Your underground can be a combination of terrain for the ground, and meshes for the cave walls and cave ceiling.

Not really what I want to achieve. Transition fighting from open areas to closed areas shouldn't be accompanied by a loading screen. This is a large aspect of gameplay as you go from ranged, hit and run, or concealment tactics to a defensively offensive position. Executing this properly, especially in multiplayer, will be part of the challenge.

A: PLSM doesn't page meshes, it pages terrain heightmap. You need to do your own paging of meshes by hooking into the page load / unload events, or take a look at the GOOF framework which has paging meshes.

Over 1/3 of the planned explorable area would be unrenderable with a terrain heightmap. There is a lot planned for Underground, and only a few areas would work with heightmaps. On to GOOF research....

I think you might want to wait a month or two.
The Google Summer of Code project by farakon is a over-scenemanager allowing for seemless transitions between scenemanagers.


I can easily allot that time to other tasks as I wait. Thanks for the heads up, because I didn't realize the GSOC project entitled that specifically, which is an extremely nifty feature to have, especially with a game with my goals.


Thanks again guys!

.:: Epoch of Entropy

Falagard

28-06-2006 03:01:43

There's nothing here that should be a deal breaker. I didn't realize game design called for seamless transition, and since it is more difficult than non seamless transition, I suggested the loading screen.

If you want to do underground completely with meshes, then you have it easier than if you wanted to go from aboveground to underground with terrain for underground as well as above ground and meshes for cave walls and ceiling. What I'm saying is that since you want to do your underground completely as meshes, there's no reason you can't use PLM2, it just will require some extra work.

You need to look into ways of cutting holes in terrain - not currently supported out of the box but there is a recent discussion below this thread about cutting holes and some possibilities.

I'm the primary contributor to GOOF, which is basically a game framework and an editor. The game framework provides grid based partitioning and loading/unloading meshes based on what partitions are currently within proximity to the camera, which is probably what you need.

GOOF is still very new and hasn't officially been released yet, though you can get it out of CVS if you're willing to work with unstable code.

Epoch of Entropy

01-07-2006 02:42:50

I keep ending up back at PLSM. :lol:


This thread:
http://www.ogre3d.org/phpBB2/viewtopic.php?t=21808

seems to implicate that PLSM can handle split meshes, they just wouldn't be automagically created for you. That's fine with me, as I could manually split them in my 3D application pretty easily.

I'm not hung up on using the heightmaps, because realistically I see no difference between displacing a plane in Maya/XSI or in game. The former gives me more control, the later more automation. More control is always better.



Could someone share some information on the data structure and potential methods for utilizing my 3D program to draw the boundries between regions, and if this is even an option?



What I'm saying is that since you want to do your underground completely as meshes, there's no reason you can't use PLM2, it just will require some extra work.

By extra work I thought you implied a lot more coding, not more design work. I don't mind manually making pages at all. :)


Thanks again!

tuan kuranes

24-07-2006 21:28:18

There's not option to show region boundaries. but you can do it using BBOX parameter sent by the event you have to listen to get which page/tile is loaded/unloaded.