Leak Age Identification Techniques

From Valve Cut Content
Revision as of 04:00, 29 May 2020 by Uncanny (talk | contribs) (wip leak identification)
Jump to: navigation, search

This article is intended to serve as a reference point for methods of estimating the age of files.

Overview

Half-Life 2 has had a long and diverse development, and this is heavily reflected in the Leak. From the gradual progression of "side-by-side" texturing to using texture sheets, from Version 27 models to 37, and especially in the sound files that still bear dates of when they were created.

Textures

Texture identification isn't the best method, but one thing it is is consistent. There isn't a lot of accuracy, but good estimates are definitely possible to make.

Half-Life 1-esque "side-by-side" Texturing

  • Date: 1999-2001
  • Identification: Observe how the texture looks. Does it look like only one side of the model? Like someone took a photo of the front of it and molded it into a texture? Then it is likely this era.
  • Examples: Odell, Jaytest, Helena Mossman, Police, TBot1, Combot
  • Explanation: Old habits die hard. This is especially applicable with Half-Life 2's developers. In early stages of the game, they used styles of texturing they were very familiar with, which happened to be ones similar to the ones they used in Half-Life 1.

W_-Era folder naming

  • Date: 1999-2001
  • Identification: Does this folder start with W_? If so, it is likely this. Low-resolution textures also help.
  • Examples: The entirety of the "Bathroom" /materials/models/ folder, W_Stalker, the entirety of the "Electronics" /materials/models/ folder.
  • Explanation: Early in Half-Life 2's development, all model foldera were prefixed with W_, possibly meaning "world", like with the world models of weapons. Regardless of this, folders prefixed with this are consistently the most primitive of all the prop models.

Separate Mask Textures

  • Date: 2000-2001
  • Identification: Do the textures of the particular model have "*_mask" textures alongside the normal ones? These look like black-and-white versions of the textures, with the parts intended to be reflective white.
  • Examples: TBot1, the Gasmask Citizen, some earlier textures in Police, the Fast Headcrab's earlier textures.
  • Explanation: Mask textures were a new feature introduced to allow for reflectivity based on a "mask" texture, where the brightest part is the most reflective and the darkest the least. Although they eventually were universally stored in the alpha channels of later textures, they originally were separately kept as their own textures, which shows up in some of the oldest remaining models important enough to warrant them.

Early Facial Textures

  • Date: 2000-2002
  • Identification: Are either of the following textures present in the folder:
  • Examples: Conscript, Odell, Barney
  • Explanation: Before settling on the final, more diverse array of "inside-face" textures, Valve went through a stage between it and the even more primitive HL1-esque mouths and painted-on eyes. Instead of using painted-on eyes, they used irises stuck on a grey sheet, intended to look like an eyeball. Instead of using low resolution mouth textures, they decided to use a higher quality texture.

Separated "Cylmaps"[1]

  • Date: 2002-early 2003
  • Identification: Does this folder have several separated textures for different body parts, such as the arm, torso and leg? Make sure not to include facial features - they remain separated from the main sheet in the final version.
  • Examples: Leak Grigori, Conscript,
  • Explanation: Eventually, even Half-Life 2's modellers modernized and began using cylinder maps for their models. However, it was an entirely different step before they began using sheets as well. Resulting are a pile of intermediate textures with more modern elements than the HL1 models, but that are still lagging behind the final sheets.

"//Original Shader:" VMTs

  • Date: Late 2002 or below
  • Identification: Check the .vmt of a specific texture you are looking at. On the third line, does it contain something like: "// Original shader: BaseTimesLightmap"?
  • Examples: Most textures have this. Just click around a bit.
  • Explanation: At an intermediate point in development, Valve decided to overhaul the shader system, and through an automated script change every .vmt to reflect the new shaders. However, it left behind what the original shaders were. The unintentional result of this is that simply checking the .vmts of any material allows finding out if it is before the "//Original Shader:" period or after it.

Sheeted textures

  • Date: 2003-Retail
  • Identification: For all body textures, does this model use one sheet? Again, eyeball, teeth, iris or such textures do not count.
  • Examples: Alyx, Police (Version 4 and up), Mossman, Kleiner

VTF File Version

  • Date: Late 2002 or below
  • Identification: VTF Editing programs (such as VTFEdit) can be used to check the version of the vtf file.
  • Examples: Version info shown in VTFEdit
  • Explanation: Sometime during late 2002, VTF Files were updated to a new version. Version 7.0 is the original, unupdated version. Anything above that (7.1+) are post-2002 versions.

