Description
I know that there's an open PR for the start of an ecosystem guide, but since this is one of our goals before the next meeting I wanted to have a general discussion and get people's thoughts about the subject without totally clogging up the review of kvark's specific PR.
The general subject of this issue is anything related to the gamedev-wg doing an ecosystem guide.
Assuming that we do make an ecosystem guide, I feel compelled to ask: What format should such a guide take?
- Obvious first point: AreWeGameYet is already an ecosystem guide.
- We don't maintain it, though this is not itself a problem because it does get active attention.
- There's a lot of open issues but not many open PRs. It seems like once someone does the PR work that PR gets merged fairly promptly, but the owner isn't constantly putting in the new entries themselves.
- AreWeGameYet is fairly un-opinionated regarding one library or another, it just sorta throws everything into the pile with minimal descriptions and lets readers figure things out for themselves.
- The Charter of this WG fairly specifically says that we should not be promoting one library over another.
- AreWeGameYet fills the space of an un-opinionated list of everything.
- The only good space after that is to have an opinionated list of everything (and perhaps some things don't even make it onto the list, which is itself an opinion).
Combined, these two items make me want to back up and ask: Do we make an ecosystem guide at all?
- I think that there should be an ecosystem guide that's says a lot more about each particular library in the guide. Like the Guide To Rust Graphics in 2019 that @icefoxen wrote. That article is really good, and frank opinions about the fitness for use of major crates is really valuable advice for the community.
- However, as soon as you say anything more than basic facts about each crate you start having to have an opinion about things, which is pretty close to "promoting one library over another", which the charter says for the WG to not do.
- I do recall from seeing some early discussions before the WG was formed that some folks wanted the WG to rally the community around one specific library for each particular programming element. Getting everyone to pour all effort into Amethyst or Nalgebra or whatever library. That clause in the charter seems to be a reaction to that idea, and a lesser statement of just saying "these libraries are actually fit for use for developing games right now [list here]" might be acceptable in the long term.
My conclusion from these facts: Either we have to change the charter at least a bit (not an action to be taken lightly!!) or we can't have an ecosystem guide that is usefully different from AreWeGameYet, and we probably shouldn't do a separate guide at all. Instead, we should just direct people to work on AreWeGameYet.
Thoughts on this? Or thoughts on anything else about the subject of an Ecosystem Guide?
Activity
17cupsofcoffee commentedon Aug 10, 2019
I'm a bit torn on this!
On the one hand, I feel like there's a massive need for a semi-official 'state of the ecosystem' post; something we can point new gamedevs to as a starting point that's not quite as overwhelming as AreWeGameYet. On the other, I think the WG not being too biased towards any one set of tools is really important.
For example, Icefoxen's guide to Rust game engines was pretty critical of Piston. Now, I think those criticisms were extremely fair, but there's a big difference between "this one guy says you shouldn't use Piston" and "this group that is somewhat officially linked with Rust says you shouldn't use Piston", and I'm not sure if I'd be comfortable with the latter. So that's the tightrope that needs to be walked, I guess.
icefoxen commentedon Aug 10, 2019
I sure as hell wouldn't want to proselytize my graphics library guide as an official position, and I heckin' wrote it. To write something like that, which IS baldly critical, you have to be unencumbered by other concerns and know that you are only speaking for yourself. It's much easier to say the things that you feel must be said when you are saying them from the outside, without any official status.
Easy option for the matter of opinion: have the ecosystem guide be a collection of other people's guides, without endorsing or criticizing particular ones. Just organize them by topic and note that some of them are opinionated. The WG could serve a useful role by having this index, and keeping it up to date, since guides go stale and get updated and so on.
Also for any collection of information there need to be clear rules for removing things as well; one of my biggest annoyances with arewegameyet is there's lots of stuff like
mold2d
andcorange-rs
which never went anywhere but they're still included alongside mature and actively developed stuff that's actually usable.17cupsofcoffee commentedon Aug 10, 2019
I'm super on board with this idea, both for ecosystem guides and just guides/blog posts in general.
Lokathor commentedon Aug 10, 2019
Yeah, if we end up with one guide we certainly don't want to go full Icefox spicy curry level of opinion with it. Something closer to a plain teriyaki level of opinion would potentially be appropriate: a useful guide for people who aren't sure where to start and who want someone to just suggest something to start with and where they might want to look, but not too strongly worded so that people don't get totally scared off of going their own route.
But I do strongly support the "list of guides" approach, now that I'm thinking about it.
aclysma commentedon Aug 10, 2019
icefoxen commentedon Aug 10, 2019
Now that I think of it, can we get the owner of arewegameyet, @doppioslash , in on this conversation to tell us more about their current status and what they want arewegameyet to be? I think that it can use lots of work but it also seems very much a passive maintenance effort, and there's stuff there that hasn't been updated since pre-Rust-1.0 days that I'd really like to clean out. (Hopefully it's not an opinionated statement to say that having
corange-rs
in the rust-gamedev/wg#3 spot under "game engines" isn't really helping anyone.)Could a semi-concerted effort by the WG to either rework the site or just make a bunch of PR's to bring it up to snuff be something people would consider?
doppioslash commentedon Aug 10, 2019
Personally, I'd want arewegameyet to stay an un-opinionated repository of everything that may be useful.
If you're going to make pull requests updating obsolete parts, they will be merged.
I don't like to remove libraries, but we could put on them an "obsolete" tag if they haven't been updated for a long time.
Some parts of arewegameyet work better than others. I think the list of libraries works well.
We ended up having a list of games and articles too. That felt like a good idea at the time, but they feel less useful and harder to keep updated now that the community is bigger.
doppioslash commentedon Aug 10, 2019
The lists could also be reordered to put the most useful libraries on top, though I'm not keen on the piles of discussion that may entail. If the wg manages to decide on an order, then we can reorder them.
icefoxen commentedon Aug 10, 2019
Yeah there was some discussion of that on the unofficial Discord. The acceptable options seemed to be "do nothing", "write code to order them randomly on each page load", or "write code to order them by how lately they have been updated and assume nobody's enough of a dick to try to game it". There's probably other good solutions; I'd be fine just by ordering them alphabetically or by some other obvious-and-arbitrary criteria as long as there was an "obsolete" tag or subsection to make it easier to search.
aclysma commentedon Aug 10, 2019
Lokathor commentedon Aug 10, 2019
crates.io can show reverse-dependencies, which seems like a fair starting point.
HeroesGrave commentedon Aug 11, 2019
Just throwing in my 2 cents:
My ecs crate is currently # 2 on arewegameyet despite its (relatively) terrible performance in benchmarks and the fact that I haven't been updating it for years other than merging the rare pull request from people using it. I have no interest in updating it because in order to make it "good" I had to rewrite it from scratch and now it's a completely different library (also specs is probably better).
I think a possible solution (which would require some effort) would be to run a regular "audit" of crates in the ecosystem to check for inactive projects and (only if they've been inactive for a while) contact the owner(s) to see what they think of the state of their project and in particular, whether people should consider using it for new projects. Crates that aren't intended to be used for new projects or whose owners have gone AWOL can be marked as such and put in a less prominent position in any sort of list/ranking (whether that's arewegameyet or some other resource).
While you could "game" such a system, there aren't really any benefits to doing so, and I think this would at least filter out a lot of projects that the owners are "done" with (which I think is the primary problem here). The main question is whether this approach would be worth the effort.
doppioslash commentedon Aug 11, 2019
One idea I had was to add a bit of frontend code, and make the list sortable by various criteria.
kvark commentedon Aug 14, 2019
Thank you for filing this @Lokathor and not derailing my PR :) ❤️
There is an obvious conflict: having a guide would have a great value for the community but we the WG can't be opinionated. Listing all the things like AreWeGamesYet isn't helpful enough to navigate the ecosystem, it's just better than doing a "crates.io" search. Having an opinionated guide is not helpful, since it will be changing often and there is no way to make all the participants happy.... But I think, there is a middle ground we could take to get the best of both sides.
We could list the existing libraries with some extra information that is:
Here is an example of such an entry:
Three-rs:
Note that some filtering needs to take place when talking about priorities, features, and (most importantly) users, e.g. I didn't include ones that don't have a screenshot in the Readme (with an exception of "plane-splitter" which I have screenshots for).
AlexEne commentedon Aug 15, 2019
Anyone against me moving this on the website repo?
I think that's a reasonable place for the ecosystem guide to have a page on once it's done. T1he PR has already started, but it's markdown so once that gets merged it's a matter of just opening a PR with adding it to the site too.
I'm on an issue cleaning spree :)
12 remaining items