3.0.3b Patch Notes

1.1GB? See you tomorrow errybody!
Just a heads up, the searing ray bug still seems to be a problem, :/
though it is greatly reduced, to the point almost none existence.
It's been a few years since I last looked at how Steam updates were implemented, but back then they were essentially a list of changes to perform on which files in the title.

The fundamental operations are something like "insert this chunk at this point in the file, shifting all the data back", "remove this chunk", "replace this file completely". If memory serves me right, these changes can include unchanged data if it makes the chunk processing easier.

If you have something with a ton of distinct files on disk for assets, an update rarely contains more data than needed, as they simply replace the individual files or modify parts of them.

Path of Exile keeps all its assets in a single GGPK file with a virtual filesystem inside the file, much like a fancy-pants custom ZIP archive. The basic contents of the file is two kinds of chunks, a directory entry holding the directory name and offsets into the package for all the entries in the directory, and file entries that contain the metadata of the file and the actual data. There can be holes and unused data between these chunks, as it's an intricate web of file offsets keeping everything together.

Some of the old guard on the forum may be familiar with the joy of "optimizing" your bloated and fragmented GGPK file back in the day, which boiled down to taking a GGPK that had gone through a lot of patching, full of holes and entries out of order - writing out a solid compacted new one from scratch.

This means that if you want to modify an asset as a developer, you have a few choices.

You either change the data in-place, possibly shifting the rest of the contents or leaving holes around when it shrinks; or you put the data in any holes of large enough size you can find, or append the data to the end. This gets even more fun when you change contents of the "directories", as they are also interspersed around the file.

For baked data like 3D assets, textures, and audio, it's quite common for a slightly changed file to bear very little resemblance to the previous version of it, as very little of the tooling is designed to minimize such differences.

Depending on how sophisticated the internal tooling is to generate the new GGPK file and what holes can be reused, there may be a lot of changed offsets as file and directory entries change size and place. They can aim to make the tool make as few changes as possible, but at some point it's a tradeoff between patch size and actual runtime performance of the game.

The tradeoff is likely in the favour of snappy runtime performance, particularly as it's an aspect that hits hard against HDD players where every random-access seek costs a lot of time at a point where you may not quite like it to.

I'm basing this post mostly on my 2015-era GGPK inspection tool and vague knowledge of how the older Steam patching system worked. It's quite possible that both have changed somewhat by now, but the core ideas still hold. I'd link the source for it, but it seems like someone didn't bother commenting it <_<

I guess that the TL;DR of this is - not all of patches is actual data, a lot of it may just be due to how patching fundamentally works.

If a GGG rep want to pipe in on how it actually works and make me look silly and outdated, please do :D
They just need to get rid of one big fat GGPK file system.
Prophecy robe still looks like garbage
Real knowledge is to know the extent of one's ignorance.
Ignorance more frequently begets confidence than does knowledge.
https://joeduncan123.imgur.com
https://joeduncan1234.imgur.com
3.0.3 Patch Notes
Added support for the 3.1.0 supporter packs.
Added 3D art for Eber's Unification, Inya's Epiphany, Volkuur's Guidance and Yriel's Fostering.
Fixed a client and instance crash with Scorching Ray.
This patch is quite large, because it pre-patches some internal changes for the upcoming 3.1.0 expansion, to reduce the download size on launch day.


So, I think that contains more thing from 3.1 and btw Supporter pack graphics...
Models for all armor piece for all classes, effects etc.
@freezEpica The base 3.0.3 patch was indeed rather hefty, which makes sense in that it shipped a whole bunch of new assets.

What people (and I) seem to be surprised over is that while 3.0.3b touches some rigs, the changes are surprisingly hefty for the amount of data that they ought to touch. The intent with my post was to bring some light on why patches don't necessarily contain the minimal changeset.

I wish I had managed to save off a 3.0.3 archive before 3.0.3b snuck onto my machine, but no luck, would've been fun to look at what actually was done.
Give download path possible on website ! Update client this is loooong timeeee.... :-(
"
Timbroslice wrote:
revert the aoe nerf changes.


these will not be reverted.
The bigest bug is not yet addressed even - ES shitstate !
Indi game developer, passionate gamer, 22 year of programming, 32 years of playing RPG's started with books and board games.

If Your characters tab is set to private - Your arguments is already invalid!

Report Forum Post

Report Account:

Report Type

Additional Info