Journals

Overfloater2 weeks ago2024-11-03 08:56:23 UTC 4 comments
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
satchmo4 weeks ago2024-10-20 04:49:10 UTC 6 comments
It has been more than twenty years since I joined TWHL.

It was the start of my mapping journey, and now my son has included his level design experience as a part of his college application.

I will check back in ten years. I sure hope TWHL will still be a thriving community.

I turn 52 in ten days.
monster_urby4 weeks ago2024-10-18 00:52:01 UTC 7 comments
User posted image
I just wanted to create this journal to let everyone know that a new Pathos update has dropped. I've added a ton of new features, but mainly what a lot of people have been wanting to have, and that is support for the type of animated and switchable lights you had in Quake 1 and Half-Life! Yes, you no longer need to use env_dlight and env_spotlight to achieve this, but instead this is natively supported by Pathos now.

A list of the changes made:
- Merged custom normalmap feature from PR #43.
- Reformat PR #43 changes to be in line with Pathos coding standards.
- Fixed issue in PR #43 where the last set current water pointer would override any custom water normalmap textures.
- Merged "pos" and "maps" command from PR #38.
- Reformat PR #38 to be in line with Pathos coding standards.
- Fixed PR #38 to report player position in world, instead of the last view origin used for rendering.
- Implementation of Pathos BSP Version 2 format.
- Custom storage for ambient, diffuse light data, and light vectors.
- Add data variable in face data for potential lightmap scaling feature in the future.
- Add data variable in face data for potential smoothing groups feature in the future.
- Support added for Half-Life 1-type animated lights.
- Extend light and light_spot entities to support the animated/switchable lighting feature.
- Add FGD entries for styles to light and light_ entities.
- Optimize CBasicDraw class by adding support for rendering quads using indexes.
- Added func_particleblocker entity to specify select brush entities that particles can collide with.
- Modify ALD format to support animated lights along with bump mapping data generation.
- Modify renderer to support bump map data generation together with animated lights.
- Added function header comments in some files.
- Extension of file interface by adding a function to query the game folder name.
- Cleanup of model cache code that identifies and loads BSP files.
- Optimized beam rendering and vapor trail beam code to be more performant by rendering them as quads with indexes.
- Optimize vapor trail beam lighting retrieval code by only doing it once per a given distance.
- Optimized lightmap generation code by extending the AllocBlock code to extend both height and width from now on.
- Added debug cvar to enable dumping of lightmaps generated by BSP renderer.
- Added game_staminamodifier entity.
- Modify worldspawn entity to now send lightstyles to client.
- Fix worldspawn not calling base class's spawn function in derived function.
- Fix CGLSLShader not creating logs file folder when an error occurs, causing logs not to be created.
- Add bspconvert tool, which can convert Pathos V1 BSP files to Pathos V2 version.
- Extend entitytest2 map to showcase switchable lights.
- Move some BSP processing code to shared file.
- Move lightstyle code in renderer out of dynamic light class and into it's own.
- Optimize on lightstyle array code.
- Add compatibility code for V30 BSP and Pathos V1 BSP to support legacy bump map data storage solution.
- Clean up struct usage in BSP loading code to specifically use named structures for V30 and Pathos V1 BSP.
- Move lightstyle array code out of CEnvDLight and into server-side lightstyle class.

You can find the latest commits here:
- For Pathos: https://github.com/TheOverfloater/pathos-public/commit/5ea8844617eb125175550edbe34cb59898fc7acf
- For Pathos's version of VHLT: https://github.com/TheOverfloater/pathos-vhlt/commit/b59bac0943923d919059353bb725ee51b3f36b2f
Suparsonik1 month ago2024-10-04 19:17:13 UTC 7 comments
On October 4, 1985, the Free Software Foundation was founded by Richard Stallman! We have a lot of free software thanks to promotion from the FSF over the years and I think that's pretty darn cool.

...There's also the fact that 10 years later to the day, I was born. It's my birthday!!!
2^5
Erty1 month ago2024-10-02 08:25:58 UTC 12 comments
Finally a nice, round number of years old again.
Last time my age was a power-of-two, I was just a little shitkid being up to no good. Next time, I'll be yelling at such shitkids to get off my lawn. Heh.

Anyways, back to work.

