The Potential of File System Streams for Game Developers

Started by
8 comments, last by Evil Steve 17 years, 11 months ago
Today I read this article about file system streams in The NT Insider. Link. To summarize, modern Windows file systems define these things called file streams which are the compartments within a file used to store its data. Typically a file will have one data compartment (stream) for its information but it is possible to have files with additional streams of "hidden" data, basically additional files within a file. This got me thinking. What potential do additional file streams have for game developers? I've been thinking of data hiding for one. It would be pretty sick to have a bitmap that when opened normally displayed a standard image but contained another stream with the actual game data. What are your thoughts on this?
....[size="1"]Brent Gunning
Advertisement
Using a filesystem feature unique to NTFS will create a few headaches when doing porting to consoles or alternative OSes. It'll also likely make your game break once MS moves on from NTFS in the semi-near future.
Your link is broken.

Relinky.

John B
The best thing about the internet is the way people with no experience or qualifications can pretend to be completely superior to other people who have no experience or qualifications.
Telastyn- Good point and I think that should be kept in mind for anyone doing development outside of Windows. I know FAT32 and NTFS both contain support for file system streams. Maybe others? They don't appear to be going away in the future but sure there's room for caution.

In what ways could we use them to our advantage for game development?

Quote:Original post by JohnBSmall


Thanks. Fixed now.

Edit: FAT32 doesn't seem to have file streams. Shrug.

[Edited by - skittleo on April 29, 2006 1:30:20 PM]
....[size="1"]Brent Gunning
Er, no. To my knowledge FAT32 does not support alternative streams... [hunt for link]

This implies that it doesn't.

This [and most other links I've found] refer to it explicitly as NTFS Alternative Data Streams.

I don't have any FAT32 to try it on unfortunately...
Other than for simple obfuscation, they aren't all that useful for games. On Windows, it'd require NTFS. If the hapless user moved the file from NTFS to FAT32 and back again, the stream would be gone. If they copied the file via FTP or out to a non-Windows network, the alternate stream would be lost as well.

They might be good for storing state information or saved games, but don't expect a hacker to be thwarted by it for more than a few minutes (if that).

Robert
Guild Wars uses a stream like aproach.

There is a single physical data file. When data needs to be transferred, it is stored as a stream. When needed, these are decompressed/decrypted into actual files. All files are stored "anonymously", no filenames are stored by the client.

Note: This is based on casual look at structure. The format was never public, and it was never completely reverse engineered. Even if modifications were possible, any tampering with local files would have no impact on proper functioning of the game itself, since the corrupt content is either detected, or would be updated on the fly.

Quote:Original post by Antheus
There is a single physical data file. When data needs to be transferred, it is stored as a stream. When needed, these are decompressed/decrypted into actual files. All files are stored "anonymously", no filenames are stored by the client.
I'm pretty sure that has nothing to do with NTFS ADS at all.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by skittleo
Today I read this article about file system streams in The NT Insider. Link.
To summarize, modern Windows file systems define these things called file streams which are the compartments within a file used to store its data.


It might by somewhat useful for viruses.
<offtopic>
Ooh, that's nifty [smile] I'm gonna play with file streams now...
</offtopic>

This topic is closed to new replies.

Advertisement