in what state is PCZ?


12-03-2010 07:14:48

Is it ready to be used in games? Is this project stopped or still worked on?

Is PCZ suitable for a rectanguar layouted maze like those in dungeon master or Bard's tale?


12-03-2010 08:46:25


PCZ is ready to be used in games. In fact, we at Liquid Rock Games are using it for our racing title and it's helping a lot. The original author Chaster wrote this for his own project use as well. I believe he is still working on the project hence being that PCZ isn't modified means that it's pretty stable.

At the moment, both Chaster and I are sharing the rights to this project. However, we are busy people hence it's been idle for a bit. However, I do intend to come back at this and add a new feature and do some fixes.

Here's the rough current state/features of PCZ:
- Two zone type (default, octree)
- Movable dynamic Portal, Antiportal (Quad, AABB, Sphere)
- Shadow map support

Known bugs:
- Light traversal is not exactly correct. (Not noticable for the most part. Only happens in complex portal scene which means you are misusing PCZ anyways.)
- Directional light shadow map does not provide proper casting when seeing through the portal. (This one is due to the usage of portal traversal code for shadow map code. Directional light needs special traversal to get it right.)

For more info, please have a look at the docs section of PCZ source.

Just so you know, I intend to come back and do some code tidying and also add zone <-> zone filtering. Zone <-> zone filtering simply keeps a list of what zone will ignore another during traversal so traversal will stop when it hits a zone that will be ignored by the previous zone traversed. This helps in cases where antiportal culling does not work.

Also, being that zones do not share octree, using many octree zones will potentially eat up your system resources. So the advice is to use it only for large outdoor scene. For any other situation, it's better to just use the default (simple AABB check). In all respect, PCZ is designed so zones are very localized hence doing simple list AABB check would be good enough for most cases.

I hope this answers your question. :)


12-03-2010 09:21:03

Thx for the info.
I just saw that PCZ is delivered with latest 1.7.

As for my case (rectangular maze with lots of rooms and hallways, just like dungeon master if you know it) , do you recommend using pcz or
should i do my own special hsr/vsd ?


12-03-2010 09:42:14

In that case, I would recommend that you use your own PVS system. PCZ does not do occlusion culling. Hence it would be very hectic for you if you need to add antiportals all over the place just so it will cull off significant of the occluded portals. The main goal for PCZ is to allow good culling for more simple indoor scene with good amount of details; think Gears of War or WoW's indoor levels. When it comes to a mega grid maze, it is probably not very optimal.

However, if your maze is going to be just simple boxes, and if you still want to try out with PCZ, I would recommend to batch group some rooms together and ignore culling. This way you cut down the need for portals and provide a more sparse portal zone placement. With that, PCZ will be able to cull up most of the the scene easily at a very low cost (Since most cases will see portal traversal only once). Also, you simply let the hardware do the work with rendering extra polygons; which is cheap when you batched them together and it can do proper depth test to quickly ignore any rendering of polygon behind another.


12-03-2010 10:02:13

Great idea, worth to try.
Right now I want generate the levels completly in code (because i am very bad at level design, there is no editor for this , i need big levels for testing).
So your approach would be that i subdivide my big level and connect them via portals?


12-03-2010 10:39:27

Yes, that's essentially the gist of it. :) You could even have antiportal placed at walls that are right opposite of connecting portals to occlude the portals better. :)


12-03-2010 11:25:44

That brings me to an idea:
Actually what i want to do now is to create a very limited level-structure which has many similarities with the doom-level structure (in the editor, before exporting to bsp, etc.).
So i am thinking to use an exisiting doom-editor for creating levels (2d lines -> sectors) load this and create my pcz-content with it.


14-03-2010 17:09:48

That sounds good. :) Good luck with it. :)