Oh My God, Source 2 Is Actually Real – And A Sneak Peek At The New Hammer Editor?

News & Rumors Source

UPDATE 3: Facepunch member J*Rod has created an insightful and very informative explanation of how Source 2 might work, based on what we’ve seen in the leaked code. If you can’t read code (or as I like to call it, hieroglyphs), then this is your lucky day.

UPDATE 2: LambdaGen fan 3rrorVirus has made this hilarious little video about this whole Source 2 debacle – check it out!

UPDATE: Facepunch member DevinWatson has compiled a full list of just about every single Source 2 reference in the SFM files. Take a look!

Yeah, it gets better. Waaay better.

Oh My God, Source 2 Is Actually Real – And A Sneak Peek At The New Hammer Editor?

Only half a day after suspicious references to HL2: EP3 and “Source 2” were found inside the Source Filmmaker code, more evidence pointing towards the existence of a new next-gen game engine being developed by Valve, has been found in the SFM code.

This discovery comes to us via our brothers in arms over at ValveTime, who by looking through the file: “SourceFilmmaker/game/sdktools/python/global/lib/site-packages/vproj/vproj.py“, found a number of rather shocking new references to the aforementioned Source 2 (you can find a full pastebin of the file’s contents here).

They seem to now firmly solidify this hypothesis. In fact, I’d say the only thing we need at this point is a press release from Valve, because judging from this new code, the existence of Source 2… is clear as day.

I’m going to read off… well, just about all of the code segments, so as to provide the fullest amount of context (I’ve also left them in their original format, which means you’ll need to scroll left and right to read everything in there). Parts of great interest will be outlined in bold. To any programmers reading this: this is gonna be your lucky day.

Starting from line 1053:

def getDefaultToolsDir( self, engine=None ):
		Try to determine the default tools path.
			if not engine:
				engine = self.getEngine()
			if  ( engine in ( ENGINE.SOURCE2, ENGINE.HYBRID, ENGINE.SFM ) ):
				return Path( self.getGame() + r'sdktools' )
				# First try using location of vproj
				exeTools = Path( sys.executable ).up( 2 ) + 'tools'
				if os.path.exists( exeTools ):
					return Path( exeTools )

Starting from line 1385:

def getEngine( self ):
		Return an str with the current engine version.
		If key doesn't doesn't exist, assume 'Source', otherwise invalid -- assume next-gen 'Source 2'.
			eng = unicode( self.getChunk().Engine.value )
			if eng not in ENGINE.ALL_ENGINES:
				return ENGINE.SOURCE2
			return eng
		except ( AttributeError, ValueError ):
				# HACK: check vproject for 'source2' or 'hybrid' and guess the engine.
				projDir = str.lower( self.getProjectDir() )
				if 'source2' in projDir:
					return ENGINE.SOURCE2
				elif ( 'hybrid' in projDir ) or ( 'l4d2port' in projDir ):
					return ENGINE.HYBRID
					return ENGINE.SOURCE
			except AttributeError:
				return ENGINE.SOURCE

Starting from line 1407:

def setEngine( self, version=ENGINE.SOURCE ):
		Set the engine version for the project, i.e. 'Source 2'
			self.getChunk().Engine.value = version
			self.engine = version
		except AttributeError:
			c = Chunk( 'Engine', version )
			self.getChunk().append( c )

Starting from line 1483:

		engine = self.getEngine()
		if ( engine == ENGINE.SOURCE2 ):
			configGameInfo = self.getProjectDir() + r'gameInfo.gi'
			configGameInfo = self.getProjectDir() + r'GameInfo.txt'

Starting from line 1508:

			requiredFiles = [ game + r'bin{0}tier0.dll'.format( platform ),
			                  game + r'platformResourceplatform_english.txt',
			                  game + r'sdktoolsperlbinperl.exe',
			                  game + r'sdktoolspython{0}{1}python.exe'.format( PY_VERSION, platform ) ]
			requiredLocsToSync = [ game + r'bin{0}'.format( platform ),
			                       game + r'platform',
			                       game + r'sdktools',
			                       game + r'sdktools' ]

Now let’s take another quick dip in another script file: “SourceFilmmakergamesdktoolspythongloballibsite-packagesvprojconstants.py“, for yet another couple of extremely revealing references:


