Make It A Trend Part 1: Valve Releases ‘Team Fortress 2’ Source Code
from the preserve-it-all dept
One of the more frustrating aspects of any conversation we have around the preservation of video games, something that is simply not being done for the most part today for the vast majority of titles created, is how easy and simple the ultimate fix is. It isn’t a secret. It’s not an arduous process. It doesn’t require any hoop-jumping for publishers and developers. You just release the source code for games once they’re past their primary sales window and let the public preserve it, and even build on it, from there.
Doing so would accomplish a number of good things. First, it would both free the publishers from the burden of having to preserve this artform themselves while also unleashing an army within the public that are willing to do that work. The bargain that is copyright protection would be preserved, if not achieved with higher velocity, and then people like myself and the folks behind the Video Game History Foundation and Good Old Games (GOG) can finally stop our bitching about how our cultural output is disappearing. Secondly, if these developers and publishers were really smart, they would use the elongated interest timeline in these games that would result from all of this to sell other, tangible things surrounding these games, like figurines, merchandise, and other items. Not to mention driving interest in newer, updated titles within these same franchises.
So if this is all honey and roses, why have such source code releases been so sparse? Several reasons, likely. Some of it, believe it or not, is purely a combination of vanity and insecurity around the code itself. Lots of folks don’t actually want to throw open the factory doors and allow the entire world to inspect precisely how the sausage is made, so to speak. Criticism of code is as ubiquitous as the untidy writing of the code itself. And, of course, there are the big player developers and publishers out there that bow to the altar of intellectual property, instinctually gravitating towards protectionism out of fears they probably couldn’t even articulate if asked to.
Fortunately, we’re now finally starting to see some shifts in the thinking from some big players. First to discuss is Valve, which recently released the source code for Team Fortress 2, both for the client and server code. And while the license under which the code was released doesn’t allow for commercial projects, it does allow for anyone who wants to play with the code to publish what they create on Steam.
Valve’s updates to its classic games evoke Hemingway’s two kinds of going bankrupt: gradually, then suddenly. Nothing is heard, little is seen, and then, one day, Half-Life 2: Deathmatch, Day of Defeat, and other Source-engine-based games get a bevy of modern upgrades. Now, the entirety of Team Fortress 2 (TF2) client and server game code, a boon for modders and fixers, is also being released.
That source code allows for more ambitious projects than have been possible thus far, Valve wrote in a blog post. “Unlike the Steam Workshop or local content mods, this SDK gives mod makers the ability to change, extend, or rewrite TF2, making anything from small tweaks to complete conversions possible.” The SDK license restricts any resulting projects to “a non-commercial basis,” but they can be published on Steam’s store as their own entities.
The timing here is somewhere between slightly late and just about right, honestly. TF2 was released in 2007, nearly twenty years ago, and has had an active player-base for a long, long time. The game’s community had something of an uproar a couple years back, mostly around the prevalence of cheating going on in the game, but that seems to have died down somewhat. Opening the code up to the public might actually help with cheating issues in the game, as well. After all, you’ve now got an entire world’s worth of people who can alter or re-develop portions of the game and code to stave off cheating.
But the most important part of this is both that the game is now able to be preserved by a public that has full access to its underlying code and that interest in the game can be extended by that same public being able to build off the code and create new, interesting content. Valve, meanwhile, gets to have that content listed on its platform, while also retaining interest in the Half-Life series that is at the heart of all of this.
All by relinquishing control. Imagine that.
Filed Under: archives, old video games, source code, steam, team fortress 2, video game preservation, video games
Companies: valve
Techdirt is off for the holidays! We'll be back soon, and until then don't forget to 



