Measure: all of them. Nothing on this page is quoted from the briefing or from
anywhere outside the object except where the row says so. <G> stands for the
installation directory, which is a live Steam install and is never named in
this repository.
| what | value | command |
|---|---|---|
| files | 4,769 | find "<G>" -type f | wc -l |
| directories | 99 | find "<G>" -type d | wc -l |
| bytes | 17,519,466,565 | du -sb "<G>" |
| bytes, second way | 17,519,466,565 | python tools/instcensus.py "<G>" notes/census.txt |
| bytes, third way | 17,519,466,565 | grep SizeOnDisk "<steamapps>/appmanifest_261510.acf" |
| distinct SHA-1s | 4,570 of 4,769 | cut -f1 notes/sha1-all.txt | sort -u | wc -l |
| unreadable files | 0 | awk -F'\t' '$1=="!"' notes/sha1-all.txt | wc -l |
| redundant bytes | 1,330,831,607 = 7.596 % | python tools/dupes.py notes/sha1-all.txt |
| what | value | command |
|---|---|---|
| manifest | appmanifest_261510.acf, 870 bytes |
stat -c%s "<steamapps>/appmanifest_261510.acf" |
| app id | 261510 | same file |
| build id | 297944 | same file |
| depot / content manifest | 261511 / 6231652133838335837 | same file |
| download size | 14,501,517,920 | same file |
| installed size | 17,519,466,565 | same file |
| transfer saving | 3,017,948,645 = 17.23 % | 17519466565 - 14501517920 |
| redacted fields | LauncherPath, LastOwner — two fields of this user's, never printed |
see 03 |
| what | value | command |
|---|---|---|
| files | 1,035 .bk2 |
awk -F'\t' 'tolower($4)==".bk2"' notes/sha1-all.txt | wc -l |
| bytes | 14,480,392,036 = 82.65 % of the object | same |
| codec | Bink 2, magic KB2i on all 1,035 |
python tools/bk2.py "<G>" notes/bk2.txt |
| total running time | 20,014.286 s = 5 h 33 m 34.3 s | same |
| size-field self-check failures | 0 of 1,035 | same |
| geometry | 2048 × 1024 on all 1,035, no exceptions | awk -F'\t' 'NR>1{print $6"x"$7}' notes/bk2.txt | sort -u |
| frame rate | 23.976 fps (24000/1001) on 1,028; 25 fps on 5; 30 fps on 2 | awk -F'\t' 'NR>1{print $8"/"$9}' notes/bk2.txt | sort | uniq -c |
| audio tracks | exactly 1 on all 1,035 | awk -F'\t' 'NR>1{print $13}' notes/bk2.txt | sort -u |
| flags | 0x10 on all 1,035 | awk -F'\t' 'NR>1{print $12}' notes/bk2.txt | sort -u |
| longest | GameIntro_OpeningCinematic.bk2, 404.1 s, 560,814,652 B |
sort -k11 -rn notes/bk2.txt | head -1 |
| shortest | BlackVideo.bk2, 0.5 s, 6,296 B, four copies |
same, head from the other end |
| byte rate, median | 632,062 B/s (p10 433,655 · p90 928,242) | awk -F'\t' 'NR>1{printf "%.0f\n",$14/$11}' notes/bk2.txt | sort -n |
| other codec | 3 .ogv, 48,821,155 B, Ogg Theora, two of them promos |
awk -F'\t' 'tolower($4)==".ogv"' notes/sha1-all.txt |
| native decoder | bink2w32.dll, 340,992 B, RAD Game Tools 2.3.3, 2013-12-12 |
python tools/pe.py "<G>/bink2w32.dll" |
| what | value | command |
|---|---|---|
| XML in the installation | 1,326 — 1,150 spelt .XML, 176 spelt .xml |
awk -F'\t' '{print $4}' notes/sha1-all.txt | sort | uniq -c |
XML under ExternalData |
1,325 — 1,150 .XML, 175 .xml |
the 1,326th is Mono's mconfig.xml |
timing files (CaptionData) |
1,321 — 1,060 cutscene, 255 conversation, 6 GUI | python tools/closure.py <data> _work/keys |
<caption> elements |
3,889 | same |
<stringID> elements |
3,890 — one file has a caption with two | same |
distinct stringIDs |
3,262 | same |
| files that are not well-formed XML | 4 of 1,321 | see 14 |
| spreadsheets | 5, SpreadsheetML (Excel 2003 XML), 1,881,744–1,956,850 B each | python tools/sheet.py <strings> |
| distinct keys | en 6,535 · de 6,647 · es 6,644 · fr 6,645 · it 6,639 | same |
| union / intersection of all five key sets | 6,941 / 6,482 | comm over _work/keys/*.u |
| forward closure failure (en) | 294 of 3,262 stringIDs have no English string |
python tools/closure.py |
| backward closure failure (en) | 3,567 of 6,535 English keys are named by no timing file | same |
| what | value | command |
|---|---|---|
| player executable | TeslaEffect.exe, 11,288,064 B, sha1 4b9b9aa5ca916faa8d6fc5fd39823246350807b4 |
python tools/instcensus.py |
its TimeDateStamp |
2014-01-08T12:22:29Z | python tools/pe.py "<G>/TeslaEffect.exe" |
| its version resource | FileVersion 4.3.3.96362, Unity Version 4.3.3f1_c8ca9b6b9936 — no CompanyName, no ProductName, no copyright |
same |
| drive-lettered build paths in it | 101 distinct, from four vendors' machines, none the studio's | python tools/paths.py "<G>/TeslaEffect.exe" |
| the studio's assembly | Assembly-CSharp.dll, 1,562,624 B, sha1 c48a9ad58b4aee666c9db04c201a362567d9b421 |
python tools/instcensus.py |
its TimeDateStamp |
2014-06-11T21:55:36Z — five months after the player's | python tools/pe.py |
| its version resource | every string field present and every one empty | same |
| its drive-lettered paths | 0 | python tools/paths.py |
| TypeDef rows | 883 (882 real types plus <Module>) |
python tools/clrmeta.py <dll> |
| MethodDef rows | 6,617 | same |
| Field rows | 7,230 | same |
#US string literals |
5,002, 146,706 characters | same |
| assemblies referenced | 5 — UnityEngine, mscorlib, System.Core, System, System.Xml | same |
assemblies in Managed/ |
9, 7,490,560 B, of which 1 is the game | python tools/instcensus.py |
| identifiably third-party types inside the game's assembly | 59 of 882 = 6.7 % — UFPS (22), Unity's Stealth tutorial (23), Bink binding (11), iTween (3) | 11 |
| what | value | command |
|---|---|---|
| engine | Unity 4.3.3f1, build hash c8ca9b6b9936 |
python tools/pe.py "<G>/TeslaEffect.exe" — the Unity Version key of the executable's own version resource |
| stated again | 4.3.3f1 in all 47 serialized files, at offset 20 of each header |
python tools/unity.py "<G>/TeslaEffect_Data" |
| serialized format version | 9 on all 47 | same |
| serialized declared size vs real size | matches on all 47 | same |
| target | PE32, i386, 32-bit Windows; linker 10.0 | python tools/pe.py |
| scripting runtime | Mono, CLI metadata v2.0.50727, runtime 2.5 |
python tools/clrmeta.py |
| audio | FMOD, 53 of the executable's build paths are C:/buildslave/fmod/build/src/*.cpp |
python tools/paths.py |
| physics | NVIDIA PhysX, build paths under c:\BuildAgent\work\3d1e9e6e6eefaa7f\LowLevel\ |
same |
| video | Bink 2, one native DLL plus two Unity plugin DLLs | python tools/pe.py "<G>/TeslaEffect_Data/Plugins/"*.dll |
| the engine's own version is inside the object | so output_log.txt — a runtime log of this user's machine — was not needed and is not used for it |
see 04 |
| what | value | command |
|---|---|---|
.meta files |
2,323, 214,684 B | awk -F'\t' 'tolower($4)==".meta"' notes/sha1-all.txt | wc -l |
| assets that have one | 2,236 of 2,446 | 15 |
| assets that do not | 210 | same |
.meta describing a directory |
86 | same |
.meta describing nothing at all |
1 — Video/AA/Slade.meta, a folder that is gone |
same |
| distinct GUIDs | 2,319 of 2,323 — four GUIDs are used twice | same |
| importer kinds | TextScriptImporter 1,197 · DefaultImporter 1,049 · folderAsset 73 · MovieImporter 3 · TextureImporter 1 |
same |
| what | value | command |
|---|---|---|
| distinct mtime hours across 4,769 files | 1 | cut -f3 notes/census.txt | cut -c1-13 | sort -u |
| what that means | the filesystem dates the installation, not the product | 04 |
| the product's own dates | spreadsheets created 2013-11-20T17:42:33Z, last saved 2014-04-14 to 2014-05-09, English printed 2014-04-24T20:59:23Z | python tools/sheet.py |
| the build's own date | Assembly-CSharp.dll 2014-06-11T21:55:36Z |
python tools/pe.py |
| a date inside a path | d:\users\nbtester\x86win_nightly\branch-13_0gt\20130119_010000\... |
python tools/paths.py |
| what | value | command |
|---|---|---|
| leftover, counting duplicated video | 1,377,610,483 B = 7.863 % of the object, 46.070 % of non-video | python tools/leftovers.py notes/sha1-all.txt |
| leftover, not counting it | 46,780,308 B = 0.267 % | same, classes 1, 3 and 4 |
| largest single leftover file that is not video | browscap.ini, 311,984 B, a table of web-browser user agents |
sort -k1 -rn over the class |
| ASP.NET WSDL help pages shipped | 2, 58,196 and 60,453 B, not byte-identical | python tools/dupes.py |
| empty directories | 2 — Localization/Credits/ and Save/ — both with a .meta |
15 |
files named - Copy or (2)/(3) |
18 + 3 | 14 |
| what | value | command |
|---|---|---|
| studio, in the object | BigFinishGames — in mainData as ASCII, and twice in Assembly-CSharp.dll as UTF-16 |
grep -c on the two files, 10 |
| where exactly | in the path your saved games go to: /BigFinishGames/TeslaEffect/ under /Documents |
python tools/clrmeta.py <dll> --us |
| studio, in the executable's version resource | absent — the field exists and is not filled | python tools/pe.py |
| the only binary that names its maker | bink2w32.dll — RAD Game Tools, Inc., Copyright (C) 1994-2013 |
same |
| names of people, from document metadata | James (Author of all five sheets), masonj, courtneyj |
python tools/sheet.py |
| a fourth name, from a comment | steve w, signing the comment block of AskAbout_Definition.xml |
head -60 on that file |
| credit videos | MainCredits.bk2 271.1 s · BackerCredits.bk2 188.6 s — not read, they are video |
05 |