top | item 43094260

Valve releases Team Fortress 2 code

1863 points| davikr | 1 year ago |github.com | reply

387 comments

order
[+] jsheard|1 year ago|reply
This is good for modding but don't be misled, this is the TF2-specific code which sits on top of the still-closed-source Source engine. For example you couldn't port TF2 to a new platform with this, at least not without reimplementing Source or wrangling it into working with one of the leaked Source codebases and dealing with the legal fallout of that.
[+] klaussilveira|1 year ago|reply
Hard to understand their stance on keeping Source closed. It is not an exciting engine to work with in any way. There are at least 3 major open source alternatives today, way more powerful and easier to work with (O3DE, Godot, Wicked). Only people that have been involved with Source in the past decades would enjoy working with it.

The community around the engine is vibrant and well-versed in the caveats of the Source workflow. With a GPL release, just like Carmack did with id tech, the amount of creative projects from indies would sky rocket. No longer bound by obscure deals.

[+] progbits|1 year ago|reply
Given the leaks, the fact it's been over 10 years since last major game released using Source 1, and the fact most of the rendering code (probably the most valuable bits, aside from physics) in Source2 must have been rewritten given the new developments in game graphics; makes me wonder if there is any reason for them to keep it closed source.

Do you think they will release it at any point? Maybe there are licensing issues where they don't have the rights to all of it and couldn't easily opensource it. Or maybe there is in fact still too much secret sauce left there?

[+] chedabob|1 year ago|reply
Damn, was hoping this would bring TF2 back to Mac. Haven't had a good LAN party in the office since Apple dropped 32-bit support.
[+] johnnyanmac|1 year ago|reply
I'm still a bit confused on why Source is close sourced when Valve moved on to Source 2 over a decade ago. I suppose it'd becsuse there's some basic overlap, but they still also feel comfortable releasing their gsmes' source?
[+] lnauta|1 year ago|reply
I'm still not quite sure how to take this, does this mean that:

We can not fix problematic netcode (this is a running joke in the TF2 comminity)

We can fix game balance issues (that could also be fixed through configs)?

[+] chamomeal|1 year ago|reply
I didn’t realize source wasn’t open source. Aren’t titanfall and apex legends made with a modified source engine? I guess respawn licenses it from valve?
[+] thetoon|1 year ago|reply
Maybe that's where a project like Nuclide could step in? I'm always a bit confused between their projects' names, but I've read somewhere they had progress on the HL2 front.
[+] Imustaskforhelp|1 year ago|reply
can we not create a legal open source "source emulator".

I am asking this from a total legal standpoint.

[+] xyst|1 year ago|reply
Source engine is so outdated at this point anyways. Valve should use the profits from their cash cow, CSGO, and use it to invest in retooling with open source engines such as GoDot or Bevy.

I remember downloading a leaked version of the source code for source engine, and in general it was laughable at how awful it was. I dont know if it was ever discussed mainstream but only based on recollection of IRC chats.

I think it was about 6 months out of date, but even so it would explain why HL sequels would become vaporware despite years of teasing the community by Gabe Newell himself.

[+] sevenf0ur|1 year ago|reply
As someone who used mod TF2 on the server side, this is fantastic. I've spent countless hours analyzing the binaries in IDA and now you can just open github. This will definitely accelerate new features and bugfixes from the community.

It's about damn time, really. The TF2 source code has already leaked twice. And a group even made a cloned version of the game in an earlier version of the engine. The community support this game still has is massive.

[+] Lammy|1 year ago|reply
I hope this is good news for TF2 Classic.

edit: here's the announcement from the TF2C Discord:

==============

@everyone We'll have more to say later, but you might not be able to launch TF2 Classic for a little bit due to the massive SDK update and public release of Team Fortress 2's code.

We're already preparing for the porting efforts and a potential Steam release now that we've been legally enabled to pursue that, but in the meantime, you will have to shift Source SDK Base 2013 Multiplayer to the "previous2021" beta branch that still has the previous revision of the SDK files to continue playing. See the screenshot for an example.

Thank you, and we'll have more news soon!

[+] __turbobrew__|1 year ago|reply
Given they call out derivative works of the original games being ok, and those works can be released as new games on steam seems to clear the way for TF2 Classic.
[+] beeflet|1 year ago|reply
Woah... woah WOAH I wasn't expecting to see this on HN. I've been expecting this for a long time, and if I was valve I would have done something like this a long time ago: release a "final" celebratory content update, port the game to vulkan, and open source the codebase (keeping the item servers and whatnot tied to valve's servers). I don't know if this is the beginning of the end or the end of the beginning of TF2. There have been leaks before but this is huge news.
[+] foxandmouse|1 year ago|reply
The fact that they did this before bothering to recompile it for 64-bit Mac says a lot—Valve clearly doesn’t see Apple as a friendly place to do business. Makes sense, with Apple trying to lock game devs into the App Store.
[+] jeroenhd|1 year ago|reply
Writing games for Mac seems like a great challenge. You have a relatively non-standard CPU architecture with a proprietary graphics API for a small set of devices, many of which embed screens with ridiculously high resolutions while coupled to a GPU that's "good enough" at best. Apple proudly announced the mid-tier Tomb Raider 2 graphics, which doesn't promise much for game devs that don't have support from Apple's promotional campaign. All of that, on a platform that's smaller than Linux based on player count.

Unless you know for sure that you're going to get a decent player base, I don't think optimising for Mac makes much business sense for games companies. Users that can afford a Mac can probably also afford a console anyway.

You can trick games into running by using the same wrappers and workarounds that you'd use to game on Linux (except you need to optimise the wrappers yourself because they're less mature) but gaming on Linux already has plenty of DRM/anti-cheat incompatibility issues, and using less mature tools will only make that worse. And, of course, Apple doesn't care much about backwards compatibility; they've killed 32 bit for no apparent reason other than "we don't want to maintain compatibility" and who knows how long they'll maintain the current set of replacement APIs. Linux suffers from similar issues, and that's why the go-to method of playing games on Linux is to run them in an emulated Windows environment.