How have you all been?
jamie1 month ago2024-09-30 02:58:38 UTC 1 comment
fool.avi
jeffrey1 month ago2024-09-23 20:42:36 UTC 5 comments
I hear people write puzzle journals on their birthdays.
grroa://qqq.tiyryvw.xin/q'rxg?c=6yof'Y"xhvx
Overfloater2 months ago2024-09-14 10:46:36 UTC 4 comments
For anyone using the Pathos Engine, a new update has dropped, adding some new features and fixing issues.

Link to the repo:
https://github.com/TheOverfloater/pathos-public/

Changelog:

- Add missing entries for knife to hud script.
- Add support for displaying ammo counts for item/ammo/weapon pickup history.
- Add "Documents" viewer Game UI feature.
- Add muzzleflash particle script for silenced weapons.
- Remove HDR feature due to severe performance issues caused by FBO blitting.
- Add experimental Bloom post-process feature to Pathos.
- Add missing schema definition for screen text.
- Add explosion gibbing burn damage to gibs.
- Make pressing Escape key while in a Game UI window always close the window.
- Add support for Bitsets to client/server User Message system.
- Add support for custom colors to AI awareness bar.
- Added GameUIScrollableSurface class.
- Add support for 32 mission objectives max in Objectives Window.
- Fix view model snapping issue when exiting ladders due to view model lag.
- Expand CBitSet class to cover all basic bitset operations/checks/features.
- Fix issue with flashlight disappearing for 1 frame after exiting ladders.
- Hide engine command _set_hrtf from users.
- Improve overdarkening feature used by lightmaps.
- Fix it so that the "stopmusic" command completely clears music, no longer letting it continue on reload.
- Add engine function to server to allow retrieval of the invoking player edict on an issued command.
- Fix issues with engine render code not filtering skybox/portal entities properly when rendering.
- Fix issue with alpha to coverage corrupting the menu when used with legacy transparents enabled.
- Fix engine to use R_BindCubemapTexture for all cubemap texture binds now.
- Fix dynamic lights set to not be culled by the main view frustum still being culled regardless.
- Fix lightstyle for dynlights being broken if shadows are disabled via cvar.
- Add safeguard against problematic angle values in dynamic light code.
- Change usable object glow aura color from blue to green for better visibility.
- Remove more C-style casts in favor of C++ ones.
- Modify any rectangle texture binds to use R_BindRectangleTexture instead.
- Fix an issue with portal surfaces not always binding the rectangle texture properly.
- Fix decal generation code memory corruption issue with bone index arrays.
- Add support for dynamic-sized CArray<> basic variable types to the save-restore system.
- Add support for CBitSet to the save-restore system.
- Optimize memory used by entities by only declaring save-restore field data when being saved/restored.
- Add data sync issue on level change with player prediction when on moving entities.
- Fix MSG_SNDENGINE_OGG message reading channel as unsigned and not letting all chanels be specified.
- Fix prediction being run on client even when local server is halted.
- Add error message to schema loader if file is not found.
- Fix issue with SDL_INIT_VIDEO not being called in the right order, not allowing context version to be set.
- Modify NPC AI code to use CBitSet for AI bitflags instead of Uint64.
- Expand AI lean/enemy awareness code to support awareness levels for multiple entities.
- Fix crash issue in NPC enemy awareness code.
- Modify NPC code to support determining whether to proritize enemies that can be melee attacked.
- Modify Patrol NPC code to clear the patrol history far more infrequently when errors occur.
- Modify some schedule names to feature the names of the base classes.
- Added support in ambient_oggstream to fade out/stop a specific music track played by another such entity.
- Add index/name consistency check to player weapon type enums/definitions arrays.
- Add index/name consistency check to sequence activity type enums/definitions arrays.
- Add index/name consistency check to bullet type enums/definitions arrays.
- Fix light_environments on levels not using alternate lightmaps not being setting env lighting values at all.
- Improve materials definition script code to be more efficient with memory.
- Add feature for spawning entities with "give" command that allows givin them targetnames using a third parameter.
- Modify saved passcode system in player code to rely on dynamically sized string_t CArray type.
- Modify weapon pickup code to leave empty weapons behind in special cases.
- Add new HUD weapon slot for submachine guns.
- Modify mission objectives code to use string_t CArray dynamic array instead of fixed-sizeo one.
- Fix weapon code to properly play pickup animations if player picks up a matching weapon with the clip empty.
- Modify same ammo types shared by weapons to be single pools of ammo instead of separate.
al_mam2 months ago2024-09-11 16:14:36 UTC 5 comments
I've been thinking about making a series of tutorials on fragMOTION for a long time. Is anybody interested in that? Maybe someone wants to start modeling(modelling?) for Half-Life, but Blender seems too intimidating?
I've spent too much time in fragMOTION, and I've got a thing or two to tell about it.
If you have a suggestion on what to cover specifically, please, tell me.
kimilil2 months ago2024-09-10 16:29:58 UTC 1 comment
List of tutorials that I want to write/have written, and the key points.
Tutorial: Zooming in to the subunit world of GoldSource mapping
  • Describe power of 2, usage of resizer blocks, methods:
    1. do work at power-of-2 scale of the final object
    2. move/scale at po2 fractions
