a-b-street / a-b-street/abstreet

Web client performance

Open
#377 11 comments 0 reactions 0 assignees View on GitHub
good first issue
Dominant language
Rust
Stars
8.2k
Forks
380
PR merge metrics
No merged PRs in 30d

Description

Some different ideas for smoothing out the web client:

- The `.wasm` binary is around 50MB, which makes initial startup time quite sad. Gzipped is around 20MB. I can't find any option to enable this in `wasm-pack`, because I think people generally just configure their web servers to do compression on-the-fly if the HTTP client sends `Accept-Encoding` headers. S3 doesn't support this, but I think it's possible to upload a `.wasm.gz`, point to it from the `.html`, and set the `Content-Encoding` header properly. Just need to test this and make sure browsers understand it.
- Keep the `Scenario` for the current map in memory after loading it from a file. Otherwise, everytime the player resets to midnight in many gameplay modes, they have to download the file again!
- In `wasm_loader::FileLoader`, display a progress bar with bytes downloaded / total length. I found `set_onprogresss` for `XmlHttpRequest`, but actually, we're currently using `web_sys::Request`, which is different. Can we switch?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.