Proto:Half-Life 2: Episode Two/Source Particle Benchmark
This is a sub-page of Proto:Half-Life 2: Episode Two.
This article is a work in progress. ...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes. |
To do:
|
The Source Particle Benchmark demo, also known as the Multicore CPU Particle Simulation Benchmark, is a late 2006 benchmarking tool used to showcase the benefits of multi-threading in the Source Engine at Valve Hardware Day 2006[1]. It was also given to a few third-parties for independant benchmarks[2][3][4] and was later shared publicly by one of them. A hacker later rereleased this build to scare Steam users by pretending to have compromised Valve's servers.
The tool's code turns out to be an in-development version of Half-Life 2: Episode Two and of the Source 2007 engine, sporting features of the game and the engine in more or less finished states.
Contents
Widescreen crash issue
When changing the game's aspect ratio from 4:3 to a widescreen one (16:9, 16:10), the background texture will be replaced by a missing texture. Trying to boot the game directly in a widescreen resolution will result in an instant crash.
This happens because there is no widescreen background texture available. The Riverbed screenshot only exists for 4:3 resolutions, and there are no fallback textures from Half-Life 2 or Episode One for the game to use instead.
![]() |
Download Widescreen Crash Fix
File: Source-Particle-Benchmark-Widescreen-Fix.zip (79 Kio) (info)
|
Missing sounds
The benchmarking map actually tries to play sounds, but it is unable to do so since the build comes without any game sound.
The sounds are managed by two ambient_generic entities.
Thunder
Thunder sounds from Episode One are manually played by a timer. They can be restored by copying the appropriate sound files from that game.
Sound name | Files |
---|---|
citadel_ep01.flash_thunder | ambient/atmosphere/thunder1.wav ambient/atmosphere/thunder2.wav ambient/atmosphere/thunder3.wav ambient/atmosphere/thunder4.wav |
Rain
The unused rain loop sound is supposed to play forever once the map is loaded. This sound is not present anywhere, even in the final game, and thus cannot be faithfully restored.
Sound name | File |
---|---|
ep2_outland.rain_loop1 | ambient/levels/forest/rain_loop1.wav |
In-game differences
Main Menu
Normally, the game directly loads the benchmarking map when launched. By editing the batch file that starts the game, it is possible to get to the main menu instead. The menu tries to load the map ep2_background01 but it doesn't exist, so nothing happens.
The background texture is a blurred screenshot from a location named Riverbed. This was confirmed by leaks of various Half-Life 2-related map source files on March 24, 2017[5]. Riverbed was the initial location for the train crash at the beginning of Episode Two.
Proto | Final | |
---|---|---|
Main Menu | ![]() |
![]() |
Texture | ![]() |
![]() |
Texture | Screenshot |
---|---|
![]() |
![]() |
Friends UI
From 2004 to 2009, Source Engine games had a "Friends" feature to check your Friends List in-game. It was replaced by the Steam Overlay.
ErikJ
When the game starts, the player is given the name ErikJ. The name is specified in the configuration file (config.cfg).
Erik Johnson is one of Valve's business development authorities[6].
Flashlight
This page or section needs more images. There's a whole lotta words here, but not enough pictures. Please fix this. |
To do:
|
The prototype features an unfinished version of the final game's flashlight with shadow mapping capabilities.
For some reason, the flashlight can be turned on even if the player doesn't have the HEV suit equipped.
Also, special shaders like EyeRefract made specifically to handle the new flashlight effect don't exist yet, so rendering issues happen when shining the light on another character.
Episode One (Source 2006) |
Source Particle Benchmark |
---|---|
![]() |
![]() |
Flashlight icon
In Half-Life 2 and Episode One, the flashlight uses the suit's power, sharing it with sprinting and oxygen. By late 2006 however, Valve had already implemented the flashlight's own power source. It uses the Half-Life: Source icon as a placeholder.
Proto | Final |
---|---|
![]() |
![]() |
Entities
npc_magnusson
npc_magnusson, the entity for Dr. Magnusson, already exists in the code but his model is missing.
npc_surface
npc_surface is a test entity made of many blobs that can merge together into bigger shapes. An explosion can scatter the blobs around, after which they will merge back together. Each blob deals 5 damage when touched.
This entity functions using a technology known as Blobulator. Blobulator was eventually used for Portal 2's Mobility Gels[7].
npc_blob
npc_blob is a test entity designed to showcase the Source Engine's ability to render entities moving in packs and formation.
It uses the model of a Snark ported to the source engine from Half-Life. It is showcased in a map called demo_blob that wasn't present in the Benchmark by default but was present in the Repo VMF map sources that leaked in 2016. In the map, a flock of npc_blob will walk over map objects, entities, and even take on specific shapes, such as the Half-Life 2 logo.
Files
Missing T-Minus One Chapter
The chapter setup between the prototype and the final game is the same, except for the final T-Minus One chapter which is missing.
There is also no recap video. The command required to play it doesn't exist in the code.
Proto | Final | |
---|---|---|
chapter1.cfg | map ep2_outland_01 | playvideo_exitcommand ep1_recap map ep2_outland_01 |
chapter2.cfg | map ep2_outland_02 | map ep2_outland_02 |
chapter3.cfg | map ep2_outland_05 | map ep2_outland_05 |
chapter4.cfg | map ep2_outland_06a | map ep2_outland_06a |
chapter5.cfg | map ep2_outland_09 | map ep2_outland_09 |
chapter6.cfg | map ep2_outland_11 | map ep2_outland_11 |
chapter7.cfg | N / A | map ep2_outland_12a |
Scenes
To do: Check for differences between Dr. Magnusson's prototype VCD files and the final's. |
All scenes (VCD files) from Half-Life 2 and Episode One are present in hl2\scenes and episodic\scenes respectively.
The scenes for Episode Two were removed, leaving only the directory structure.
However, a few scenes did survive, most are for Dr. Magnusson, while a single one is for Griggs.
ep2\Scenes\outland_02\griggs_betweenwave_01.vcd ep2\scenes\outland_11\mag_aband_critical.vcd ep2\scenes\silo garage\mag_getgoing.vcd ep2\scenes\silo garage\mag_littletotell.vcd ep2\scenes\silo garage\mag_nothingelse.vcd ep2\scenes\silo garage\mag_onelastthing.vcd ep2\scenes\silo garage\mag_thatsit.vcd ep2\scenes\silo garage\striderbuster.vcd
Early NPC soundscripts
Soundscripts are files that identify sounds in the game. This allows developers and level designers to add sounds to their maps; the sound's properties such as the sound file to use, the volume, the pitch, etc. are controlled by the soundscript.
These files show that some parts of the final game were already planned, in the making or even done by late 2006.
File | Use |
---|---|
npc_sounds_attackheli_episodic2.txt | The Hunter-Chopper in the Riding Shotgun chapter |
npc_sounds_fastzombie_episodic2.txt | The Fast Zombie getting on the Muscle Car |
npc_sounds_strider_episodic2.txt | The battle of the Our Mutual Fiend chapter |
npc_sounds_turret_episodic2.txt | Under the Radar chapter? |
Early soundscapes
Soundscapes are sets of looping and random sounds that build the audible environmental ambience of the game.
The prototype contains two early soundscape text files, which are essentially the ones from the final missing a lot of entries.
scripts\soundscapes_outland.txt scripts\soundscapes_silo.txt
Rain
In the level_sounds_outland_episodic.txt soundscript, an ambience entry exists for a rain loop, suggesting a rainy level at some point. Considering that the Riverbed style guide maps have rain, this was very likely.
"ep2_outland.rain_loop1" { "channel" "CHAN_STATIC" "volume" "1.0" "pitch" "100,110" "soundlevel" "SNDLVL_120dB" rndwave { "wave" "ambient/levels/forest/rain_loop1.wav" } }
Source Filmmaker sessions
Two Source Filmmaker sessions from Episode One are present in the files. Both of these were used in Episode One's trailer.
episodic\elements\sessions\alyxdemo01_grenadeflinch01.dmx episodic\elements\sessions\alyxdemo02_antlionfight01.dmx
Voice lines soundscript
To do: The list of cut content below actually exists in the final game's level_voices_episode_02.txt as well, so maybe it could be moved there instead? |
The prototype ships with an early version of the ep2\scripts\level_voices_episode_02.txt, which is a soundscript for the voice lines.
The biggest difference is that many voice lines are missing in the prototype. Some of them had their volume or file path changed.
However, there are a few interesting cut elements:
- Lines regarding Alyx's fall in the original beginning of Episode Two (presumably Riverbed) are present.
- Two characters named Cyril and Fred were to appear on the bridge near the Muscle Car is acquired in the map outland_06, according to the file paths.
- They would supposedly have talked to each other as well as Gordon and Alyx.
- Their names are references to science-fiction writers Cyril M. Kornbluth and Frederik Pohl[8].
- The G-Man's monologue during Alyx's healing was much longer.
Incompatible or broken Half-Life 2 binaries
The hl2\bin folder contains a set of client and server DLLs for the base Half-Life 2 code (without the Episode One and Episode Two additions), as well as their PDB files. It is possible to reach the menu, but the game crashes when attempting to load a map.
Windows Registry
The Source Particle Benchmark can be run without Steam, but it will still read and write Steam settings in the Windows Registry.
Source Engine games store their graphics settings in the Registry. They also update some Steam values.
The game uses Steam's language setting to determine its text language (HKEY_CURRENT_USER\Software\Valve\Steam:Language).
[HKEY_CURRENT_USER\Software\Valve\Source\ep2\Settings] "AutoConfigVersion"=dword:00000001 "ScreenWidth"=dword:00000400 "ScreenHeight"=dword:00000300 "ScreenWindowed"=dword:00000000 "ScreenMSAA"=dword:00000002 "ScreenMonitorGamma"="2.2" "mat_forceaniso"=dword:00000004 "mat_picmip"=dword:00000001 "mat_trilinear"=dword:00000001 "mat_vsync"=dword:00000000 "mat_forcehardwaresync"=dword:00000001 "mat_parallaxmap"=dword:00000000 "mat_reducefillrate"=dword:00000000 "r_shadowrendertotexture"=dword:00000001 "r_flashlightdepthtexture"=dword:00000001 "r_rootlod"=dword:00000001 "r_waterforceexpensive"=dword:00000001 "r_waterforcereflectentities"=dword:00000001 "mat_antialias"=dword:00000002 "mat_specular"=dword:00000001 "mat_bumpmap"=dword:00000001 "mat_hdr_level"=dword:00000002 "mat_colorcorrection"=dword:00000001 "VendorID"=dword:00000000 "DeviceID"=dword:00000000 "DXLevel_V1"=dword:0000005a "User Token 2"="" "User Token 3"="" "key"="1234567890123" [HKEY_CURRENT_USER\Software\Valve\Source\Settings] "User Token 2"="" "User Token 3"="" [HKEY_CURRENT_USER\Software\Valve\Steam] "Language"="" "Skin"="" "PseudoUUID"="4e9e5f47d37ed844" "Rate"="10000" "LastGameNameUsed"="ErikJ"
Build Date
The version command dumps the engine's build date to the console (engine.dll):
Exe build: 17:37:52 Oct 31 2006 (2915)
It was built on Halloween 2006, theoretically making it the spookiest of Valve's games.
References
- ↑ DriverHeaven.net: Valve Hardware Day: Multi-Core CPUs, James "Rasta Monsta" Gregory, DriverHeaven.net, 2006 (archived)
- ↑ Benchmark Performance - Valve Hardware Day 2006 - Multithreaded Edition, Jarred Walton, AnandTech, November 7 2006 (Wayback Machine, archive.today)
- ↑ Hybrid-Threading Benchmarks - Valve Software's Source Engine Multi-Threaded Preview | [H]ard|OCP, Paul Jastrzebski, HardOCP, November 6 2006 (archived)
- ↑ Overclocking Intel's Core 2 Quad Q6600 | bit-tech.net, Tim Stalley, bit-tech.net, July 25 2007 (Wayback Machine, archive.today)
- ↑ The leaked maps of the Half-Life 2 episodes - Part 1 | ValveTime.net | Valve News, Forums, Steam, Barnz, March 27 2017 (Wayback Machine, archive.today)
- ↑ People at Valve, Valve, 2022 (Wayback Machine)
- ↑ Portal 2 Preview | Features | Edge Online, Edge Online, March 18 2011 (archived)
- ↑ Half-Life 2: Episode Two - Cyril, Fred, and friends | ValveTime.net | Valve News, Forums, Steam, Barnz, April 12 2017 (Wayback Machine, archive.today)