Collective development of a server for variants

This does bring up the question though, after capture are the quantum move positions still linked? It seems like they are, and I wasn’t aware when I wrote the rules description. :thinking:

2 Likes

Yes!

This wasnt obvious to me either from the written rules, but Zi clarified during testing:

We did find a minor issue, i.e., the quantum pairs should live or die together, so once they are removed, the paired positions are still paired, meaning if a new stone is placed on one board in one of the quantum positions, it should also appear in the paired position on the other board.

3 Likes

Oh, good to know! I’ll update the rules description then :slightly_smiling_face:

3 Likes

This variant is now available under the name Lighthouse! You can find the rules description and demo at https://www.govariants.com/variants/lighthouse/rules

@Jon_Ko and I are currently playing, and I’m streaming my perspective (without commentary) at Twitch

6 Likes

We’ve created a space on Element for the purpose of chatting, arranging games, feedback etc. (partly to make up for the lack of a chat).
Here’s the invitation link: https://matrix.to/#/#govariants:matrix.org (you can also find it on the About page.)

2 Likes

I found my old drafts for another 4-regular periodic pattern, which I’m thinking of adding to our collection. Any name ideas?

Edit (because I replied too often): I’m basically done with the implementation, just looking for a good name now :sweat_smile:
I searched a bit, but did not find an official name.

4 Likes

I’m not sure higher-dimensional Go works very well - although I’m happy to be proven wrong.

1 Like

Just to clarify, I want confirmation that the server uses area scoring or territory scoring, or whatever.

1 Like

Currently the server uses area scoring, and requires that all dead stones are removed manually (otherwise the automated score is wrong).

3 Likes

not wrong, just unexpected for most humans :stuck_out_tongue_winking_eye:

5 Likes

I think it depends what you mean by higher-dimensional go (and also what “works very well” means). There is definitely something special about the 2D grid, but there are some boards embed in higher dimensions which still use the 2D grid. Examples: toroidal go, Klein bottle

There are also 3D variants that are not based on embeddings of the 2D grid that appear to be playable. Check out the diamond lattice. Diamond Go. Haven’t played it myself so can’t say if it “works”, but at least worthy of exploration.

3 Likes

Thank you.

1 Like

My guess is that it comes down to the connectivity of the grid, or the liberties of the stones.

At least the lesson from Go on a hexagonal board is that it’s “boring” or not working so well, because groups pick up liberties too quickly and there’s no crosscuts.

If you play on the faces of the hexagons or intersections of the triangular lattices, points have six liberties and groups gain liberties very quickly.

Similarly without crosscuts it’s harder to find tactics to reduce liberties and capture stones, or so I’m led to believe.

I think that’s why you find a lot of Go variants on these grids where the players play two moves in a row like “Every subsequent move, a player places TWO stones.” in trigo or “ Thereafter, the players alternate turns, placing one or two stones of their colour on empty spaces, with the proviso that two stones placed must be of different colours.” with each player using two colours in blooms.

So I think there’s geometric elements and constraints of the grid that can define what makes the game fun, tactical or “working”, which may need to be adjusted for.

4 Likes

Dev Log 6

Highlights

  • @Gooplet joined the development team and implemented a prototype for Super Tic Tac Go!
  • @benjito added a default board component, a big step towards unifying the look of the variant boards!
  • We added a rules sections for variants, linked in the nav bar. Right next to the rules, you can immediately experiment with it in the demo board!
  • We organised a tournament for playing on a “normal” 19x19 board with random holes: Variant Tournament
  • Sameer Dalal finished the prototype for ratings (though they are not displayed yet).

Screenshots

Features & Improvements

Variants

lighthouse

Super Tic Tac Go

board patterns

sunflower
https://github.com/govariantsteam/govariants/pull/379

custom graph
https://github.com/govariantsteam/govariants/pull/396

ratings
https://github.com/govariantsteam/govariants/pull/316
https://github.com/govariantsteam/govariants/pull/332

rule descriptions & demo
https://github.com/govariantsteam/govariants/pull/320
https://github.com/govariantsteam/govariants/pull/325
https://github.com/govariantsteam/govariants/pull/339
https://github.com/govariantsteam/govariants/pull/340
https://github.com/govariantsteam/govariants/pull/357
https://github.com/govariantsteam/govariants/pull/365

