I see this mailing list has been inactive for over a year, but i thought
i'd take a shot at this:
Is there a future for game modding as far as Valve games are concerned?
I'm referring specifically to making entire mods, not making maps or models.
When the HL1 25th anniversary updates released we could see there were
hidden branches for other GoldSource engine games that ultimately
weren't released. Those branches are now completely hidden due to
changes in how Steam handles them.
Some changes like the enabling of asserts have made HL1 modding even
more confusing than before since it now adds more errors that people
can't make sense of.
There are a lot of bugs that could be fixed, some of the changes made in
the anniversary update were also imposed on other games (like the weapon
bobbing change) which isn't what anybody was asking for.
Valve employees have mentioned open sourcing before and we got a
response from an employee on the Half-Life issue tracker that they would
look into it way back in 2019:
https://github.com/ValveSoftware/halflife/issues/2112#issuecomment-482718243
Nothing ever came of that.
Based on how and when Valve does communicate we will never get a
response if it's negative, so it's safe to assume that somewhere along
the line there is a roadblock or someone who does not want the engine
open sourced.
While it would be nice to have that happen, i don't expect it will.
Conversely, it would be nice to get a definitive "no" so we can tell
everyone to stop wasting their time on a dead game, but i doubt that's
going to happen.
Instead, i'd like to point out another option. Steam is missing a
developer feature that would make it easier to manage different versions
of a game. Users can only install one version of a game at a time and
have to switch branches to play another version, which requires users to
(re-)download changed files.
There is a recently added API that lets developers switch branches on
behalf of the user but that still involves changes the single copy of
the game.
A couple examples:
1. HL1 legacy and anniversary versions (made worse because all
GoldSource games use the engine binaries from HL1 so switching
branches for that game doesn't change the engine)
2. CSGO and CS2
3. ARMA 3 current, previous and dev versions
(https://community.bistudio.com/wiki/Arma_3:_Steam_Branches)
Unity for instance lets you switch engine versions through the hub. If
someone were to distribute a developer tool like an engine or level
editor through Steam and there are different versions then you'd have to
re-download the version you want to use when switching.
Why do i bring this up? To justify having Valve work on making a new
version of GoldSource. Steam could use a feature like this. And when
developing such a feature you could develop a new version of GoldSource
to test it.
You can make a new engine branch that strips out anything that's
non-functional or obsolete (some engine functions do nothing, VGUI1 can
be replaced with VGUI2), HLTV is pretty much useless (HL has a handful
of empty servers with it enabled, CS servers are apparently glitched and
refreshing the server in the browser changes the title so it's probably
broken), GameUI can be moved to the client dll, the save game system can
be moved so modders have full control over what gets saved and how, and
anything game-specific can be moved into the SDK (physics, entity
networking, loads of stuff).
This new engine branch can have its own version of the SDK, a new Hammer
build that's compatible with today's operating systems (it would be
better if it were open source so we can fix it and make it better!), a
decent renderer that uses modern hardware properly and properly supports
custom graphics code (i'm talking shaders, buffers, post-processing
effects, all that stuff), with higher limits, and so on and so forth.
You can eliminate problems like TGA files needing a specific origin
setting to load properly, allow full-color images everywhere instead of
256 color images and streamline a lot of stuff.
Valve games can have new versions made that use the new engine in a
self-contained manner. You could install the version of CS 1.6 based on
this engine branch and it would have its own set of engine binaries that
are affected by neither HL1 nor the engine branch that mods are based
on. You can fix games without breaking other games and without breaking
mods.
You can also make community-made projects obsolete if you tackle the
problems they were created to deal with.
This would also allow VAC to be turned on again (it seems to be turned
off for GoldSource engine games, probably due to mods using extra dlls,
so you shouldn't enable it there) and made stricter than before without
breaking mods that run on the current engine.
There would need to be a way to have server plugins work with VAC thrown
in the mix which means you'll have to work with the community to design
a good way to integrate that and provide functionality that modders need
and currently implement by way of hooking into the engine.
So you'd have a new version for every GoldSource engine game (HL1, CS,
TFC and so on) plus a separate engine that mods run on (like Source SDK
Base apps), with the first version being a clone of HL1 and subsequent
updates bringing in updated versions of the engine. Instead of having to
make a new app for every major update you have one app with different
versions that can be installed side by side. Obviously you'd need a way
to locate the right version so mods can locate assets and launch with
the right engine (and automatically have Steam download it if you try to
launch a mod that uses a non-installed version). Ideally mods would be
installed outside the engine installation (like Source mods) because
that's caused enough problems with overwriting files and mods stomping
on each-other's third party dlls (like FMOD).
Building tools to let developers work better using Steam is something
that Valve does very well, using it to motivate developing new versions
of these old games is a bonus.
I realize i'm probably screaming into the void, but i thought i'd give
folks over at Valve a good reason to work on these games.
I've spent enough time trying to help people, watching them try to make
games on this engine knowing what they want to do can't be done without
some serious hacks, all the way up to basically building a new engine.
If open sourcing is not an option then this is the best way i can think
of to help them.
I've only mentioned GoldSource engine games but you can do this for
Source games as well, though that would be a lot more work. Source
recently got updates so maybe it doesn't need more attention, i'd ask
Source modders for feedback on that.
Now, i've already mentioned this above but i'll say it again. If you
won't provide support, you can at least tell us so nobody wastes their
time trying to figure out a way forward in a dead end.
People just want to be creative with these games but the tech is so old
it belongs in a museum. People aren't porting CS 1.6 to Source to break
the law or violate licenses, they want a version of the game that runs
on an engine that can make proper use of even 15 year old hardware and
has limits to match.
If you won't provide them with a solution they'll go work on one
themselves, and then you end up having to shut them down after years of
work. Nobody wins in a situation like that.
You can solve a bunch of problems here and build a framework that makes
fixing these games in the future a lot easier. Surely there must be
value in that. If not, then at least we tried to make this happen. But
if any future attempts are a waste of time, you ought to tell us.
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
https://list.valvesoftware.com/