Comments on “Make It A Trend Part 1: Valve Releases ‘Team Fortress 2’ Source Code”
Reminds me a bit of what Id did with Doom back in the day.
And that was of course a big reason to why both the game and the engine is still around today and has stuff made on it.
That was the feeling I got when idsoftware released the DooM source code. On one hand, the game gets refurbished at player’s expense (of time), and idsoftware gets to see how everybody else sees the game.
Re:
Unlike Valve, they released it under an actual free software license, which is why it’s so ubiquitous. They didn’t release the whole game freely; just the engine, which is what people really wanted anyway. They continued to do this with all their engines, within 7 years of commercial release, until John Carmack stopped working there (Doom 3 being the last).
…Which is to say that Carmack made it a trend in more ways than one, but it took about 30 years to catch on among other game companies.
EA, of all people, actually did one better just before this—a whole bunch of the Command & Conquer series, up to Generals, got GPL’d.
Re:
We need a “use it or lose it” law in the US. If a company will not make available or maintain a piece of IP, or enters into the public domain. A public repository stocks and maintains digital assets for anyone to download and use, forever.
I mean, it’s a pipe dream, but one that would make the world immeasurably better
Re: Re:
unfortunately that wouldn’t really help with the “lack of source code” issue.
reverse engineering of binaries is almost always possible, but it is a HUGE barrier to entry. One that is not present at all if you simply have the source (in any common language…. source code in a proprietary language for which you have no docs is as good as no source.).
Re: Re: Re:
That’s not true at all. I worked at a company with its own progarmming language. Any decent programmer would’ve been able to figure it out, a lot more easily than reverse-engineering binaries. (Just as they can generally read various pseudocode styles without specific explanations.)
Re: Re: Re:2
reading enough to get a vague idea what the code does is NOT helpful. I can often do that from a raw disassembly.
Without a compiler you will basically have to rewrite the entire project anyhow. And the devil is in the details. without detailed docs of how stuff works, spotting security vulnerabilities, or any of the dozens of other things you might want to do is basically impossible.
Furthermore, in the context of this post, that is: about preservation, being able to only “vaguely” read the code… helps you not at all in ever running it again.
Re: Re: Re:3
The disassembly won’t have comments or variable names, and probably won’t have function names. The source will. Although maybe you’re a better reverse-engineer than I.
Or write a compiler or interpreter, as people did with Z-machine and SCUMM. Thus making leaked game source useful (in the case of Infocom, before the original Z-machine code was public).
It won’t be much more “vague” than most other languages. You think anyone reading a complex C++ or Python code base fully understands all of it? People tend to skim over the boilerplate stuff, going deeper only if something goes wrong. Provided we’re not talking about something like Brainfuck, people should be able to get a very good and precise understanding of what matters.
Re: Re: Re:
If copyright is to be allowed on software at all, registration should be required, and deposit of source code should be a condition of that. Although, personally, I’m an all-around copyright abolitionist.
We could say the same for the graphics models used in games, films, and so on, as well as any other “source” for anything to be copyrighted.
Re: Re:
Additionally: Any finished work that is written off for tax breaks (lookin’ at you, Warner Bros.) should enter the public domain immediately.
Re: Re: Re:
Seconded.
Re: Re:
We have this already. It’s called Copyright Law and it’s for a LiMiTeD dUrAtIoN :^^^)
Re:
You may have seen in the headline that this was a “Part 1” 🙂
Awesome news
Awesome news, this means that geeks could pick up development and fork the game? 😀
There was a pushback recently about spammer bots in TF2, that tied in with cheating as well.
Assets
One complexity is that the publishers may not own unencumbered licenses to content that they licensed in order to sell the game. Engine plugins, audio and video assets, and necessary platform libraries may well be impossible to legally open source for very sensible reasons (the people who actually made the stuff in question still own it, not the game publisher).
Of course that’s not an excuse for not releasing the code they can release, but unpicking what is and is not open-source-able can be a nontrivial piece of technical work with nasty legal consequences for any mistakes.
(mpow runs into this regularly trying to open-source tools and then discovering legal encumbrances in one version of one resolution of one mesh of one sub-component of one device…)
Some sort of safe harbor rule might help? But ultimately this is a software supply chain issue and software supply chain tracking is really only in its infancy today, much less the decades ago of many of these games.
In 2002, Volition released the source code for FreeSpace 2, only three years after the game was released. Further development by the community has been continuous ever since, both on improving the game engine and making improved assets and new standalone games using the same engine. I’ve been a member of that community since at least 2008 and I’ve always been amazed at what a gaming community can do with access to the source code.