Finger info for marco@icculus.org...


The case for pk3 support in Steam GoldSrc

I have proposed months ago to Joshua Ashton that Half-Life and the other GoldSrc games on Steam receive support for uncompressed/compressed .zip archives in their filesystem. He was tasked to work on HL2 earlier last year and is currently fixing up GoldSrc.

It was me who also proposed the HUD-aspect option in the Half-Life 2 beta update that was released in time for Steam Deck. This was because Nuclide had this option (cvar cl_hudaspect) for a _long_ time and I highly dislike wide-screen gaming without it.

I was hoping I'd make a dent with the .pk3 support but I'm not sure if it's going to happen.
It'd really unfortunate, too; this is why you should care:

- Stupidly easy install/remove process of addons
- Literally plop in *hundreds of thousands* of existing custom maps into your game directory. No extracting or further configuration necessary
- Installing and addon will no longer overwrite base-installation files. If a map turns out to override e.g. models/hostage.mdl in CS you can remove a .pk3 _without_ having to verify integrity of the game files in the Steam client
- Compressed .zip downloads would make sharing them across listen servers or servers without fastdl/httpdir configurations much faster
- The basis for tacking on Workshop support. Valve would only provide an uploadtool as appending/removing single files from the directory listing is already built-in functionality of the Steam Client for Workshop
- It's what Quake's community has been doing since 1999

Everyone knows what it is, it's just been a major blindspot for the Half-Life community and Valve.

Half-Life used to use .pak files; plain Quake 1 styled .pak files. They stopped using them sometime with the Steam release. This is because they were difficult to create and had strict limitations to path and filenames. This is why mods did not use them. This was a problem even with Quake and Quake II. However, with the dawn of zip support in Quake III Arena, anyone could make them with a right-click.

Meanwhile in HL-land, you constantly verify your game files if you tinkered with anything. If you install a custom map it usually leaves its files all over your tree - it's a complete mess and Valve even did away with that in Source and went to storing files in vpk archives.

I was told zip support is implemented in the virtual filesystem code that GoldSrc uses already (as it shares code with the Source Engine, which uses zip in interesting places).

It's also not entirely up to Joshua as he still has to answer to higher ups who may think this is unwarranted.

This is being written just to record my intent and to preserve this little known fact of history. I was at least glad to make a minor contribution to Half-Life 2.

I hope I get to influence things more.

TODO for when I get around to them
----
Nuclide/FreeHL game tat:
- Gunman weapons still need more work!
- Team Fortress support is laughable in the weapons department, core ents
  needs more testing (2fort works perfectly last time I tried)
- Poke646 is practically on halt until the other two are done

Counter-Strike still has animation oddities I need to look at with Spoike.
It's related to how we compose the animation blends in-engine. The basebone
field manipulation crap kinda sucks. You shoot a gun while crouch and your legs
which are _NOT_ supposed to move, bob back and forth. What's going on there?

When this .plan was written: 2022-05-19 12:17:14
.plan archives for this user are here (RSS here).
Powered by IcculusFinger v2.1.27
Stick it in the camel and go.