Is there sufficient external API for programming Go variants browser extensions?

In the case of One Color Go, I believe programming a browser extension for it wouldn’t be so hard, since it would only be something aesthetic — or is there another subtlety I haven’t accounted for? However, in the case of another variant, say, Tetris Go, changes to the rules of the game would be necessary, which could conflict with the rules of classical Go. What I wonder is, then: is it possible to program a browser extension for Tetris Go at this point, for example?

As far as I was able to investigate, my answer would be no. But I’m here for a discussion and feedback if anyone is interested.

Since the devs seem to not be very interested in implementing Rengo, One Color Go and many other Go variants, I think the community could lend a hand to this problem, through browser extensions or something more modular and kind of external, rather than going through the whole project.

Quite frankly, I think that even more important than developing new features for OGS would be breaking down and teaching the community how to navigate the code at this point — I would even suggest creating a YouTube channel with somebody teaching this, I would be very interested in seeing how the devs here work. I’ve tried to understand the code base on my own two or three times already but it was too overwhelming for me — and I’m a dev as well, perhaps not as savvy or experienced, but… —, and I just couldn’t help but feel anxious all the time at the sheer behemoth of a project this platform has become — note that I’m not saying anything about quality, it’s just a lot of code.

It would be very curious and beneficial, in my opinion, to see OGS going into the direction software such as Slack or Microsoft Teams have taken, in terms of great modularity for third-party extensions.

Do you agree? Disagree? Do I have distorted views?

Playing one colour go on your end is trivially easy, just change your stone choice to flat colour and choose the same colour for both players.

You can take your opponent at their word that they are playing the same way… I don’t see how cheating with an app would be any harder than just lying about stone colour.

1 Like

If you really want to play Go variants as well there’s a dedicated server for it, the variant go server

https://go.kahv.io

There’s no accounts or anything, just set up a game and play. Or ask some people on their discord if they want to play.

They have rengo, Tetris go, one color go and many others, the code is on GitHub and one could suggest new variants or try to submit a pull request for others.

4 Likes

As @BHydden already noted, unilateral one-color-go is possible by just adjusting the stone colors (without any browser extensions), but that does not force your opponent to do the same, so you’d have to agree to that beforehand and have it only be enforced by an honor-code.

It seems difficult to imagine how to properly implement any significant Go variant with just browser extensions or front-end modifications, and in nearly all cases it seems essential to make back-end changes as well.

By the way, it is worth mentioning that the front-end code for OGS is open-source, but the back-end remains closed-source. Thus, for features and changes (not just variants) that can be addressed in the front-end, one can submit pull requests, or at least open issues/suggestions. I think that’s a much better route than trying to hack something together with browser extensions.

As for actually playing Go variants, the server mentioned by @shinuito is one place to check out. However, we have also played a bunch on interesting Go variants among the community on this server through a combination of OGS demo boards, standard games (but with agreed upon rules/mechanics), forums posts, and/or some amount of external tools (like @Vsotvep’s tool for sharing multi-color Go board positions: https://vsotvep.github.io/MulticolorGo.html).

Check out these categories: #go-variants (where we primarily discuss variants) and #forum-games (where we have played some variants).

There are endless variants to try, but a limited amount of developer time (even accounting for the broader community). Hence, I think it is important to carefully consider which variants might actually warrant the time and effort investment for implementation. The test games of various variants that we’ve played here on the forums might help with figuring out which are actually interesting and compelling for a larger audience.

3 Likes

https://go.kahv.io

Thank you, I didn’t know about this server.

By the way, it is worth mentioning that the front-end code for OGS is open-source, but the back-end remains closed-source.

This is indeed a gigantic limitation I was not aware of. I was assuming everything was open-source, my bad then.

Thus, for features and changes (not just variants) that can be addressed in the front-end, one can submit pull requests, or at least open issues/suggestions.

The point of doing things through browser extensions was not to hack things in alternative ways, but to help with modularity and also save the core devs’ time.

https://vsotvep.github.io/MulticolorGo.html

Yet another useful link, thank you.

Hence, I think it is important to carefully consider which variants might actually warrant the time and effort investment for implementation.

Yes, I agree, in general. However it’s also worth mentioning that implementing one variant is likely to also pave a good amount of the way towards implementing others.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.