Tutorial: The packing (and non-packing) of bodygroups and skin groups in GoldSource models
  • Describe how bodygroups are packed and how to calculate them for use as body kv
  • Describe how skins are NOT packed (only uses first one) and how to manually pack skin groups into the first texture group
  • Example model: scientist?
Tutorial: Fake corpses
  • A way to have dead props of monsters without _dead variant (their models don't have death poses), and without messing with QC/SMD/CPP
  • env_sprite
    • pros: can freeze animation at end of dying sequence
    • cons: cannot set body/skin
  • monster_furniture
    • pros: can set body/skin
    • cons: sequences reset and needs scripted_sequence, needs to play death seq. in full plain just doesn't work without seq. events in the dying act-sequence
  • explore other options
  • explore a way to have gibbable corpses (func_breakable is too goofy tho)
Tutorial: Divide And Conquer Method
  • How to narrow down on sources of problems in a map
  • touch on prelims: map > check for problems... [& also entity report?]
  • examples: allocblock, entities causing crashes on load
Tutorial: Jerry-rigging props into GoldSource
  • Finding the best entities to have models. criteria and use cases:-
    • props: can set body and skin
    • corpses: can set body, skin, sequence, frame
Tutorial: Entity cryptids ☑️ Tutorial: Finding center of rotation from initial and final positions
  • Basic geometrical construction method to find center of rotation for any object-image (or initial/final) pair
User posted image
Reason 1: Isaac has a better arsenal of gadgets etc. (he can fly or throw exploding tears)
User posted image
User posted image
User posted image
Can make deals with the angel and the devil also...

Reason 2: God can intervein events for his favor and Isaac can call powerful allies to his fights.

Reason 3: Isaac is more endurable (physically and psychologically).Isaac takes no damage from falling and can survive explosions and such.

Reason 4: Eden. No elaborating words... too self-explanatory. (Wsaac)
User posted image
Reason 5: Isaac can come in many versions.(Lazarus for example)

Reason 6: W ending . In this reason, Isaac proves hisself to be more real than Half life characters.
User posted image
Honorable mentions:
Better modding community than half life's:
User posted image
User posted image
Better character design (hdtf and blue shift are an exception):
User posted image
User posted image
(too f#cking cute!!)
(when you compare him to Gordon Freeman and Adrian Shephard you can see how dull they are)
You can see how mighty Isaac is after reading this...
Striker2 months ago2024-08-22 09:48:00 UTC 6 comments
Anyone in Cyprus this September?

Might be able to grab a beer or do some boating or whatever it is that you do in that country.
Erty2 months ago2024-08-19 12:24:16 UTC 3 comments
So you offer to help someone with their map, or perhaps you're collaborating with someone, and right away after opening the RMF/JMF you're met with Invalid texture ('!C2A5') and Invalid texture ('WWOPCLIGHT2A') etc. The author has forgotten to let you know which non-default WADs were used in the map and has now run off somewhere and is out of reach.
Sometimes that happens.

Well, I made a simple CLI tool, Which WAD, in Python re-using some Map2Prop code to help out in that scenario.
It can also extract those textures, and automatically searches _addon, _hd and _downloads folders as well.
I'll add some functionality to use wildcard (*) later on.
Other than that, summer has been very tiring. Caught covid twice and barely started to recover. But I managed to release the first full version of Map2Prop, a year after I started that project! So that was exciting. Still have to properly celebrate that, once I'm in a shape for such.

Oh and our tomato plant finally yielded a nice, sweet, ripe tomato!
User posted image
Very happy with how our first tomato fruit turned out!
We had it with some mozzarella, olive oil and oregano 👌