Difference between revisions of "HPL3/SOMA/Level Design/Advice for Level Designers"
(Add source-verified reference and identify information needing expansion.) |
(Expand the SOMA guide with verified stock examples, practical steps and precise remaining documentation gaps.) |
||
| Line 1: | Line 1: | ||
{{shortPageTitle}} | {{shortPageTitle}} | ||
| + | |||
{{stub}} | {{stub}} | ||
| − | The | + | Start with a working map-editing loop, then check how your layout, lights and effects affect rendering. This guide brings together SOMA’s existing editing and performance guidance so you can apply it while building a level. |
| + | |||
| + | == Prove that your edits load == | ||
| + | # Work on the map inside your mod and check the editor title bar for <code>(Working on mod)</code>. | ||
| + | # Move one existing object an obvious distance, save the map, then close and reopen it. | ||
| + | # Launch the mod and confirm the same change appears in-game. | ||
| + | # Continue with one small map or script change at a time. In development mode, use <code>F5</code> to restart the map and <code>F1</code> to inspect '''Show Error List''' or '''Show HPL Log''' when a change fails. | ||
| + | |||
| + | Keep the map’s <code>.hpm</code> file and its <code>.hpm_*</code> tracks together. If an old version appears, the Getting Started guide recommends closing the game and relaunching the mod to rule out cached state. | ||
| + | |||
| + | == Plan indoor rooms around what can be seen == | ||
| + | Occlusion culling determines which objects are visible from a position in the level. The [[HPL3/SOMA/Level Design/Indoor Level Performance|indoor performance guide]] recommends separating rooms and their object bounds, using doors or other occluders, and avoiding uninterrupted sightlines between rooms. A diagonal or zigzag corridor is one of its examples. | ||
| + | |||
| + | For a troublesome doorway, check these items: | ||
| + | # Inspect whether the door or blockade is an occluder. SOMA’s entity definition exposes <code>IsOccluder</code>, and the performance guide identifies doors and blockades as useful dynamic occluders. | ||
| + | # In the debug menu, select '''Render Only Occluders''' under '''In Depth''' to inspect the geometry used for culling. | ||
| + | # Look for small gaps around the door, walls and floor. The guide’s doorway example shows how geometry leaks can undermine culling. | ||
| + | |||
| + | The same guide cautions that adding many dynamic occluders increases draw calls and queries; the advice is to identify useful blockers rather than enable every entity indiscriminately. | ||
| + | |||
| + | == Check the bounds of shadow-casting lights == | ||
| + | The indoor performance guide recommends adjusting a spotlight’s radius and field of view so it does not unnecessarily cover objects or neighboring rooms. It also recommends light masks where a light must be kept within a room. | ||
| + | |||
| + | If a light does not need dynamic shadows for gameplay, the guide recommends disabling '''Shadow affects dynamic'''. It also suggests reducing unnecessary shadow-casting lights and using a gobo where that can replace the required shadow pattern. Test flashlight-dependent rooms with the flashlight on, as the guide explicitly requires that when evaluating performance. | ||
| + | |||
| + | == Check the cost of the effect you add == | ||
| + | * For reflective water, the indoor guide recommends reducing the objects visible in the reflection. It also describes disabling reflections or lowering the material’s <code>ReflectionFadeEnd</code> when the scene needs both water and detail. | ||
| + | * For outdoor terrain, the outdoor guide recommends using terrain for most of the silhouette and meshes for important landmarks and details. | ||
| + | * For distant objects, that guide recommends distance culling for suitable details while keeping gameplay objects, landmarks and important objects such as lamps from being culled. | ||
| + | * For fog culling, the outdoor guide says fully fogged objects beyond Fog End can be culled when silhouettes are not needed. The map helper’s <code>abCulling</code> argument likewise specifies whether fog-hidden objects are rendered. | ||
| + | |||
| + | == Reuse groups deliberately == | ||
| + | For repeated arrangements, [[HPL3/SOMA/Level Design/Combos|combos]] store a compound for placement in the editor. For static geometry, the [[HPL3/Level Design/Working with Static Objects|static-object guide]] describes automatic combining of nearby objects with matching materials and settings. It advises sharing materials among pieces often used together, while avoiding textures that group unrelated surfaces and raise memory requirements. These are different uses of grouping. | ||
| − | == | + | == Still to expand == |
| − | + | The verified advice here covers map iteration and rendering. A broader guide to gameplay pacing, player guidance, puzzle layout and evaluating playtests still needs topic-specific source material. | |
| − | |||
| − | |||
| − | == | + | == Continue by task == |
| − | + | * [[HPL3/SOMA/Getting Started/Edit Your First Map|Make and verify a visible map edit]] | |
| + | * [[HPL3/SOMA/Getting Started/Test Debug and Continue|Use the development loop]] | ||
| + | * [[HPL3/SOMA/Level Design/Indoor Level Performance|Investigate indoor performance]] | ||
| + | * [[HPL3/SOMA/Level Design/Outdoor Level Performance|Investigate outdoor performance]] | ||
[[Category:English]] | [[Category:English]] | ||
Latest revision as of 14:48, 2 October 2026
|
This article or section is a stub. You can help by adding to it. |
Start with a working map-editing loop, then check how your layout, lights and effects affect rendering. This guide brings together SOMA’s existing editing and performance guidance so you can apply it while building a level.
Contents
Prove that your edits load
- Work on the map inside your mod and check the editor title bar for
(Working on mod). - Move one existing object an obvious distance, save the map, then close and reopen it.
- Launch the mod and confirm the same change appears in-game.
- Continue with one small map or script change at a time. In development mode, use
F5to restart the map andF1to inspect Show Error List or Show HPL Log when a change fails.
Keep the map’s .hpm file and its .hpm_* tracks together. If an old version appears, the Getting Started guide recommends closing the game and relaunching the mod to rule out cached state.
Plan indoor rooms around what can be seen
Occlusion culling determines which objects are visible from a position in the level. The indoor performance guide recommends separating rooms and their object bounds, using doors or other occluders, and avoiding uninterrupted sightlines between rooms. A diagonal or zigzag corridor is one of its examples.
For a troublesome doorway, check these items:
- Inspect whether the door or blockade is an occluder. SOMA’s entity definition exposes
IsOccluder, and the performance guide identifies doors and blockades as useful dynamic occluders. - In the debug menu, select Render Only Occluders under In Depth to inspect the geometry used for culling.
- Look for small gaps around the door, walls and floor. The guide’s doorway example shows how geometry leaks can undermine culling.
The same guide cautions that adding many dynamic occluders increases draw calls and queries; the advice is to identify useful blockers rather than enable every entity indiscriminately.
Check the bounds of shadow-casting lights
The indoor performance guide recommends adjusting a spotlight’s radius and field of view so it does not unnecessarily cover objects or neighboring rooms. It also recommends light masks where a light must be kept within a room.
If a light does not need dynamic shadows for gameplay, the guide recommends disabling Shadow affects dynamic. It also suggests reducing unnecessary shadow-casting lights and using a gobo where that can replace the required shadow pattern. Test flashlight-dependent rooms with the flashlight on, as the guide explicitly requires that when evaluating performance.
Check the cost of the effect you add
- For reflective water, the indoor guide recommends reducing the objects visible in the reflection. It also describes disabling reflections or lowering the material’s
ReflectionFadeEndwhen the scene needs both water and detail. - For outdoor terrain, the outdoor guide recommends using terrain for most of the silhouette and meshes for important landmarks and details.
- For distant objects, that guide recommends distance culling for suitable details while keeping gameplay objects, landmarks and important objects such as lamps from being culled.
- For fog culling, the outdoor guide says fully fogged objects beyond Fog End can be culled when silhouettes are not needed. The map helper’s
abCullingargument likewise specifies whether fog-hidden objects are rendered.
Reuse groups deliberately
For repeated arrangements, combos store a compound for placement in the editor. For static geometry, the static-object guide describes automatic combining of nearby objects with matching materials and settings. It advises sharing materials among pieces often used together, while avoiding textures that group unrelated surfaces and raise memory requirements. These are different uses of grouping.
Still to expand
The verified advice here covers map iteration and rendering. A broader guide to gameplay pacing, player guidance, puzzle layout and evaluating playtests still needs topic-specific source material.