Journals

The YouTube algorithm pushed me Half-Life stuff because of the anniversaries, and that brought me back here.
I'm downloading a bunch of the latest competition maps. Congratulations, everyone!

Preface

Now, I'm not exactly comfortable with infodumping personal stuff onto people. We all got our problems, and offloading mine has always felt like an impolite thing to do. However, I would occasionally see other people do it, so maybe it's not so bad after all? Hey, maybe that's even a healthy thing to do? I don't know, and I've never really had a chance to ask anyone.

To further try and justify the following mess of codepoints: for quite a long time I've been finding myself talking to a mirror, or a wall, about a curiously recurring set of topics. It would always kind of occur on its own, take a lot of time, and give no sense of resolution whatsoever. At some point, it became clear that feedback was needed.

I kinda departed from this place not that long ago, but soon I ended up coming back over and over, and I'm still not sure what the reason is. I don't know if I'm still welcome here at all, but whenever I thought about screaming into the void in text form like that, the journals section always seemed like the best kind of void that came to mind.

I apologize for being a long-time annoyance.
Before I Go On
There's quite a lot of what I want to talk about. I've never really done this before, so depending on the reception and how this turns out, I'll be posting in parts - or not, if you tell me to cease the activity (I'll understand :P ). I was thinking of doing it in one piece, but felt like I need a warm-up first, and was too anxious to dump too much in a single go.

I've got another idea for a journal, which is about sharing neat and cool things I've found, like YT channels, bands, games, etc., and (hopefully) talking about them and beyond in the comments. We'll see.

Boring Job Talk

I seem to be doing fine. Probably better off than many, which makes me feel all the more guilty while writing. I'm currently employed in a software outsourcing company, which I've gone through an internship in, in parallel to completing my last 1.5 years of university. Soon after graduation, they agreed to sign a distribution document, which meant that I'm guaranteed and forced to be employed there for at least the next 2 years.

It's a pretty weird place to be employed at, however. Shortly before the final exams hit (and waaaaay before I was officially employed or even getting any kind of payment at all), they'd put me on a project as a proxy developer - that meant I'm doing the actual programming while someone makes appearances on calls and meetings. It was quite a mess, but eventually I got used to it and even got some industry experience getting messy legacy backend code to work.

As autumn military drafts were getting close, I got a pair of notices that required me to show up at my assigned voenkomat, to determine my suitability for army service. Spoiler: I was deemed unsuitable and rescheduled to show up 3 years later. However, as soon as I received the notices, I notified my management and they decided to move me off the project.

The normal scenario of getting a project here involves going through an interview with a client and lying a lot. Ever since losing my shadow project, I've been consistently (and unintentionally) failing these, so all my obligations really involve just visiting the office twice a week, appeasing their homebrew working hours tracker, and telling their status check bot that I'm still alive.

Now, with the boring stuff out of the way...

Personal Projects: Mappack

The progress on the mappack can be described in two words: slow and steady. Well, that was three words, but anyway: I'm working on it, on and off.

I've thought a lot about its overall structure, and decided that it's set somewhere during Surface Tension, probably right after the section with the helicopter and the minefield. Except Gordon doesn't immediately end up at the cliffside soon after descending into that tunnel. Instead, possibly after crawling for a little while longer through a small tunnel network and letting some time pass, he ends up near what appears to be a Weather Monitoring Station (the one with the dome, if you remember).

After finding out that the thing's just a cover for what appears to be a long way down into the guts of Black Mesa, Gordon descends into the hazy Maintenance Tunnels (the shots of which I've been shamelessly spamming the WIP thread with (sorry!)). There, the player gets introduced to an actual character - yeah! - a scientist, which, without spoiling too much, will accompany Gordon indirectly throughout most of the mappack.

The next chapter is the Optics Department. That one will be all about colorful crystals, gigantic laser machines, and all sorts of cool lighting effects. You'll even get to burn a giant hole in the Mesa itself (after the obligatory Half-Life-esque powering-up process!)

The final one is Administration Offices - yup, the place where Dr. Breen is! ...Or, well, was supposed to be. You won't actually see him (no way I can find a VA for that one :v), but you'll have to grab a certain something from there.

One idea I keep thinking of is related to that one scientist character. I'm thinking of trying to record the lines for him myself - although there's, like, an astronomical number of things that can go wrong - or I'll just ask someone. Don't know who yet, though. The more fun thing, however, is you'll be able to shoot him dead and the game won't end. Quite the opposite - the rest of the mappack will subtly adjust to it. After all, Half-Life really has always been an RPG :P .

The toolchain for the mappack is something I've never really thought I'd end up using, and is actually fun to experiment with. It's your classic favorite VHLT v34 for doing the heavy lifting, but on top of that, there's MESS by Captain P and Half-Life Featureful SDK by FreeSlave.

I've used MESS before, and made two grave mistakes back then: make all my mapping revolve around it (bad idea!), and - albeit somewhat unrelated - implement very detailed entity setups during the grayboxing stage (very bad idea too!). Now, however, I only use it on very specific occasions: duplicating small lights across very long surfaces, saving very sophisticated setups to reuse them and easily tweak them if need be, etc etc. It's a very big help this way.

