Analysis of leaks on future Valve games

Analysis of leaks on future Valve games, Destination Workshop Tools

and other cool stuff

v1.85

/u/ispeelgood

Legit Past Leaks

JIRA Leaks (2013)

What it is

JIRA is a project management/bug tracking software used internally at Valve. On June 18th 2013, the software’s internal mailing lists were temporarily visible to the public, and all the names of Projects/Mailing Lists were quickly dumped online.

ValveTime.net screenshot of the HL3 Group, and a few L4D3 Groups

Image Source: ValveTime.net

Lightning strikes twice

On September 1st 2013, Valve’s JIRA was once again accessible from the public, and it was discovered that a new group “Half-Life 3 Core” was created, which contained a subset of people on the HL3 group, which had increased in size from the June 18th leak. Lists of all employees in these groups can be found in the “Additional Reading” section of this document.

Those lists included key Half-Life people Kelly Bailey and Marc Laidlaw, who have both left Valve as of June 27th 2016, the former to work on a VR Game called Vanishing Realms, while the latter went on to retire after working at Valve for 19 years.

CBOAT Leak (2014)

What it is

The CBOAT leak is a series of pictures posted on NeoGAF posted on 27th January 2014 by known leaker “crazy buttocks on a train” (shorthand CBOAT), showing screenshots of a Left 4 Dead 2 map rebuilt on Source 2. They seem to be taken from an internal Valve presentation on Source 2’s capabilities.

Image from CBOAT’s original post on NeoGAF

[IMG]
[IMG]

Additional image posted on ValveTime.net

[IMG]
[IMG]

Image Source: ValveTime.net thread on the CBOAT leak

Some extra information and higher quality and resolution pictures can be found on the relevant ValveTime post.

Perforce Directory Leak (2014)

What it is

The Perforce Leak is a picture of a directory taken from a P4 Web Client internally at Valve. Posted on 27th January 2014 by user testinglol on Facepunch at this post, the validity of the leak was confirmed by the release of the Dota 2’s Workshop Tools Alpha (the first ever public release of a Source 2 game and SDK).

The original leak posted on Facepunch by testinglol

(January 2014)

The file directory of the Dota 2 Workshop Tools Alpha

(August 2014)

Image Source: SteamDB twitter