I think games companies will recompile games for Snapdragon before they'll bother with Mac. By the time they got all their 32 bit x86 libraries to work on ARM without emulation, Apple has probably switched around a couple of APIs and requirements anyways, so why bother.

[+] ender341341|1 year ago|reply
from various interviews I've seen of folks in the games industry apple has historically been actively hostile to working with game companies, it seems to have softened with the iphone appstore.

People make fun of "devs devs devs" from Balmer but he was heavily right, Microsoft spent a ton to court developers and they got a monopoly on PC gaming as a result.

[+] dundarious|1 year ago|reply
From TFA:

> As [1]announced on the official TF2 website

[1] https://www.teamfortress.com/post.php?id=238809 states:

> We're also doing a big update to all our multiplayer back-catalogue Source engine titles (TF2, DoD:S, HL2:DM, CS:S, and HLDM:S), adding 64-bit binary support, a scalable HUD/UI, prediction fixes, and a lot of other improvements!

So that seems to be coming, at least in the sense of x86-64 which Apple Silicon supports better via Rosetta 2.

[+] bearjaws|1 year ago|reply
Mac accounts for 1.4% of users, which is 25% less than Linux...

That is actually more than I thought, but its clear without compatible games there is very little reason to install Steam.

Also, Apple only recently started to be more gaming friendly, so it's really not surprising they would try to port a 20 year old game.

[+] doublerabbit|1 year ago|reply
There was a video explaining to why Valve games were never ported to the Macintosh.

I can't find it. But essentially it was Apple not wanting their machines to be used for gaming. And so axed all the work of the port and refused to publish the game.

The best I can find is from 2007 from Gabe:

> We have this pattern with Apple, where we meet with them, people there go "wow, gaming is incredibly important, we should do something with gaming". And then we'll say, "OK, here are three things you could do to make that better", and then they say OK, and then we never see them again. The cycle then repeats itself when a new group of people replace the old ones at Apple.

[+] RockRobotRock|1 year ago|reply
You're over-analyzing it. TF2 is 17 years old, and basically has a skeleton crew keeping it running. They simply decided it's not worth the effort. I'm mad about it too, but hard to blame them.
[+] Vilian|1 year ago|reply
Mac don't support vulkan nor opengl, so it didn't recompiled to mac
[+] heliophobicdude|1 year ago|reply
Do you still also need to compile a mac build on a Mac?
[+] mentos|1 year ago|reply
I always wonder if Apples disdain for games is a relic from Steve Jobs time at Atari.
[+] LorenDB|1 year ago|reply
Valve just keeps on winning.

I fear the day that Gaben dies/resigns. Hopefully Valve finds a worthy successor, but it's not unheard of for a company to lose its way after the original generation is gone.

[+] James_K|1 year ago|reply
I wonder if they'll start accepting pull requests. There are a lot of bugs I'd like to see fixing in the game. I've been annoyed by the Medigun beam not lining up with the model for about ten years by this point.
[+] Corrado|1 year ago|reply
I wonder how this will affect the MegaCheatersDB (https://mcdb.neocities.org/) and the MegaAntiCheat system (https://github.com/oenu/MegaAntiCheat). Those projects are doing what they can to track down and label TF2 cheaters. I hope this helps them out.

On the flip side, does this SDK actually help bot makers? That would be unfortunate indeed.

[+] pavo-etc|1 year ago|reply
Open PRs from 2013, makes me feel better
[+] koakuma-chan|1 year ago|reply
Valve be like:

Initial commit

+1153568 -222431 lines changed

[+] SXX|1 year ago|reply
I feel like under every news regarding Valve, Steam or their games people tend to find some crazy conspiracies on why Valve did that or didn't do this. When actual truth is that Valve is ~400 people company plus some contractor artists making items for CSGO / Dota / etc.

Valve is not 40,000+ company, not even 4,000+. 400 people. That's it.

[+] nomilk|1 year ago|reply
Never played the game, don't intend to, but huge respect to Valve for releasing the code! I wish more games studios would do this!
[+] burgerquizz|1 year ago|reply
anyone would have recommendations on a lightweight physics engine in javascript? building my own js game now and having a hard time with movements and collisions. i would like to avoid importing a whole game engine library if possible.
[+] teaearlgraycold|1 year ago|reply
Should I not be surprised that TF2 on its own, without the game engine's source code, is >1,000,000 LOC? That seems crazy to me. The full diff doesn't load on GitHub. Perhaps a lot of this is auto-generated.
[+] wiseowise|1 year ago|reply
So that’s why they didn’t challenge TF2C this time, it’s all coming together.
[+] declan_roberts|1 year ago|reply
This is great. If someone wouldn't mind updating the instructions for a native 2025 ARM64 build of HL2 that would be great.

Existing instructions use the old, leaked source engine. Time to make it official and native.

[+] Jotalea|1 year ago|reply
A HL2 ARM64 Linux build would eventually lead to a native release for Android, or am I wrong?
[+] Scuds|1 year ago|reply
I'm kind of surprised that after all these years TF2 and Source are still separate entities. Like, is there any TF2-only code in Source that only runs if TF2 is the current mod?