That normally happens when companies no longer have financial ownership over the assets and code, or during financial trouble or merging with another company, or the game is put in the public domain by its owner.
Unity, Unreal and CryEngine all have an open source with restrictions repository that allows you to view some or all of the engine code in order to track down bugs, optimize code, etc, and perhaps more depending on the specific license.
Meanwhile Valve doesn't want to open source a 20 year old engine based on an engine that was open sourced a year after Half-Life was released, that was superseded by another engine that was open sourced 3 years after Half-Life's release, that was in turn superseded by yet another engine that was open sourced 7 years after Half-Life's release(and one year after Half-Life 2's release), that was then superseded by yet another engine 13 years after Half-Life's release (7 years after Half-Life 2), and the game that runs on it was released about 3 months before Half-Life 2.
The engine that superseded that one is Id Tech 5, which isn't open source because ZeniMax owns Id Software now and won't allow it. Carmack intended for it to be open sourced like all previous engines.
Gabe Newell talked about open sourcing the engine in an interview years ago:
GLENN @ 24:58: The next question we had was about the Gold-Source Engine and if it will ever be released as an open source license.
GABE @ 25:07: Probably not, any time those engines get released the hacker community seems to get ahead of the game in terms of destroying the community that’s actually trying to play the game. So we’ve tended to steer away from that--- It's certainly an option, we shouldn't say there is anything keeping us from doing it. John has made it really easy for us to release the Gold-Source engine if we want to, but we’re more worried about the history. And to be honest we haven't thought about it and I bet if we sat down and said “So how can do we do this without destroying these existing player communities?" we probably could. We’d just rather continue not talking about Half-Life 2: Episode Three more than not finish open sourcing Gold-Source.
I assumed "John" was a Valve employee but i'm pretty sure he's referring to John Carmack (creator of Quake 1/2/3/4, Doom engines), referencing the open sourcing of the engine making it easier to do the same.
What he said about destroying communities is completely wrong. Valve is destroying the community by not releasing the source code, and refusing to fix anything that isn't considered critical (exploits like remote code execution, crashing clients and servers remotely, etc).
It's already possible to recreate the entire engine through reverse engineering (see ReHLDS) to the point that any exploits that exist can be found by anyone with malicious intent. Hackers can find and use exploits without being caught because nobody's looking at the original code and fixing it, and most reports are ignored anyway.
The quality of the code is too low to easily fix things anyway, a large scale rewrite would take a small team months to do, assuming no need to check for backwards compatibility with mods and only official games.
I'd love to know the real reason why they won't release it, but they won't even be honest with us about that. The good thing is that Valve isn't paying attention at all so they won't care if people do things like ReHLDS, Xash or SharpLife.
If you look at Valve's history making games you can kinda see the signs were always there. They made one game (Half-Life), then licensed the IP to Gearbox for Opposing Force, Blue Shift and Decay. Counter-Strike, Day Of Defeat and Team Fortress Classic were either made by modders or made by modders hired by Valve in TFC's case. Valve only made Ricochet which is barely a game and Deathmatch Classic, which is a port of Quake to the GoldSource engine.
As far as actual games go Condition Zero was again licensed out and passed from developer to developer (and ended up basically being 2 games), they only made Half-Life 2 and then CSS and DoDS, but those aren't original games. They've always been dependent on modders to do a lot of the work, creating new IPs and doing the grunt work of establishing gameplay and art direction.
CSGO, Dota 2, TF2 are all sequels or mods made into games, Portal is an adaptation of a game made by gamedev students. Episode 1 and 2 are the only real games they made, and they barely managed to finish those. Episode 3 as we all know is stuck in development hell.
Portal 2's the last single-player game and that is again a sequel.
And finally, Artifact is based off of Dota 2 and its failure just serves to highlight Valve's inability to understand what makes a game good, i'm sure they're paying attention to feedback so they can learn how to make the game good enough to keep a solid playerbase going. It may already be too late though.
And let's not forget their failure to keep their tools working, Source 2 still not being finished and available for modding, the Source SDK breaking and being replaced with different versions, and so on and so forth.
It's always up to the community to fix their stuff, and we do it for free. At least we can be bothered to open source our work.
So you're essentially saying Valve was never good, right?
Isn't that what people have been doing for years?
At this point you're better off ignoring Valve entirely and just doing it yourself.
If so, then I'd like to see Valve murdered in the most painful way possible, consequences be damned.
Valve isn't going out of business until Steam is either taken away from them or shut down.
I can't speak for GoldSrc, but for Source, it's because of middleware issues
I lost the count of times where modders showed to Valve again and again that Havok and Miles can be replaced, yet they didn't care. They literally had not to work, just leave a selected community team in charge while being surpervised.
As far as I can glean, that's only really Havok/ipion, Miles, and Bink.
Miles could probably be replaced whole hog, since the MP3 license pool has expired (despite their claims), and Valve even has their own Steam Audio middleware now.
Bink can similarly be replaced, since it's really only used in the beginning loading logo, and backgrounds for games after LD4. Just ship with a shared FFMPEG lib.
Havok is the real issue, though again Valve have their own physics engine they could merge into Source.
Or release the code with all of the licensed code removed. Jedi Knight 2 and Jedi Academy were open sourced and subsequently taken down because it contained licensed code, so the code was put up again with the licensed code removed: Just Like That, Jedi Knight Code Has Been Removed From SourceFor..
All that Valve needs to do is assign one programmer to make a copy or branch, remove the licensed code and leave comments indicating what was removed (e.g. "these functions used Miles to play mp3 files"), then release it.
It doesn't matter if it doesn't work at first. It doesn't even matter if it won't compile. As long as they release it, and permit us to create standalone open source engine builds that can be put on Steam (meaning it retains Steamworks integration and can remain open source, which the Steamworks license has issues with depending on which open source license is used) it should be fine.
The problem with the Steamworks license is that it isn't compatible with copyleft licenses, such as the GPL which Quake 1 is licensed under. Valve would have to license GoldSource under a license that is both compatible with Quake 1's license and their own Steamworks license. Given that they own Steam and all that they could probably make an exception, but i don't know if they can legally do that.
The linked article does explicitly state that it is possible to grant exceptions, so Valve would have to grant an exception to Valve to allow all mods produced using the open sourced engine to use Steamworks if the mod were added to Steam (which is a matter of paying $100 according to the documentation, although it covers games and not mods).
It's worth noting that Steamworks itself can be downloaded by anyone with a Steam account, and libraries exist that provide bindings to other languages, like this library made by Facepunch itself to provide C# bindings: GitHub
The headers are even in the Source SDK: source
I assume the reason for the incompatibility is to prevent cheaters from being able to easily modify the engine and then abusing the Steamworks integration to perform actions using Steam's more sensitive APIs, but it's well known that the sample Steamworks game called SpaceWar can be abused to play games with it.
The problem with this is that it doesn't account for games that offer a way to load native code, like GoldSource and Source do (mods, MetaMod, SourceMod). This can let you hook into Steamworks and - when using some more advanced code techniques (read: modifying code at runtime) - replace the original code that deals with Steamworks to modify game behavior and abuse the API in the same way.
ReHLDS for instance acquires the Steamworks API functions and accesses them to replicate the original engine.
VAC should be able to detect this and ban cheaters like always, so it would only affect insecure servers, but that kind of access can be used to potentially steal information if the API provides it. If you can trick people into using your custom engine build it would let you siphon data from them as much as you want. This is of course ignoring the fact that Source mods have Steamworks access and could do just that anyway, so if you make a popular closed source mod you could access all of the Steamworks APIs that are enabled for Source mods.
One example of how the API could be abused would be to monitor a particular friend's online state to notify you if they set themselves as online, busy, etc.
If this is a concern they could always restrict API access for open source games to prevent this. I'm not sure if APIs essential to the making of a multiplayer game could be abused, but it would reduce the attack surface at least.
If they were to open source it it would take only a few weeks at the most before fully functional forks would be available. At that point all the bugs that have been reported can be fixed, all the improvements added to Xash and ReHLDS can be applied and we can stop talking about what could be done and we can start talking about what will be done.
In order to design a replacement, it has to be drop in, and due to how middleware works by definition, a drop-in replacement for a middleware in one engine is a drop in replacement in every engine, which is a violation of copyright law. I'm not saying that as if that makes it fair. Copyright law is inherently unfairly written.
Source Havok is considerably modified, there's even references to ipion in the codebase still. Any alternative physics for Source wouldn't drop in to just any engine, or even branch of Source.
As for copyright law, assuming the rest of the engine was open source (aka you're not mixing incompatible licencing) then then it's a non-issue.
There's already an unfinished VPhysics replacement using Bullet: GitHub
I'm not saying you're wrong. In fact, the fact that you're right is what makes it so dumb.
Shame the bullet implementation is dead
Something I never liked about HL games is that "Hard" doesn't increase the amount of enemies.
That was hands down my favorite perk of the old shooters. Hard didn't mess with stats but instead put a ton more shit to kill.
Only reason to run HL1 on hard is to have cloaked fassns.
The amount of visual feedback from mowing down masses of enemies is so much more better than spraying an entire magazine into a single spongey enemy.
It would also be great if enemies did special actions more as the difficulty went up, such as throwing grenades, coordinating pushes, or firing AR2-altfire more often.
I've posted about it many time before, but basically Halo is the gold-standard on the difficulty front.
Agreed.
It also doesn´t really amp the difficulty up all that much. I die way more often when there are more weak enemies and I miss one than when every enemy is a damage sponge. The only thing it accomplishes is making battles more tedious.
the thing with Halo is that playing on Legendary forces you to consider the whole sandbox. On lower difficulties, you can pick up pretty much any weapon and finish the level with it. If you really wanted to you could play with just Needlers. Once you get to Legendary, you need to consider each weapon, how well it works against shielded/unshielded/Flood/Sentinel enemies, and the range you're shooting them from. Plasma weapons work great against shielded Brutes in H3, but once the shield's gone you're better off using a close range or precision weapon. You can't kill certain Grunt ranks with single headshots in Reach, so consider grenades or explosives to take out packs of them. You can't snipe or headshot Flood at all, so consider using close range or plasma weapons.
In Halo Legendary, you are required to use the sandbox to its fullest extent to get the job done, and I wish more games made you think like that. In HL games, you can blow through entire chapters with just the SMG or shotgun.
The sniper jackals in Halo 2 on legendary were the fucking worst oh my god
Since you guys were discussing getting source code of GoldSrc and Source, I'd like to remind you that Xash3D still exists. It's not perfect, but at least it's open source.
doesn't mean it's legal at all.
And it's illegal to use due to both using reverse engineered GoldSrc code (against Valve's ToS) and using bits and pieces of the 2003 Source leak (mainly related to the save/restore functions).
Valve doesn't really enforce it, but it means you sure as shit can't get it onto Steam and they are in their legal rights to strike you down if you really get on their nerves with it.
Reverse engineering is more a legal grey area, but it uses chunks of stolen Source engine code (as stated.) Additionally, combining the Source engine code and the HL SDK code with idTech is a violation of the GPL license it carries.
I talked with her a lot back then. I remember she showed me that metrocop model and I was like "alright you gotta release that at least" cuz she was content with just posting pictures.
I explained that I've been in the hl2 beta community for many many years and photos dont sate anyone unfortunately. I nudged her to release a few inconsequential things here and there, the elite metrcop being one of them. I was very selective when I told her "hey you should release that!" cuz there's a lot of stuff she had that could land someone in a lot of legal trouble if it was made public. which kinda happened (against my protesting ) among other things
I have no clue how she got any of the content she did. While she was a lot more open with me than she was with other people afaik, she told everyone conflicting stories about where her stuff came from. Its was an utterly bizarre situation and I totally get (and pretty much agree with) the community's current dislike/distrust of her.
Why not just clean-room reverse-engineer the offending code like ReactOS is doing?
because people are lazy, I guess. It wouldn't be too hard to make a GPL version of a GoldSource compatible engine if you combine Quake 1 and Quake 2 and reverse engineer the rest. (All formats are known on how they function, even how the binaries load into the engine.)
However, in order to make it so people can develop upon the engine "legally," you'd need to re-write the game logic, which honestly, probably wouldn't even be that hard. Though, going to those lengths, you might as well just make a game on something like FTE QW.
I'm sure that's what Solokiller is more or less doing with his SharpLife.
SharpLife can still use SDK code (which includes game logic) because it's still a mod. It stills falls under the SDK license.
Speaking of which, it was about time i reported this: [Legal issue] LICENSE file not updated to refer to Half
I dont get the hate.
So she released a bunch of leaked models and stuff but lied about how she got it? What's the big deal?
Sorry, you need to Log In to post a reply to this thread.