class ENGINE( object ):
Known engine names
SOURCE = ‘Source’
SOURCE2 = ‘Source 2’
HYBRID = ‘Hybrid’
ALL = ‘All’

This one’s very intriguing:







r’%VTOOLS%bin’ ] #make sure the tools path comes last in the PATH – branch specific paths should take precendence.

ENGINE_SOURCE2 = [ r’%VTOOLS%python{0}%VPLATFORM%’.format( PY_VERSION ),











r’%VGAME%..srcdevtoolsperforce’ ]


Meanwhile, back on Facepunch, community member GameDev stumbled upon these never-before-seen interface icons in SFM’s Hammer folder.

Also, in the “SourceFilmmaker/game/platform/tools” folder, just two folder paths up from these UI icons, there’s a file called: “source_2_stylized.qss”. Inside, it starts off with the words: “Default stylesheet for Source2 Tools UI“.

There’s plenty more in all the aforementioned directories, so I urge you to take a look inside. After all, the Source Filmmaker is free!

But it is great to see that Valve is definitely working on making Hammer more versatile, and possibly more user-friendly. Only time can tell when we get to play around with this new version of Hammer for ourselves, but I can only assume that its development has been very closely linked to that of Source 2.

But of course, if we assume that Source 2 is being developed using a newer version of Hammer, then surely Source 2, fundamentally, is at least somewhat similar to the original Source. Just as GoldSource was fundamentally a lot like Source, and ironically, used an earlier version of Hammer for its toolset component.

Overall, this is a monstrous find, and it proves once and for all, that Valve is working on a next-gen Source 2. And I’ll bet you anything that it’ll be the engine used for the next installment in the Half-Life franchise. Anything.

What I find interesting is the mention of a “Hybrid” engine which appears to be closely related to Source 2. As one can tell from the name, I assume Hybrid is some sort of hybrid between Source 1 and Source 2 – a “missing link” of sorts. No idea what it would be used for out-house, but it does represent some pretty tasty food for thought.

Hybrid is at one point linked to “l4d2port“, which I can only assume is the L4D2 Linux port. This implies that Hybrid, and by extension, Source 2, may be based somewhat heavily around OpenGL architecture, which is also quite interesting.