Models

Versions

The Leak possesses a number of different model versions that are still present in the files, ranging from v27 to v37, the current active format.

Leftover Pre-Physics Death Animations

  • Date: 1998-2001
  • Identification: Observe the animations of the model. Is there one dedicated to the model's death, ending in a "dead" state?
  • Examples: Conscript, Combine "Sniper" Elite, Stalker
  • Explanation: Prior to the physics engine being implemented, Half-Life 2 used a system similar to Half-Life: When enemies die, play a death animation, ending in a "idle dead" state. Once the physics engine was implemented and the enemies instead became posed ragdolls upon death, this system was rendered obsolete. Leftovers of it remain in earlier models, however.

Sound Dates

Practically every sound file in the Leak contains internal dates of when they were last edited, which make them very useful.

Files

A list of every file's metadata, including but not limited to date, can be grabbed here. Maintain reasonable caution, though - the dates might be when they were taken from a sound library, not when they were actually implemented. However, it seems you can get accurate dates for certain files that have a _loop suffix, most likely due to being re-edited inside of an audio program to make the sound file loop properly, making it have a new date.


Maps

In the vmf files included in the The WC Mappack are a number of metadata variables that can be used to help determine a number of things about the development history of the particular map you are inspecting.

The following information is paraphrased from a community member[2] and uses the extracted dataset avaliable here.

Date zero:

The date zero for Valve Hammer Editor/Worldcraft calculated from this dataset is 24.10.1996. This is the date that corresponds to build 0. Therefore build 1 date is 25.10.1996.

According to https://developer.valvesoftware.com/wiki/Hammer_Editor_version_history this loosely corresponds to first version of Worldcraft released (the closest date is v1.022 at 22.10.1996). The date zero has a different meaning though.


Date zero was determined by a simple assumption: some maps have probably been last edited on the same day as the mappers updated their local copy of VHE/Worldcraft. Therefore difference between Hammer build date and map last edited date is always equal to 0 or higher (meaning map was edited on day of update, or several days later). The provided date zero satisfies this condition.


There's an additional confirmation for the date zero. I had to dig up my HL1 CD for this (it was a pirate CD from year 2001, it included HL1 SDK on it). The SDK itself is curious, but it's provided with Worldcraft:


The file date of Worldcraft corresponding to that build is 01.06.2000 (predicted build date 31.05.2000, the day before). Date zero cannot possibly be later than 24.10.1996 (because that would mean some maps were last edited BEFORE hammer was built), but on the other hand it's completely realistic that Worldcraft was built on 31th, then prepared for the installer on the next day.


How to determine NET:

So, the date zero is a valid time reference! NET (no earlier than) date for a map can be determined by adding VHE editor build number to that date. For example, proto_finale2.vmf (build 3497) has a build date of 3497 days after 25.10.1996, which is 22.04.2006. This http://www.timeanddate.com/date/dateadd.html is a helpful resource


Map version:

The mapversion field is roughly the number of times the map has been saved, it is incremented every time the vmf file is saved from hammer.

This field can be used to easily sort maps by their completeness or which maps were most worked on, in case several versions of the same map are available.


Therefore not only the dataset contains information about the intensity of work (when were the maps worked on, how often also information on how often Hammer builds were distributed to level designers)


Other comments:

This is a very reliable method to determine when VMF was last edited. All maps that come from Valve would have been last modified with a very recent Hammer build and all level designers at Valve are supplied with the latest Hammer build at certain intervals. Majority of the maps in WC mappack have been edited within a week of the Hammer build.


For maps that have been made at Valve, it is reasonable to assume that last modified date for the map is probably within 1 week from the NET date. This also confirms file dates given in the WC mappack (since the build number is very consistent for entire dataset and is also confirmed by Worldcraft from HL1 times) and gives new correct "last modified" dates for a whole set of maps (aarons maps all have 12.12.2002 as the file date, which is not their actual last modified date! Aarons maps are all 1-2 years older than file date implies).




Here's the list of 50 most worked on maps in the WC map leak:

File Map version field / Save amount


