@tehhowch makes an interesting point in https://github.com/endless-sky/endless-sky/pull/6164: the official Endless Sky project doesn't want a web build built on PR or in CI; that would limit the project to things that are possible to do on the web.
I can think of a couple versions of this argument.
- If a PR adding a new dependency also has to make it work for the web, that makes it much harder to contribute. Even breaking a CI test that doesn't officially block merging can have this effect.
- If the web build is official then the big picture design of the the project is affected: adding something cool or useful that doesn't exist for the web platform is not longer an option.
It's obviously up to the Endless Sky maintainers what to upstream, but beyond that I'm mostly convinced and if I were in their shoes I'm not sure I would! I think it would be beneficial for that project's processes to have web builds available, but I understand @tehhowch's point that just adding the build is a significant change in direction for that project.
Which leaves me to decide what the goal of this project is! Years ago, I wrote a game that allowed users to program their ship and missiles which reused Endless Sky assets and data file formats. That made me want to do something similar for the larger community of Endless Sky players. After a few false starts, last year I got help with porting the game to the web with the initial goal of upstreaming the changes. We got very close, but I've now hit the limit of what the project maintainers are interested in merging. They have been and likely will continue to be willing to accept changing that make it easier to do a web build, but at this time don't want the web build in the repo.
Thinking about what excites me, it's
- enabling people to play this on the web
- helping developers of the project by providing tooling like the formation tool
- helping plugin authors by providing tooling like a data file editor
I'm also still interested in some of the wackier stuff:
- a platform to link directly to specific save games and missions in order to share bite-size experiences like a single mission
- allowing players to write code to control their ship (running a WebAssembly interpreter? Lua? other interpreter?) and sharing these programs
So what's the goal?