Still, I reserve my judgement for when we find out exactly what Source 2 is like. There’s only so much these code snippets can reveal to us, and I am far from a programmer. But surely a reveal can’t be too far off by now – this thing seems to be going full steam ahead!


  1. New engine, new Half-Life. I’m sticking with that.

  2. Hybrid could refer to 5th Cell’s Source Engine game – which is out this week http://www.nowgamer.com/news/1523511/valve_working_on_nextgen_source_2_engine_rumour.html

    • Interesting, but judging from the code there is a very clear association between the “Hybrid” engine branch and Source 2.
      With that in mind, I seriously doubt Valve would hand off Source 2 to 5th Cell for use in this new-fangled Hybrid game, without any kind of major announcement or even mention of the fact that it is using a next-generation version of Source.

      • Yeah, agree there’s clearly some distinct reason Hybrid is mentioned.

        Couldn’t see Valve let a third-party test out their new engine either, but it could be a new version of the engine for licensees?

        • “Hybrid”? As little as we know about it, I’m really not so sure. Time will tell what it is exactly.

        • Not true. Vampire the Masquerade was being developed before Half-Life 2 came out and was made with Source. I do believe it launched the same day, but they had access to the Source engine when it still wasn’t complete.

  3. Forgive me for pimping but I’d like to remind everybody what I said in October 2009:
    Poll Question 143 – Delay Episode Three for a new Source engine?

  4. *faints

    It is time. HL3 is near.

  5. I don’t really see what’s so amazing about this. I thought we already knew that a new hammer was coming eventually and it figures that Valve will update the engine with the next HL game. Everybody seems to be overreacting over this.

    • well, maybe because if they’re deliberately leaking tips like these could mean that a official announcement is close by. valve really know how to keep a secret,so that’s should mean that something is close to happen.

      • They’ve been deliberately leaking tips since Alian Swarm, or even sooner, I don’t remember.

        • That is true. As a matter of fact, there was a Source 2-related tidbit in the Alien Swarm SDK code, which few ever picked up on.

    • Evidences are always exciting. Usually we just speculate.

  6. Maybe you’re just under reacting.

  7. Hybrid for me means the ability to merge the engines seamlessly, the article writer hit on it with the L4DPort bit. I would imagine “Source 2” is the same as source 1 but is a OpenGL engine exclusively.

    This openGL engine could have been around since the Ornage box on the PS3 or when they ported the games over for the MAC client. Seeing as both use OpenGL to render games.

    Personally I would not get overly excited as I doubt its a fully fledged new engine also according to every bit of the source code from this and Alien swarm Half life 2 Episode 2 is still an Episode and not Half life 3.

  8. From what I see from these code snippets this is a sign for the fans. For one there are very little amount of comments in the code, meaning that the code is used to tease fans. Also note that when comments are used to say that this is “next gen Source 2!”. I think we’ll see allot more of Source 2 and even more from HL when L4D2 Linux is shown off or released.

  9. The article didn’t seem to mention this, but check out the new description on the Valve website…

    “In addition to Steam, there is Source, our own state-of-the-art game engine. Its sophisticated character animation, advanced AI, real-world physics, shader-based rendering, and super extensibility have helped us create some of the most popular and good-looking games on the market for computer and consoles. We don’t like to brag, but Source is considered the most flexible, comprehensive, and powerful game development environment out there. And it’s about to get even better.”

    Notice the last bit…

  10. If not engine=Get self-engine
    I don’t know why that line is so funny…

  11. Btw Vic, you’ve been busy this week I see..

  12. Oh my, oh my this week i like. Gives a lot of hope. HL3, L4D prequel, pls, let it be something 😉

  13. http://i.imgur.com/R4FG8.png

    This was sent to another Facepunch member Aurora93 by a friend.

    This might not be fake, because of the mentioning of Durango what seems to be, according to Kotaku (http://kotaku.com/5932175/microsoft-finally-admits-there-will-be-a-next-xbox), the code name for the next Xbox.

    Seriously this is hyping me up, I can’t get no sleep tonight 😀

  14. http://www.youtube.com/watch?v=JqqAbLKJLRQ Made video about it…

  15. HL3 official announcement is imminently upon us, I remember once saying I predict an accounment this year, and the game getting released the next.
    Hope so at least….

  16. “valve.py
    00049: somePropPath = content() / ‘ep3/models/characters/alyx/maya/alyx_model.ma’
    00076: def tools( engine=’Source 2′ ):”


  17. http://i.imgur.com/fTXYp.png

  18. From SPUFU chat:
    23:25 – [REDACTED]: a valve person on my friends list is playing 710
    > hl2.exe -steam
    What can it be?

  19. Python is an open source coding language.

    Look like Valve are moving towards community based integration of Source’s code and Python. Bit like Garry’s Mod and LUA. It’s easier to learn LUA or Python for example than I is C++.

    It should also be noted that back in my animation days my colleauges and I contacted Valve + other houses to find out what bits of Dev kit they used. For Half-Life 2 they were using Maya and exporting to XSI to animate. It’s no surprise to see them still using Maya but I’m not sure about XSI.

    • It seems like they’re entirely removing XSI from their development pipeline, and modifying their engine to reflect that.

    • I don’t think they’re going to use Python for rendering, AI and game logic. Python is too slow for runtime, but it’s great for development tools (except for resource-demanding ones like Hammer and map compilers). And, Valve used Perl in 2003, but Source itself doesn’t use Perl at all.

      • Ah, I didn’t mean for rendering as such. Garry’s Mod for example has this ‘area’ for LUA integration with the source engine.

        I’m thinking it’s similar to that.

        • Garry’s Mod uses Lua for game logic. Game logic consumes much resources too, and I think it isn’t going to be done in non-native code. At this moment, Valve uses scripts only for development tools and map logic, as a way to use variables, arithmetics and boolean logic with inputs/outputs.

  20. Last updated 2011… Is bandwidth greedy(Sounds like multiplayer).. version description is… beta password is ‘foo’, or maybe the african pronunciation of ‘fool’, meaning you’re a fool if you believe somethings up.
    Well, that’s my run over of that.

  21. http://i.imgur.com/pEsEl.png

    • We here at LambdaGen, and the ValveTime folks as well, have very recently received falsified e-mails from alleged Valve employees with similar “[REDACTED]” motifs similar to what you have there. With that in mind, I call fake.

  22. Multiple orgasms @_@