Skip to content

v0.7.0-beta

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 20:19
· 184 commits to main since this release

Changed

  • 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.txt was 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, and vitrail/pack.txt is 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.