What we learned from it

  • CS2 has been confirmed on a July 2013 email from Valve’s Matt Wood to be just a test playground with CS-like gameplay (Source: http://i.imgur.com/zkSwDPh.png).

  • Source 2 MODs imported from Source 1 are named by the Source 1 MOD name followed by the suffix “_imported”.

  • HL3, Left 4 Dead 2 and Team Fortress 2 have been imported to Source 2 as late as January 2014 (but it is not known how much work has gone into any of these MODs since then, or even if any of them are still in active development).

  • HL3 and Left 4 Dead 3 have been worked on in Source 2, but it’s unknown for how long and whether any of the two are still in active development.

Note: “MOD” is the standard name for any game that extends the GoldSrc/Source 1/Source 2 engine. CS 1.6’s MOD was “cstrike”, HL2’s was “hl2”, Dota 2’s is “dota” etc.

Dota 2’s hl3.txt and rpg.txt (2015)

What it is

On October 9th 2015, an update to Dota 2 was pushed, with a few non-Dota files left in the directory “dota 2 beta/game/core/tools/help/fgd”. It contained a Hammer definition file (known in Source 1 as the FGD) for the Source 2 MOD “hl3”, with the filename hl3.txt. The file has since been removed from Dota 2, but a backup exists in SteamDB’s GitHub.

Interestingly, another definition called “rpg.txt” was also contained in the same content leak, and it describes the definitions for a standard RPG game (and it’s safe to assume the game MOD name is “rpg”) that presumably runs on Source 2.

rpg.txt can be found here.

What we learned from hl3.txt

The following things exist or have existed in HL3 at some point:

  • Procedural Spawns

  • Zipline (also found in the SteamVR Performance Test as Crowbar Zipline)

  • The following NPCs:

    • Quest Citizen

    • Invincible Hunter

    • Combine Pulse Ceiling Turret

  • Some kind of Quest System (probably related to Quest Citizen)

  • Associated Player Counter, explicitly defined as “HL3 Only” (which might mean that the game has or has had an Online component)

What we learned from rpg.txt

An RPG game on Source 2 has been in development at some point by a group of unknown size at Valve. Valve employees have been spotted In-Game on a game with the AppID 327620. Vigilant gamers have spotted this game to be the so-called RPG that runs on Source 2. You can find more about the Steam App of the RPG game here. It is unknown whether the RPG is still in development.

Findings in Aperture Robot Repair and the SteamVR Performance Test

What it is – Aperture Robot Repair

Aperture Robot Repair (later referred to as ARR) is a VR demo created by Valve, originally seen by the public shortly after the HTC Vive was announced (around March 4th 2015). 

What it is – SteamVR Performance Test

The SteamVR Performance Test (later referred to as SteamVR Test) is a tool released on February 22nd 2016 by Valve. It measures a PC’s ability to run VR games. It runs a stripped down version of ARR and analyzes its performance to determine VR readiness.

Findings

SteamDB and ValveTime spent a lot of time analysing ARR and the SteamVR Test (and a few of their previous Steam Depots) and discovered a lot of info on what Valve is up to in Source 2. An in-depth analysis has been made by SteamDB here and by ValveTime here. Here’s a few of the findings pertaining to just HL3/L4D3, including some discussed earlier:

Console commands related to Quests, Quest Citizen and Crowbar Zipline (source)

Command NameValueFlags

quest_citizen_stop_see_player_timeout2game

quest_dialog_duration_chars_per_second20game

quest_dialog_duration_max15game

quest_dialog_duration_min1game

quest_dialog_text_drop_shadow_depth_offset0.25game

quest_dialog_text_drop_shadow_vertical_offset0.25game

quest_dialog_text_offset80game

quest_goal_depth256game

quest_goal_num_ticks64client

sv_crowbar_zipline0game

Other stuff that was found:

  • Names of HL3 C++ Source Files referencing Quests, Quest Citizen, Ceiling Pulse Turret and Procedural Spawning

  • HL3 Protocol Buffers (further explained later on)

  • Textures for an L4D3 Character called “Retired Engineer”

  • A VR test map for L4D characters, with tons of missing models. The Retired Engineer also appears there, and the map is titled “vr_l4d_characters_skody”.

Again, if you’re interested in any of the above, visit the analyses of both SteamDB and ValveTime.

Findings in Destinations

General Findings

Console Commands

Some VConsole2 commands were found in Destinations that were present in ARR. 

Console commands related to Quests and Crowbar Damage

Command NameValueDefault ValueFlags

quest_goal_num_ticks64client

crowbar_impact_damage_scale22game

gordon_at_desk.vmesh_c

A variant of the classic info_player_start model found in Source games, gordon_at_desk is speculated to be some kind of VR Sitting Spawn, but the purpose of this model is still not known. You can find it by opening “Destinations\game\core\pak01_dir.vpk” with a program such as Valve Resource Viewer and browsing to the “models\dev” directory inside the Viewer. A Light Reflectivity Test material is found on the models’ PC screen.

It probably doesn’t confirm HL3, but it’s a funny model to look at.

The gordon_at_desk model rendered in Source 2

 

Findings in pak01_000.vpk

What it is

The file extension .vpk is used in all Valve engines from Left 4 Dead onward. You can think of it as a part of a larger .zip archive that holds all the game assets like models, maps, textures, music, etc.

Findings

Figure 1.1: Declaration of headcrab.mdl

"models\headcrab.mdl"

{

"mod""hl3"

"importfunc""importMDLtoVMDL"

"getSkinningFromLod0""1"

}

Figure 1.2: QCI file importing from Left 4 Dead 2, also found for VRD files

// work on left4dead2 qc importing content files.

".qci"

{

"mod""left4dead2_source2"

"importfunc""integ"

"src""IMPORT_CONTENT"

"dest""EXPORT_CONTENT"

}

What it means

Figure 1.1:

This definition tells the app that is reading this file that there exists a Source 1 (!) model located in “models\headcrab.mdl”, that its MOD is “hl3”, and that one of its available functions (or one of the functions its already undergone) is a conversion from the Source 1 MDL format to the Source 2 VMDL format.

Figure 1.2:

This was also found in SteamVR Test. Definition: Take .qci (model face flex source file) from Source 1, and use the ‘integ’ function to import them. Said files should be taken from the ‘IMPORT_CONTENT’ directory and placed on the ‘EXPORT_CONTENT’ directory. The MOD is “left4dead2_source2”. The same definition was found for .vrd (procedural bones file) files.

client.dll – HL3 Protobuf (Also found in ARR)

What it is – client.dll

The client.dll is a massively important engine library that complements server.dll and defines almost all the Engine functions that the Client can use or that are executed on the Client’s machine. All of the content specified here also exists in the server.dll library. 

What it is – Protobuf

A file was found in ARR/SteamVR Test and Destinations client and server dlls called “hl3_usermessages.proto”. This .proto file is a Protocol Buffer (or Protobuf) source file. This contains definitions for values/messages that the game wants to send back and forth between the Client and Server a lot. The developers serialize these messages using Protobufs to make these communications easier. 

Findings

Figure 2.1: hl3_usermessages.proto from ARR/SteamVR Test/Destinations

enum HL3UserMessageIds {

UM_Geiger = 300;

UM_Battery = 301;

UM_Damage = 302;

}

message CUserMessageGeiger {

optional uint32 geiger = 1;

}

message CUserMessageBattery {

optional int32 armorvalue = 1;

}

message CUserMessageDamage {

optional int32 dmg_save = 1;

optional int32 dmg_take = 2;

optional int32 visible_damage_bits = 3;

optional float damage_origin_x = 4;

optional float damage_origin_y = 5;

optional float damage_origin_z = 6;

}

Credit: SteamDB

What it means

Figure 2.1:

As we see here, some Messages that are being sent between Client and Server include:

  • User Geiger (we can assume this means a Radiation Level aka Geiger Counter)

  • User Battery

  • User Damage

These things do not necessarily mean that the game is Online. When you play HL2 on your computer, you are both the client and the server. It’s also not necessary for this information to still be relevant.

HLVR

What it is 

Some console commands and strings found in Destinations reference “HLVR”, but it does look more like a test VR project with HL assets rather than a full-fledged Half-Life VR game.

Findings

Console commands related to HLVR

Command NameValueDefault ValueFlags

hlvr_pickup_maxmass35game

hlvr_use_pucks0game

HLVR related strings inside client.dll

CHLVRPropGlove

CHLPropVRHand

C_HLVR_TeleportController

CHLVR_WeaponSwitch_Controller

C_HLVRPropTripmine

CHLVR_Weapon_Base

C_HL_VR_Player

CHLVRPlayerEntityHandle

CHLVRPropFlashlight

CHLVRPropFlashlightmodels/weapons/vr_flashlight/vr_flashlight.vmdl

vr_controller_held_rightmodels/hands/vr_glove_right.vmdl

vr_controller_held_leftmodels/hands/vr_glove_left.vmdl

hlvr_prop_renderable_glove

hl_prop_vr_hand

hl_vr_teleport_controller

hlvr_weaponswitch_controller

prop_tripmine

item_hlvr_prop_flashlight

Other interesting VR related strings/commands from client.dll

vr_teleport_recharge_speed

vr_teleport_fixed_cost

vr_teleport_energy_cost_multiplier  2 

vr_teleport_cheap_teleport_modifier

vr_teleport_cheap_teleport_distance 64

vr_teleport_nearby_enemy_modifier

vr_teleport_nearby_enemy_distance 128

“Importing Tutorial” L4D3 Directory

What it is

On 28th June 2016, Valve dev Tristan Reidford uploaded a tutorial on the Valve Developer Wiki regarding importing of models and materials inside Destinations. One of the images in the tutorial clearly shows a folder named “left4dead3”. The directory can be spotted on the top left corner of the bottom window on the image below. It was first reported by EliteGuy on Facepunch.

“08 directory fun.png” as posted on 28th June

Image Source (now replaced with edited version): developer.valvesoftware.com

Original Image Mirror: imgur – posted by EliteGuy 

The very next day, the image was replaced with an edited version where the “Libraries” had been moved up and the rest of the folders were completely removed from the image (but the scrollbar had stayed at the same spot). The photoshopped version can be found at the image source or here (thanks Smash).

What it means

On Windows 7, the File Explorer shows Favorites above Libraries, so it’s quite possible that Left 4 Dead 3 might still be in active development. Tristan has also been spotted playing a lot of Left 4 Dead 2 recently. He’s also been in the JIRA groups for HL3 and L4D3 back in 2013 (thanks /u/hopwire).

Appendix

Timeline v0.001

Additional Reading

Thanks for reading.

For feedback/questions/corrections PM me:

/u/ispeelgood on Reddit, I_speel_good on Facepunch, @lfdhgr on Twitter

If you’re planning to rehash any of the content here for a YouTube video, don’t

Many thanks to:

SteamDB, ValveTime.net, Combine Overwiki

Changelog (all times in GMT):

Date (DD/MM/YY)

Version

Changes

30/06/16 – 14:15

1.85

Added info on the replaced image on “Importing Tutorial”

29/06/16 – 22:23

1.8

Document:

  • Turned Comments off

Destinations:

  • Added “Importing Tutorial” L4D3 Directory

27/06/16 – 18:40

1.7

Added appendix: rough timeline and additional reading

27/06/16 – 14:34

1.61

Document:

  • Turned Comments on

27/06/16 – 10:44

1.6

Document:

  • Updated Document Outline

27/06/16 – 00:27

1.5

Legit Past Leaks:

  • Added JIRA Leaks

26/06/16 – 19:51

1.4

Destinations:

  • Added HLVR Section

26/06/16 – 18:45

1.3

Destinations:

  • Added General Findings and gordon_at_desk

Document:

  • Better readable text and updated design

26/06/16 – 10:28

1.2

Legit Past Leaks – Dota 2’s hl3.txt:

  • Added more info on rpg.txt and the Source 2 RPG

26/06/16 – 18:47

1.1

Legit Past Leaks:

  • Added CBOAT leak

  • Corrected info on Perforce Directory Leak

11/06/16

1.0

Initial Release

Leave a Comment

Your email address will not be published. Required fields are marked *