Skip to content

Map loading: arrives in 2-second bands, stutters the app, and says nothing about empty area #136

Description

@CaYatur

Loading is slow, arrives in visible steps, and stutters the app

Three separate causes, on top of the throttled cache hits in #135:

  • The client only asks again on the 2-second position poll. mapFetchTiles
    runs from mapDraw, so a viewport that needs six requests fills in over
    twelve seconds, in visible bands. When something is still pending it should
    ask again in a fraction of a second, not on the next heartbeat.
  • 64 chunks a request against a region that yields 1024 at once.
  • A real parse blocks the main thread for a few hundred milliseconds, which
    is what the app freezing during a load actually is.

Say what an empty area is

A chunk nobody has generated draws as nothing, so an operator cannot tell "not
loaded yet" from "nothing there" from "broken" — and waits for a load that will
never come. Unrendered area needs to look deliberate: a themed panel in the
site's accent colour with a line saying nobody has been here.

Draw only where players have been

An option for the desktop: render only the chunks the server has actually
generated and stop at that boundary, rather than reaching further out as the
view moves.

Structure markers deserve icons

They are single letters in coloured dots. Each kind should have a small drawn
glyph.

The performance settings need a note

They are per server and apply to every surface — the desktop, the panel and the
public site all read the same tiles. Sitting in the desktop map they read as a
setting for that window.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions