Hiya, to coordinate the WASM effort, it would be good to have a “living document” so we can track what is happening.
This post is a Wiki. Please edit this post if there is any relevant information to add / amend.
- Contribution guide – Guide on how to set up your development environment, and commands to run.
- WASM Issues – Pick something from here to do.
- WASM Rush (Project Board) – Bird’s eye view, who’s working on what.
- WASM Effort (Forum Thread)
Discord – Chat with other people on the
Please keep the WASM Rush project up to date with the tasks that you are working on. Feel free to expand a task into multiple sub tasks and update the board.
Tag issues with:
feat: WASM support
and put it in the
WASM Rush project.
Please assign yourself to an issue so we know you are working on it, and unassign yourself when you are putting it down / pausing it, so someone else may pick it up.
Note: There is nothing wrong with going halfway then stopping. Every effort counts, even if it simply demonstrates a particular approach isn’t feasible.
I would encourage people to tag-team if / when possible: “This is what I tried, this is what needs to be done next. Feel free to push to the branch.”
Ideas to work on, when the project is able to take it:
The fifth post in this thread summarizes the initial efforts which informed the base of this work.
Week 1: Baseline
- Amethyst compiles to WASM.
- Repository forks / branches created.
- Contribution instructions.
- Basic CI.
Week 2: Discovery
- Many limitations discovered around:
- winit event loop and WASM event loop requirements
- web worker threading requirements
- audio loading requirements
- texture loading requirements
- Assets load from HTTP source
Week 3: 90% Of The Time We Don’t Crash
- UI pass works
- WASM app doesn’t crash 90% of the time from double borrow mut in winit.
Week 4: Sounds Good
- GL depth buffer fix – rendering is corrected in more cases.
- Audio now plays
Week 5: Tidying
New this week:
Input bindings are loaded from server. (#2214)
amethyst_testupdated to work with winit 0.22.0 event loop. (#2245)
This means if you want to run tests on CI with the GL rendering backend, it is now possible – set up XVFB and run tests through that.
Week 6 Update: Fin Ack
New this week:
- UI Coordinates / Screen Dimensions correction (#2247, gfx#3225)
- Configurable Web Logger (#2249, #2250, console_log#6)
- Net Server and Client (#2251, #2253)
These were based on the End-to-end issue discovery issue.
Please add yourself to the list.
|Who||What are you happy / keen to work on||When are you actively available|
|@jojolepro||parallel/specs/general compilation/wasm GOL example(mozilla contract thingy)||Feb 28 to March 8, 5h/d|
|@azriel91||happy to work on most things, less on graphics / math / 3d stuff||March 16th to April 24th, 20h/w|
|@ishitatsuyuki||audio first, maybe rendering/windowing later||Until March 25th|