Hacker News new | past | comments | ask | show | jobs | submit login

The 260 path limit is a pain for organizing media. It's not surprising most applications/games store their media in giant blobs instead of just individual files. This makes software updates a pain since it requires users to download the entire blob if you can't diff the blobs or if the diff corrupts the blob due to mismatched implementation versions.



Mostly blob based game assets is a system motivated by consoles, then reused on pc to keep build process consistent.

You'll see older pc centric game engines use loose files. With the advent of ssds on consoles we might see a return to bunch of files approach as it keeps patches smaller.

Steam and EGS updating handles binary diffing wonderfully. While consoles, not so much. Specifics are NDA of course but I bet any game dev reading will know who I am talking about when I say: "platform x has a horrible diffing algo yet requires approvals for updates over size Y". If I could ship a loose filesystem and get reasonable load times I would just for the update package advantage.


> Mostly blob based game assets is a system motivated by consoles, then reused on pc to keep build process consistent.

No, packing individual files into archives makes sense on PCs too due the native filesystem usually having a much bigger per-file storage overhead as well as non-negligible open() times - the second is especially true for Windows with "Anti Virus" software installed.

> You'll see older pc centric game engines use loose files.

Some maybe, but packing game assets into archives is as old as Doom and has been the norm all this time.

> Steam and EGS updating handles binary diffing wonderfully.

Steam handles binary diffin now, but it was not that long ago that it re-downloaded the whole changed file.


giant blobs is a much faster solution than thousands of individual files. NTFS per-file overhead is significant.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: