Another Pathos update has dropped

Posted 1 month ago2024-11-03 08:56:23 UTC
Just wanted to let everyone know that a new update for Pathos has dropped, which includes some code fixes and optimiztions, as well as new features, such as lightmap upscaling and lightmap data compression.

Changelog:
- Updated tools_readme.md with information about bspconvert and pbspv2update.
- Updated shaders.md to provide better information about invalid states.
- Recompiled the levels to use 4x lightmap upscaling.
- Added a new room to feature the new post-process effects added by valina354.
- Added new voice recordings to help explain new features.
- Added new constant to CString class to denote null result from find.
- Added lightmap data compression support to Pathos BSP V2 and the ALD file formats.
- Added string caching to CString class to help decrease memory usage.
- Modified lightmap data storage to store the default lightmap data on-disk if ALD files are present, instead of storing it in memory all the time.
- Modified CMD5 class to use a constant for the size of the hash result.
- Modify texture manager to use maps instead of linked lists for faster texture lookup.
- Modify various engine structures and classes to use std::map and std::unordered_map instead of the arrays and linked lists.
- Added CSysPrintInterface to allow for tokens that set how many times a message should be printed to the console per game or application instance.
- Added experimental lightmap data compression feature.
- Fix memory leak in dynamic light manager.
- Fix memory leak in menu particle system.
- Fix memory leak in portal renderer.
- Fix GL texture not being deleted in portal class.
- Fix two memory leaks in texture renderer.
- Got rid of hash arrays previously used to limit the number of repeating messages printed to the console.
- Modified ambient_generic entity to support playback of sentences.
- Improved VBM loading code by getting rid resizings/memory reallocations during level load.
- Extended math_counter entity to provide different increment values and operations per trigger mode.
- Fix trigger_relay_binary, where it would always trigger it's On target regardless of it's actual state.
- Fixes various problems in pathos_jack.fgd with the new entries.
- Added "Initially dark" spawnflags to light and light_spot entities.
- Added pbspv2update tool to help update V2 bsp files to V2.1.
- Updated DMC forest skybox to latest version.
- Updated compile scripts to use the lightmap scaling feature.
- Modified vhlt compile tools to now support lightmap upscaling up to 8x(still needs work).
- Modified vhlt compile tools to support miniz compression of lightmap data.
- Improved parameter design for new features in the compile tools.

Commit:
https://github.com/TheOverfloater/pathos-public/commit/1e7fe9f6f80659b272dad0d55fed8d8fefc98206

4 Comments

Commented 1 month ago2024-11-03 16:53:09 UTC Comment #106488
So Pathos uses its own BSP format? Other than bigger lightmaps, are there any other differences?
Commented 1 month ago2024-11-03 17:56:15 UTC Comment #106489
It's mostly still just a better version of the HL1 BSP format. The main differences are higher limits for things like nodes, clipnodes and leaves, and of course lightmaps(no more allocblock errors). You can craft significantly larger and more detailed maps without running into any engine limitations. The limit isn't the sky, but it's high enough that I realistically don't think anyone will bump into them unless they really go crazy. And even then, the compiler's limit defines can be extended even more with no problems.
Commented 1 month ago2024-11-04 09:03:31 UTC Comment #106490
Sounds interesting!
How's visibility handled? Is Pathos limited by the room-corridor paradigm, or does it handle large open spaces well?
Commented 1 month ago2024-11-05 19:10:05 UTC Comment #106491
I've made outdoor areas plenty in the engine, and it handles them well. The PVS/VIS implementstion is still the same as what Half-Life had, but you can use things like fog to limit the draw distance. Overall though the engine is optimized to render everything in retained mode, so it's much faster than GoldSrc ever was, when it comes to pumping out large amounts of epolys and wpolys.

You must log in to post a comment. You can login or register a new account.