PW Builders Guidelines
These are of course guidelines, and of course guidelines are designed to be adjusted based on the needs of the story or idea. I'll start by summarizing the main points.
- Keep the walk mesh simple and the walkable area small by painting unwalkable all areas players can't ever reach.
- Ensure that NPC's and players have room to transition and move, and test out the path finding to ensure the AI does not get stuck.
- Only put enough placeables and the like to give the area the flavor you want.
- Turn Shadows off on placeables and make them environmental objects. Keep light sources down and try to only have one in effect on any one area.
- Minimize grass, players can turn it off, but one who doesn't can cause lag to entire server.
Areas and Walkmeshes
- Keep external areas small as possible (max 16*16, preferred 12*12 or less, although if care is taken larger areas should not be a problem)
- Give the NPC room to walk. ( less way finding problems )
- Minimize the walkable area to just areas the Players are supposed to be able to enter.
- On exterior areas, doublecheck the baked walkmesh. If it looks messy, try to simplify it with manually painting walkable and non-walkable sections to make it simple and smooth.
- Try to avoid walk mesh cutters, especially where you can just make areas unwalkable. Unwalkable areas mean less overhead for the engine. Smooth areas mean the pathfinding AI will not get stuck in a nook or cranny. A computer controlled npc stuck in a corner that can't find his way out will cause lag spikes and 100% cpu usage.
- Large enough transition points
- When a character transitions to an area, ensure there is ample room in case other players or npcs are present. It is possible to get bumped into a non-walkable area which results in the player crashing out. Make sure that as a group enters an area and bump each other there is enough walkable area to hold them all. One anecdote describes a player who is in this state and repeatedly crashing as he tries to enter the game, the DM seeing this was able to move him as he logged in right before he crashed and thus was able to let him log in.
- No 1x1 interiors
- any 1 X 1 interior will crash clients running ATI cards
Objects and Placeables
- Minimize trigger vertices
triggers with 100+ vertex points have been proven to cause problems. Though having six or twelve vertices is probably ok (no need to have only triangles or squares).
- In order to prevent any of your placeables, doors, etc form being bashable, set the Plot flag within the properties of the object to True (plot items can not be destroyed by any means disposable to an ordinary PC).
- Don't use to much placeables. ( better loading times ) Just enough to get the point across.
- Set placeables to environmental objects whenever possible, especially in non-walkable parts of the area.
- If you stack placeables, set them to env. objects and use a walkmesh cutter.
- Way points (from area transitions) should be in large clear walkmesh areas (not too close to edge, not in narrow areas, not near many objects)
- Minimize Number of Tree Seeds
- Early on in NWN2, Obsidian had recommended not to exceed a total of four seeds The definition of a seed being the type of tree (example, a fan palm and coconut palm are already two, not one just because they are both palms) AND a seed number. Perhaps since initially prescribing that guideline, Obsidian has made improvements to their engine so that number has increased.
- Minimize use of grass
- As grass flows with the movement of the wind, it is relatively very resource consuming. Use sparingly.
- 6 placeable limit on each tile
"I had read about some 6 placeable limit within a tile; It seems it must include trees, environmental objects (and possibly even triggers and encounters with some higher limit). I had a total of
- 4 trees
- 3 env obj
- 6 walkmesh cutters
- 1 encounter
I shifted the small tree on the left one ~ the diameter of its cutter leftward, out of the tile, then it baked fine. I was surprised though as this didn't seem cluttered at all and I felt I was well under the limit.
envi objects never count, but the mesh cutters around them do. Walkmesh cutters are the only trigger that affects the walkmesh. Basically it is just cutters and placeables and the walk/not walk terrain painting that affects the mesh.
Sometimes it is the shape of the cutter that is too confusing to the bake. You could have also tried redrawing the octagons into squares and trying again."
DM Hatred, Dungeon Eternal.com
Monsters and NPC's
- not to many NPC in the same area at the same time. ( I try to keep the NPC amount below 20.)
- Keep the number of active creatures (incl. the players) below 20 per area, if possible.
- Avoid spawning more than 2-3 creatures near each other. Their OnPerception events will go berserk.
- No creatures near transition targets!
Lights and Shadows
"I ended up using quite a bit of lights on the Drow map and learned a couple of things about them in the process, so thought I'd start a thread on this topic that we can add to as we learn more.
Most importantly, regarding lights, keep in mind that by default, they cast shadows, and the more lights and shadows we have, the more we can slow the performance of our clients' machines (and possibly the server). One very good thing to do is to disable shadows. Two ways:
The properties of the map has settings for has directional light, and directional light casts shadows. I'd initially set has directional light to False, though got some very bad graphic bugs (on an exterior map), so had to turn this back on to true.
Though being an underground area, it is most natural that the light would be very dim and not cast any noticeable shadows in a place already so dark. So I turned directional light casts shadows to False.
I then used a combination of the Power Bar plugin and the Area Contents tab in order to seek out and group my point lights. Area - select objects - Tag (copied and pasted the tag for my lights here), then temporarily grouped them, right clicked and opened properties in a new window, so that I could disable all of their shadows simultaneously.
I went further, since I had ~80 jail pieces, which are very dark wrought metal pieces, I selected all of these and set receives shadows to False.
Later I went through and read the help manual. It provided one more tip, recommending not to exceed light from more then 3 point lights on and surface. So if you set your Show/Hide selection to show the light spheres, you can see pretty easily where they overlap, and adjust the sizes and locations of your spheres so that you don't have more than three affecting any one surface."
DM Hatred, Dungeon Eternal.com
- Go easy on the number of point-light sources.
- Almost every light to Cast shadows? = False
- (unless it is a very bright light in an area with a background where shadows should be obvious),
- Set most placeables and environmental object to Don't Receive Shadows = True
- (especially in the maps I am working on more recently, in Underdark where it's already so dark anyways, or, if the object is already very dark in color so shadows wouldn't be real noticeable anyways).
- Area properties, I set Directional Light Casts Shadows? = False. In underdark maps, I'd like to actually set it Has directional light = false, but that resulted in graphics errors (Obsidian Bug at least as of 1.06.980). Well, this is also great for interior or underdark areas, though probably not good on your current map since it's in a desert, but good to keep in mind for future maps (and maybe even a good idea to bring all existing maps to some standards like these?).