Basilisk Go Server
Basilisk Go Server was a web-based correspondence Go server. Its main goal was to support variant rulesets, but basilisks were also known to enjoy cool features.
Access it at http://www.basiliskgo.com. The source is on Github.
If you'd like to experiment without committing to a game, log into a testing account, as 'cannon' or 'georgia'. Passwords are the same.
Overview
- Built on the Catalyst MVC Framework for Perl
- DBIx::Class with SQLite for the backend
- Template toolkit for the frontend
- XML feeds are now supported
Planned features
- A zillion possible variants
- (Possibly) Integration with Dragon.
- (Perhaps) real-time play with a polling loop.
- Avatars?
Variants
- Toroidal go is what I'm most interested in. To be honest, Edges sort of seem like a kludge to me.
- Klein bottle and Möbius strip topologies
- Games with more than 2 players and/or colors.
- HeisenGo--There is chance of going twice in a row, or a move landing in an adjacent space.
- /Planck
None of these are implemented yet:
- Fog of war. What if distant areas were obscured?
- Random connections/disconnections.
- Different grid types. Some neat ones here
- Margo!
- I would actually like for Basilisk to support arbitrary graphs.
- If you slam a go stone on your laptop screen, it will appear on the board.
- Street maps. It seems like I can use Google maps. Maybe you could take data from another source to modify scoring, subway connections, etc.
- 3d lattices? This is not a high priority, but I don't see why not.
- I don't think one-color go makes much sense on a correspondence server.
- There are all sorts of possible effects that stone placement or capturing could have.
Wishlist
- See also: http://github.com/zpmorgan/basilisk/issues
- Sending messages (independent of playing games)
- dispense of obscure welcome messages
- And here's your status:
- rank: pretty bad
- current games: looking grim
- also: you may as well give up.
zpmorgan: I think this is a placeholder. It isn't any more meaningful for it to say 'welcome'.
- Explanation of the different board topologies (What is a Klein Bottle?) on the server itself!
- Explanation of the different move characteristics of e.g. HeisenGo on the server itself!
- Please have a look at http://span.u-cg.edu/basilisk/go/game/70 , where I was able to move twice with White (last two moves: tsuke1hane) in a 'HeisenGo'-variant ! Is this normal, resp, implied by the randomness, i.e. does randomness also comprise PASSES?
- Able to store an "Auto reply" for opponent's next move this one may seem strange, but I feel that since Basalisk Go Server is packed with awesome features not found anywhere else, the lack of active popularity as with many of the other Go servers means that there will be a large number of games unfinished (or even unstarted). I suggest the ability for a player to store extra data after they make their move. Like a "what-if" scenario, those able to provide a follow up move to a potential opponent's play could get their move played automatically if the opponent actually DOES play there. This could be just for one generation... or as many generations you think your server can hold in memory.
zpmorgan: A neat idea. Mainly useful for joseki, I think. I hope that with variants, it's much less predictable where the opponent(s) will move.
- Real-time play: I think this is simpler than it sounds. Establish a polling loop, and reload the board (or the page) when it discovers a new move. Make a noise after doing so.
- Superpositions: Call it SchroedinGo. Instead of stones, place clouds of possible stones. Have these clouds interfere with set operations -- One idea is to remove cloud intersections after each placement, and if any cloud is entirely gone, have it collapse into a stone onto one random node of its pre-collapse state.
See also
Discussion
Leira: I'd like to suggest a variant I've played only a couple of times but that turned out to be the funniest I've ever played: it's called "Go traidor" (treacherous Go). Each player takes some stones (say 10) from the opponent's bowl and mixes them into their own bowl. They play, then, without watching the stones' color. Of course, it's much more exciting to play in real-time blitz, but the expression on the players' faces when their own stones betray them is just priceless.
Phelan: Just registered. I was going to suggest João Neto's page, but it seems you've already seen it. :) I'd suggest Multi Color Go, since that always interested me. The rules for alliances should be explicit, since it's very likely that players will ally anyway. I'm very interested in this project, I've been thinking of creating a multicolor go server and client for quite some time. :P
zpmorgan: It seems to me that there's a lot of ambiguity when people suggest >2-color go. Have you tried >2-color go? Do you think that you can recommend a set of rules to start with? Do you know which is the most popular?
Phelan: I tried it in a spanish go forum(now gone), playing with normal go rules, no shared captures, and territory counting. There were no explicit rules about alliances, and the two games I saw/played in ended up in people always going for the player that was ahead. Usually the winner was the one that convinced the others not to attack him. As for a set of rules I'd suggest JPN's Strategic Cooperation, and counting captured stones against that color's score. Perhaps it would work best if alliances could be formed and broken during the game, at a cost. I haven't seen many >2 color games, so I don't know what are the most popular rules. I'm speculating a bit about it, since I don't know how it would play. If you'd like, I can elaborate more on the rules in a subpage.
Herman: You might also look at the Kee Rules of Go, where one of the design goals was to allow 3 or more players.
zpmorgan: 3+ player is very nearly ready. Zen, rengo, and free-for-all should all work soon.
zpmorgan: I've implemented this. Sensei's has a nice Three Colour Ongoing Game to use as an example.
Gresil: for something simple, how about non-square boards? That's a variant I'd like to try sometime.
zpmorgan:Of course. I'd assumed this one was obvious :)
zpmorgan: Done!
koks: it would be more interesting if you add some features like 1-color go and/or multiplayer-go (more than 4 players, eg, 6, 8, 10 players, :D)
zpmorgan: One-color is a neat idea for real-time games. Do you think it would work on a correspondence server? Pretty soon, you'll be able to have games with any cyclic move pattern. I've just now started an anti-zen game, with 2 players and 3 colors. There are 6 moves in a cycle, but it could go much higher, I suppose.
symplicity: Is there some way to set up a quadruple-view for smaller toroidal boards?
For example, with an 8x8 torus game like this, it is a little confusing to work out exactly what the position is really like, since the edges are so close to any region of action, even as you scroll around.
Tactically, it becomes much dramatically clearer what is going on when you put 4 of them side by side. It doesn't matter so much for large boards, but for small ones, I think a quadrupled view would help a lot. With a view like this, you don't even need to scroll the board around to quickly understand the position.
zpmorgan: I recognize that board :) I could be wrong, but I think the problem is that you haven't really adapted to toroidal yet. If you haven't tried it, it might be easier to get used to than you realize. That said, it wouldn't be too hard to implement your idea in just javascript.
[willemien} maybe better to keep the "original" board in the centre marking the corners and then adding the connections around it, think the least thing you should be able to see if a stone is captured or in atari...
I still don't understand which places are next to eachother in a Klein bottleplaying field.(and how about stones on the other side of the board)
Phelan: Practically, it is like a torus board, with the difference that the board is mirrored if you scroll one board-length vertically. At least, that´s my understanding of it. Also, there is no other side to a klein bottle, the inside and outside are the same.
willemienwas puzzeling about how to show the topologies How about the following: (PS these are just examples at the moment no garantee that they are how Basilisk Go Server boards are. The main board is centered (a1 ,, d4) and the other points are just duplicated around it.
Torus board
c3 d3 - a3 b3 c3 d3 - a3 b3 c4 d4 - a4 b4 c4 d4 - a4 b4 | | ^ ^ ^ ^ | | c1 d1 < a1 b1 c1 d1 > a1 b1 c2 d2 < a2 b2 c2 d2 > a2 b2 c3 d4 < a3 b3 c3 d3 > a3 b3 c4 d4 < a4 b4 c4 d4 > a4 b4 | | v v v v | | c1 d1 - a1 b1 c1 d1 - a1 b1 c2 d2 - a2 b2 c2 d2 - a2 b2
Other unending board, I am not sure but is this a Klein bottle ?
b2 a2 - d3 c3 b3 a3 - d2 c2 b1 a1 - d4 c4 b4 a4 - d1 c1 | | x ^ ^ ^ ^ | | c4 d4 < a1 b1 c1 d1 > a4 b4 c3 d3 < a2 b2 c2 d2 > a3 b3 c2 d2 < a3 b3 c3 d3 > a2 b2 c1 d1 < a4 b4 c4 d4 > a1 b1 | | v v v v | | b4 a4 - d1 c1 b1 a1 - d4 c4 b3 a3 - d2 c2 b2 a2 - d3 c3
PS notice the strange squares around x containing only different places
a1 d4 d4 a1
Unending board NOT rotatable, the left right (are turned around the up down are just repeating) work differently. (is this the mobius board?)
c2 d2 < a3 b3 c3 d3 > a2 b2 c1 d1 < a4 b4 c4 d4 > a1 b1 | | ^ ^ ^ ^ | | c4 d4 < a1 b1 c1 d1 > a4 b4 c3 d3 < a2 b2 c2 d2 > a3 b3 c2 d2 < a3 b3 c3 d3 > a2 b2 c1 d1 < a4 b4 c4 d4 > a1 b1 | | v v v v | | c4 d4 < a1 b1 c1 d1 > a4 b4 c3 d3 < a2 b2 c2 d2 > a3 b3
Phelan: Klein board(as i understood it):
b3 a3 - d3 c3 b3 a3 - d3 c3 b4 a4 - d4 c4 b4 a4 - d4 c4 | | ^ ^ ^ ^ | | c1 d1 < a1 b1 c1 d1 > a1 b1 c2 d2 < a2 b2 c2 d2 > a2 b2 c3 d4 < a3 b3 c3 d3 > a3 b3 c4 d4 < a4 b4 c4 d4 > a4 b4 | | v v v v | | b1 a1 - d1 c1 b1 a1 - d1 c1 b2 a2 - d2 c2 b2 a2 - d2 c2
zpmorgan: Correct! If you twist a cylinder, it becomes a mobius strip. If it wraps in one direction and twists in the other, it's a klein bottle. If it twists in both, it's something called a real projective plane, and the corner nodes have just 3 liberties.