default board
https://github.com/govariantsteam/govariants/pull/322
https://github.com/govariantsteam/govariants/pull/327
https://github.com/govariantsteam/govariants/pull/328
https://github.com/govariantsteam/govariants/pull/329
https://github.com/govariantsteam/govariants/pull/330
https://github.com/govariantsteam/govariants/pull/371

admin role
https://github.com/govariantsteam/govariants/pull/345
https://github.com/govariantsteam/govariants/pull/367
https://github.com/govariantsteam/govariants/pull/368

board preview
https://github.com/govariantsteam/govariants/pull/380

show who hasn’t played yet in parallel variants
https://github.com/govariantsteam/govariants/pull/381
https://github.com/govariantsteam/govariants/pull/385

CSRF-protection
https://github.com/govariantsteam/govariants/pull/390

Graph boards in variant pyramid
https://github.com/govariantsteam/govariants/pull/408

Maintainance & Documentation

cleanup deprecated variant BadukWithAbstractBoard
https://github.com/govariantsteam/govariants/pull/318
https://github.com/govariantsteam/govariants/pull/319

lint rules
https://github.com/govariantsteam/govariants/pull/323
https://github.com/govariantsteam/govariants/pull/387

commit hooks
https://github.com/govariantsteam/govariants/pull/348
https://github.com/govariantsteam/govariants/pull/362

update dependencies
https://github.com/govariantsteam/govariants/pull/354
https://github.com/govariantsteam/govariants/pull/355

document variant interface
https://github.com/govariantsteam/govariants/pull/398

Bugfixes

https://github.com/govariantsteam/govariants/pull/342
https://github.com/govariantsteam/govariants/pull/347
https://github.com/govariantsteam/govariants/pull/369
https://github.com/govariantsteam/govariants/pull/413

8 Likes

Hi,
thanks for the nice documentation :smiley:
In order to try creating a blind Go mode I copied the repo, installed yarn, copied a existing variant, set it up as new one to test if it works and was able to successfully run this local game variant on the localhost server.

My question as a beginner 25kyu dev is now: Do I have to be careful about anything, testing my local variant?

Thanks ^^

4 Likes

What are you worried about? Changes you make will only affect your local setup until you request us to pull them into our code that’s running govariants.com.

If you tell the code to delete all your data from your machine, there’s a good chance it might really do it, once you run it. So don’t do stuff like that.

4 Likes

What are you worried about?

No idea :smiley: Its just new stuff to me. Thanks for your answer!

4 Likes

Hey that’s awesome!

As Jon_Ko said, no need to be cautious! Any persistent changes will be made to your local MongoDB instance (provided you’ve installed one - which is not necessarily required to develope a new variant).

If you have any question(s) about the project, please don’t hesitate to ask!

4 Likes

I’m excited to tell you that we’ve recently added Rengo in a way that it works in combination with any of the currently[1] available variants! Kindof like a variant modifier.
Our implementation uses the subvariant as a blackbox[2], and replaces each of its player slots by a team of multiple players. The team members alternate playing moves for the corresponding player slot in the subvariant in cyclic order.

For example you could play Rengo-Chess, which I guess means that we’re now also a chess variant site :laughing:

What I find exciting about it, is that (in theory) you can really use any subvariant, whether it has alternative sequential move order like Thue-Morse Go or parallel moves like Fractional Go. Even rengo is a possible subvariant to itself (though all that does is make the teams bigger). Internally we’ve called the concept “higher order variant”[3].

Full disclosure: I have not tested all possible subvariants, so :crossed_fingers: hopefully nothing breaks!

Here’s a breakdown of the config form for creating a rengo game:

You can freely experiment with it in the demo view.

Here are some further ideas for adding “higher order variants” in future: Pie Rule, Miai Go, Democratic Go


  1. and future :crossed_fingers: ↩︎

  2. using only the base interface shared by all variants ↩︎

  3. inspired by higher order functions thanks to @benjito ↩︎

6 Likes