Featureful is to thank for enabling the usage of fog in Maintenance Tunnels. But it also adds "upgraded" versions of multi_manager, which I've grown quite fond of using. It also gave me the idea to incorporate some of the Op4 enemies into the mappack, like the Black Ops.

I'm going to have to touch up what I have of the tunnels, and also the weather monitoring station. After that, I'll finally be able to move onto the optics department, and trust me, it's gonna be epic! I'll make sure to share some shots as well :cool: .

Wrapping Up

Not too much, but enough for tonight, I think. I had kind of cut myself off from the people here for a while, for better or worse, but I'll talk about it more in the future. Right now, I kinda just wanna establish contact, that's all. A new beginning, in a way. See u later!
jamie1 week ago2024-11-27 03:54:20 UTC 1 comment
Suppose that you need something, but don't have the time to do it. Maybe it's just too good to leave it archived, maybe it took considerable effort, and you even made a labor of love on it. Maybe you simply want to get rid of it, publish it, let the world know it, etc.
I'm pretty sure everyone (or most of us, at least) have recycled content in some form. It can range from a simple idea to an entire map, a whole model, pehaps even the mod itself!
But, is it ethical? Is it correct? Are you not commiting any "modding sins" by reusing content? Why am i even bothering to question such banalities?
I guess it's not a bad thing, but from my experience, it could be frowned uppon by some modders. Maybe because it shows a lack of effort, or it can break the vision of the whole thing.

For example, my submission for Make Black Mesa Come Alive was no exception.
For starters, this miniwarehouse section was recycled from another mod that i never finished (and will never bother to do so). It was heavily modified, so only its essence remains.
blusquidblusquid
The grenade models were recycled from a cancelled deathmatch mod i was working on too (Can't remember it's name, but it had a Mod DB page somewhere).
'nades'nades
A character that you only get to see once is this guy (during the short vent sequence). He was supposed to take a more prominent role in the maps, being required to unlock doors and disable security systems.
caption textcaption text
Another character that was also supposed to appear at the very beginning was this unnamed security guard, who was not in a very good shape. Similarly to other games, he would have served as a companion that taught you how to work in teams (like at the start of Black Mesa). You were the brains, he was the brawn. His model (and concept) was recycled from my cancelled entry for The Buddy System.
Gordon was to take this role too at some point, tho you would have followed him instead, and helped him to open doors and such. Gordon's model comes from an unfinished mod of an alternate universe.
"John Doe", and Gordon"John Doe", and Gordon
Both the security guard and the scientist had scripted arguments and dialog that made them feel more alive, making the player forget just for a small second that one is a bullet-spitting machine and the other one is a living keycard. They also had animations for jumping over ledges and railings, climbing rooms and ladders, a concept that came from this awesome mod.
Finally, there was also supposed to be this small sequence where you entered some random lab and freed a vortigaunt. The model was reused from yet another cancelled mod. The purpose was to show that vortigaunts are slaves, and constantly being forced to participate in an invasion they probably don't want to take part in.
vortvort
Most of these stuff were cut, but it just amazes me how much content i have been trying to reuse lately (i also wanted to display these models because i consider them too good to be archived).
It also makes me think, how much unused or never-seen-before content has been made by the community, and how cool it would be if people posted every single thing they made. Something like TCRF but for Half-Life mods.
Sure, it would probably lead to a massive flood of mediocre/unfinished content. But it could also give us some uncut gems. It could serve as inspiration. Imagine, a map you never finished serves as an inspiration for the next "They Hunger"! That would definitely be cool to see.
Just a tought.
froghair1 week ago2024-11-27 01:38:32 UTC 1 comment
I have been a "mapper" since the earlier days of Half-Life. I was never one of the greats. I had always wanted to create a map that would propel my name to Half-Life celebredom and see my bsp smeared all over the server lists. That was not in the cards for me. My maps were either proof-of-concepts awkwardly trying to push the boundaries or overly artistic with no substance.

My five year old son has been playing Gary's Mod recently. Since he took an interest in it, I loaded one of my old (2007ish) HL2 maps into it for him to play. I didn't expect him to like it. It was more of a, "Hey look, your old man used to do this stuff!" But days later, I was walking past the computer and he was playing my map. I asked him, "You actually like this map?" and he replied, "Yeah daddy, its fun!"

It was a very heartwarming moment for me. I never made the map knowing that over a decade later my son would be the one enjoying it. I felt like I had finally got validation in the best way.
omedog1 week ago2024-11-23 12:37:58 UTC 1 comment
I am a man of few proclivities and fewer hobbies
thus I shall take it upon myself to dedicate time on educating myself on the goldsrc engine
until I give up
RedLazer50001 week ago2024-11-22 16:04:00 UTC 1 comment
Yesterday, some lore has been implemented into the already polished map for the starting point of Half-Life: Flame.

There are three scientists which discuss about a recent change in the facility. New technology has been implemented, but one scientists feels that this is going to cause a cascade of issues.

Find our more soon
Overfloater1 month 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
satchmo1 month 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_urby1 month 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
Suparsonik2 months 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
Erty2 months 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?
jamie2 months ago2024-09-30 02:58:38 UTC 1 comment
fool.avi
jeffrey2 months 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.