v0.7.0-beta
Pre-releaseChanged
-
Distant Horizons no longer draws its own ambient occlusion and fog while a pack is drawn.
Between them they are three full screen passes over an image nothing downstream reads, so their
work was thrown away one pass later, and two of the three ran over the whole screen rather than
leaving it early. Both are on unless the DH menu says otherwise, so an install that changed
nothing was paying for them on every frame. They go back to whatever that menu says the moment a
pack is unloaded. -
Three things taken on every frame are now taken when something reads them. The search for a
lightning bolt walked every entity the world would draw, on every frame, to find the one kind of
entity that is almost never there; it runs once a tick now, which is the rate the reference
publishes that value at. The count of what the camera saw was taken on every frame for a line
printed once per pack. And the pack's number for an item was spelt out again at every submission,
where the number for a kind of entity had been remembered since it was written.
Fixed
-
Turning the shaders off and back on, or picking another pack, takes the game down far less
often. Two rings the far terrain writes its section corners into were closed the moment a pack
was unloaded, while a pass already recorded still held slices of them, and the graphics device was
lost a few seconds later with nothing in the log to say why. They belong to the engine now rather
than to the pack, so a load has nothing to close. It is not the whole of that crash: a second
fault of the same family survives it, and where the pack could not be put back once before, it now
takes somewhere between one and four goes. Issue 111 follows what is left, and until it is closed
a pack changed in game remains a thing that can end the session. -
The same pack now translates to the same text on every start. Four tables the translator
walks to write a shader were handed back in an order the runtime picks afresh each time the game
starts: the varyings a stage is owed, the vertex inputs a mesh has not got, and the volume
helpers a pack's three dimensional textures need. Two launches on the same pack could therefore
produce shaders that differ only in the order of their declarations, which is the same shader to
a reader and a different one to the game, so it compiled pipelines it already had. One warning
line about mesh elements a program computes from and does not get also listed its names in a
different order each run. -
One character no editor should have written no longer costs the player every pack.
vitrail/options.txtwas read as strict UTF-8, so a single byte from another encoding stopped
ANY pack from loading, under a message that named neither the file nor the encoding. A byte order
mark, which several editors add on their own, threw nothing and quietly ate the first setting of
the file. Both now cost one character of one value at worst, andvitrail/pack.txtis read that
way too. That file is also written through a temporary and moved into place, so a crash while it
is being written can no longer leave half a line behind, which read as no pack chosen at all. -
The shadow distance now bounds every chunk it is meant to, and not only the ones weighed one by
one. A group of chunks that merely reached into the distance was handed to the walk whole, so
everything standing under that group was drawn into the shadow map however far past the distance
it stood. Lowering the distance, from the pack or from the video settings, therefore saved less
than it should have, on the second walk of the world, which is the most expensive thing a frame
does here.