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. It is also unique in that it runs without Steam.
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 Network and Steam Parlor Games
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 and the old Friends servers have been shut down around the same time.
Since this prototype was built without Steam support, the Friends feature always says that "Steam needs to be running for Friends to be available.", even if Steam is running.
Also, builds of the 2004 Steam Parlor Games can be found in platform\AddOns. The assets are the same as the one found in the retail version of Half-Life 2.
Player nickname
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 Snark model from Half-Life: Source. It is showcased in a map called demo_blob that wasn't present in the Benchmark by default but was part of 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 logo.
Files
Steam Leftovers
The same game icons leftover from Half-Life 2 are present. These were used in Steam during its early years.
Codename Gordon icon.
Counter-Strike icon.
Counter-Strike: Source icon.
Deathmatch Classic icon.
Day of Defeat icon.
Day of Defeat: Source icon.
Half-Life icon.
Team Fortress Classic icon.
Early Xbox 360 Orange Box Menu
Early textures used for the Xbox 360 game selection menu (internally known as AppChooser), which allows you to select which Orange Box game to play at startup, are present.
Background | Half-Life 2 | Episode One | Episode Two | Portal | Team Fortress 2 |
---|---|---|---|---|---|
Of note:
- In the final version, each game has its own loading background. In the prototype, only Episode Two's background is present.
- The buttons in the prototype have rounded corners, unlike the final versions.
- The button for Half-Life 2 reuses promotional art from the Collector's Edition box art, which itself is from a pre-release version of the game.
- The button for Episode One reuses promotional art from its retail box art.
- The button for Portal is a prerelease screenshot of Portal's Test Chamber 13.
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" } }
weapon_proto1
In the ep2\scripts directory lies a weapon script for a prototype weapon simply named weapon_proto1. However, the weapon itself doesn't exist in the code so it cannot be spawned.
The weapon script itself only shows that it had unlimited ammunition and its own ammunition type. Otherwise, it uses the .357 models and sounds as placeholders.
The code for this weapon leaked alongside the 2008 Source Engine code leak from 2012. It reveals that:
- the weapon was being used for testing things for Episode Three,
- the primary fire caused a hitscan bolt to be fired; that bolt could penetrate an NPC or the world once, allowing the player to hit an entity through a wall or two enemies at once,
- the secondary fire would cause the weapon to detect NPCs in a specific radius around the player and play a sound as well as show a visual effect.
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.
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. The issue is caused by an error when loading models.
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)