LambdaGeneration Community Join our new Community Platform — Share Half-Life news and community content. Built by fans, for fans.
We Are The Lambda Generation. LambdaGeneration is a website dedicated to the video game Half-Life. ( We're basically really passionate about crowbars, headcrabs and anyone who has goatee with a PhD in theoretical physics… )

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.
		'''
		try:
			if not engine:
				engine = self.getEngine()
			if  ( engine in ( ENGINE.SOURCE2, ENGINE.HYBRID, ENGINE.SFM ) ):
				return Path( self.getGame() + r'sdktools' )
			else:
				# 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'.
		'''
		try:
			eng = unicode( self.getChunk().Engine.value )
			if eng not in ENGINE.ALL_ENGINES:
				return ENGINE.SOURCE2
			return eng
		except ( AttributeError, ValueError ):
			try:
				# 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
				else:
					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'
		'''
		try:
			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'
		else:
			configGameInfo = self.getProjectDir() + r'GameInfo.txt'

Starting from line 1508:

if engine in ENGINE.SOURCE2_FAMILY:
			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’
SFM = ‘SFM’
HYBRID = ‘Hybrid’
ALL = ‘All’
SOURCE_FAMILY = ( SOURCE, SFM )
SOURCE2_FAMILY = ( SOURCE2, HYBRID )
ALL_ENGINES = ( SOURCE,
SOURCE2,
SFM,
HYBRID
)

This one’s very intriguing:

ENGINE_SOURCE = [ r’%VGAME%bin’,

r’%VGAME%sdktoolsbin’,

r’%VGAME%sdktoolsperlbin’,

r’%VGAME%sdktoolsperlsitebin’,

r’%VGAME%..srcdevtoolsbin’,

r’%VGAME%..srcdevtoolsperforce’,

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’%VTOOLS%pythongloballibsite-packages’,

r’%VTOOLS%pythonglobalScripts’,

r’%VGAME%bin%VPLATFORM%’,

r’%VGAME%bin’,

r’%VTOOLS%bin%VPLATFORM%’,

r’%VTOOLS%bin’,

r’%VTOOLS%perlbin’,

r’%VTOOLS%perlsitebin’,

r’%VGAME%..srcdevtoolsbin%VPLATFORM%’,

r’%VGAME%..srcdevtoolsbin’,

r’%VGAME%..srcdevtoolsperforce’ ]

ENGINE_HYBRID = ENGINE_SOURCE2

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!

54 Comments

  1. Multiple orgasms @_@

  2. http://i.imgur.com/pEsEl.png
    Interesting?

  3. Last updated 2011… Is bandwidth greedy(Sounds like multiplayer).. version description is 0.0.0.1… 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.

  4. 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.

  5. From SPUFU chat:
    23:25 – [REDACTED]: a valve person on my friends list is playing 710
    http://cdr.thebronasium.com/app/710
    > hl2.exe -steam
    What can it be?

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

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

    DUN DUN DUN

  8. 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….

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

  10. 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 😀

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

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

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

  14. 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…

  15. 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.

  16. 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.

  17. Maybe you’re just under reacting.

  18. 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.

  19. *faints

    It is time. HL3 is near.

  20. 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?

  21. 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.

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

Leave a reply


Sign in via Steam to skip spam and contact fields.