hl2-wc-maps\john\perf_test\bugbait_low_props.vmf 9359
hl2-wc-maps\john\perf_test\bugbait_low_noprops.vmf 9348
hl2-wc-maps\john\perf_test\bugbait_low.vmf 9344
hl2-wc-maps\john\perf_test\bugbait_noents.vmf 9329
hl2-wc-maps\john\perf_test\bugbait_high.vmf 9325
hl2-wc-maps\auto_compile\e3_bugbait.vmf 9305
hl2-wc-maps\sawyer\e3_bugbait.vmf 9305
hl2-wc-maps\sawyer\d2_prison_03.vmf 8897
hl2-wc-maps\sawyer\pre_prison3.vmf 8894
hl2-wc-maps\sawyer\e3_prison_4.vmf 8723
hl2-wc-maps\sawyer\d2_prison_02.vmf 8659
hl2-wc-maps\sawyer\pre_prison2.vmf 8631
hl2-wc-maps\sawyer\e3_prison_1.vmf 8602
hl2-wc-maps\sawyer\e3_prison_2.vmf 8592
hl2-wc-maps\prefabs\prefab_prisonOffice.vmf 8591
hl2-wc-maps\streetwars\sw_prison_barney.vmf 8565
hl2-wc-maps\sawyer\prison_demo.vmf 8491
hl2-wc-maps\sawyer\e3_prison_3.vmf 8439
hl2-wc-maps\sawyer\d2_prison_04.vmf 8435
hl2-wc-maps\sawyer\d2_prison_05.vmf 8433
hl2-wc-maps\sawyer\d2_prison_06.vmf 8414
hl2-wc-maps\sawyer\pre_prison5.vmf 8391
hl2-wc-maps\sawyer\pre_prison4.vmf 8315
hl2-wc-maps\sawyer\pre_prison4_orange.vmf 8107
hl2-wc-maps\justin\cellblock1.vmf 7953
hl2-wc-maps\sawyer\pre_laundry.vmf 7825
hl2-wc-maps\auto_compile\e3_phystown.vmf 7714
hl2-wc-maps\d1_town\e3\e3_phystown.vmf 7714
hl2-wc-maps\e3_phystown\e3_phystown.vmf 7714
hl2-wc-maps\sawyer\prison1.vmf 7703
hl2-wc-maps\justin\cellblock1-cell3gameplay.vmf 7658
hl2-wc-maps\sawyer\proto_turret_defense.vmf 7579
hl2-wc-maps\sawyer\prison2.vmf 7533
hl2-wc-maps\randy\proto_laundryroom.vmf 7477
hl2-wc-maps\prototypes\proto_laundryroom.vmf 7477
hl2-wc-maps\jweier\testroom_showers.vmf 7457
hl2-wc-maps\sawyer\showers_breakable.vmf 7446
hl2-wc-maps\justin\cellblock2.vmf 7439
hl2-wc-maps\randy\proto_cafeteria.vmf 7381
hl2-wc-maps\prototypes\proto_cafeteria.vmf 7381
hl2-wc-maps\randy\proto_cellblock.vmf 7376
hl2-wc-maps\prototypes\proto_cellblock.vmf 7376
hl2-wc-maps\sawyer\prison.vmf 7208
hl2-wc-maps\sawyer\cellblock3.vmf 7118
hl2-wc-maps\d1_town\e3\e3_phystown3.vmf 7001
hl2-wc-maps\eric\laundry_props.vmf 6972
hl2-wc-maps\sawyer\rallypoint1.vmf 6943
hl2-wc-maps\sawyer\cafeteria.vmf 6938
hl2-wc-maps\d1_town\e3\e3_phystown2.vmf 6913
hl2-wc-maps\sawyer\rallypoint2.vmf 6898

Miscellaneous Files

oldtrans.txt

  • Date: 1999-2000
  • Identification: Go into the textfile, and check to see if the file is there. Beware, though - textures were replaced in Half-Life 2's development. Be careful in making sure the texture fits before assuming it is from this era.
  • Explanation: As mentioned in Hyper Era, oldtrans.txt is a guide for a Perl script, contained in "bin/wadtomaterial.pl", which is the script that was used to convert early WAD-based materials into a later format. It mentions a large number of early location names often unseen elsewhere, such as "urb", "spi", and "hyp".

hl2_scripts.dsp

  • Date: 2000-2001
  • Identification: Go to /hl2/scripts/hl2_scripts.dsp, and open it in a text editor. Have a look around. Does what you are looking for appear in it?
  • Explanation: hl2_scripts.dsp is an index of Half-Life 2's script folder from an early period in development. A number of interesting models are mentioned in it, in particular Sackticks, of which this is one of few of their in-Leak mentions.

References

  1. Cylinder maps are textures that "go around" the model, rather than look at one side of it.
  2. posted by blackphoenix on august 16th 2016 on the now deleted facepunch forums