September 25, 2004
How to give away your games code by accident!
Yesterday one of the guys I work with discovered that a recently released PlayStation2 game has a complete *annotated* source listing on the DVD, sitting as a text file for everyone to see (if they put the DVD into a PC).
This is incredible, the source lists both the games code plus the library code in a format that experienced programmers could easily take and learn from. A kind of involuntary Open Source :-)
I'm not going to name the game here (contact me by email if you want more info). I'm more interested in the incredibly lax checking of the master disk for that particular product. How this can get through to the consumer is a mystery to me (although do I understand the pressures involved at the end of a project)
To get this file onto the DVD there are several things that need to happen.
1. The file must be generated and kept (not always done, it's often discarded as an intermediate file by the compiler)
2. The Lead Programmer needs to place that file into the games disk layout (or whoever does this job) - it would usually reside somewhere unrelated for most projects.
3. The Producer/QA Lead have to not notice the file is there
4. Sony have to not notice the file is there.
Now given that the file was called "SOURCE.TXT" you'd think it might be obvious :-)
Then again, on our most recently released game, I never actually searched through the disk looking for anything inappropriate - mostly because we had the process down to a fine art and it was all automated from a clean directory structure... but you can be damn sure I will be looking for ways to improve our process.
How many people actually get to place files on the disk ? Technically it's just one, but that person relies on other people placing appropriate material in a directory structure that grows and changes over 18 months, and by the end nobody can quite remember which files are needed and which are not!
We've seen in the past that innapropriate material has made it's way onto game disks, and in other cases sourcecode has been stolen, but this is the first time I've seen (first hand) that a company has unwittingly published a version of their source on the gold master and it's made it into the stores!
I'd hate to see the lawyers faces when they find out. I have no idea how this would be dealt with in court, you can just look at the file in a text viewer so there's no 'evilness' on the consumers behalf to look at the source.
If you are responsible for mastering your companies game, take the time to check what you're mastering - make sure there's nothing there thats not meant to be there!
One technique that can be used is to make a utility to list all the files accessed during a series of runs of the game, leaving you with a list of what hasnt been used - then see if anything there seems 'odd'. Games have been removed from the shelves for having 'adult material' lying around, or for containing copyright material (even though the game never accessed the files).
Does anyone know a better way ?
Posted by Zaph at September 25, 2004 12:16 PM
TrackBack URL for this entry:
Its easy to do.
Freedom Force shipped with an unprotected exe that had been accidently dragged into the system subfolder.
All you had to do to crack the game was drag it back out.
Posted by: Jay Kyburz at September 27, 2004 08:02 AM
Is there a support forum for that game? Has anyone spotted it/mentioned about it there yet?
Posted by: Souri at September 28, 2004 10:58 PM
Actually, it wouldn't be Tiger Woods PGA Tour 2005, would it? It's aparently getting recalled, citing "unprecedented disc production issues".. the mind boggles. :)
Posted by: Souri at September 30, 2004 03:37 AM
Erm.. hate to piss on your fire.. but modern games have at least a few thousand source files, and would probably be named .cpp or something.
One file called "source.txt" doesnt sound like it's particular major.
At a guess (wihtout seeing it), i'd hazzard a guess that it's the in game script file.
Posted by: rubbish at September 30, 2004 09:30 PM
Sadly you are mistaken. I'm a Programmer and a Producer, I know exactly what I'm talking about.
The 'Source.txt' the the assembler output from the compiler, a file which is the result of compiling the entire set of .cpp files and generating and assembler listing for the final .elf (like a .exe). The listing is annotated with source code from thousands of .cpp files, any good programmer can read this file and get something useful out of it - including protected Sony code.
This file can then be assembled (with no other input required) resulting in the final game .elf file. You could modify it and still compile it, you could even reconstruct some (if not all) of the .cpp functions.
Posted by: Zaph at October 1, 2004 08:56 AM
Post a comment
Thanks for signing in, . Now you can comment. (sign out)(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)