What's a good bounty to implement Rengo?

Sounds good, agree to all points. I’m just wondering about the “directness” level achieved through a solution by bots and how comparable it will be to a native solution for which I originally intended the full bounty, that is up for further discussion I guess.

4 Likes

A “bot” is just a term for a “back end server that does something particular” actually.

‘bots’ are ‘servers that cause games to be played’ in one way of looking at it.

It’s an implementation detail whether you call “the thing that implements rengo” a bot or just a backend.

Anyhow really the point I meant to make is that this is playing with words…

… the “nativeness” of the solution comes from how it’s integrated into the front-end.

OJE is the example. Is that native enough? It has a completely separate back end. You wouldn’t be tempted to call the OJE server a ‘bot’ because it doesn’t cause games to be played … that’s about the only difference.

5 Likes

I thought of another “nativeness” consideration that a bounty-offerer would have: is it maintained by the OGS team, or something completely separate that might go pear shaped on its own?

In fact, one of the reasons I’m redoing the back-end of OJE is to implement it in such a way that it much more easily falls under anoeks control, and the same considerations would apply for this implementation.

I don’t want to make something that OGS can’t take custodianship of easily - OJE 1.0 highlighted many reasons why this is important.

6 Likes

Bei comparing it to OJE you mean the bot would be integrated just like visiting the Joseki-Dictionary Play Go at online-go.com! | OGS basically? Which seems “very native” as it looks just like a part of OGS and not an external thing at all.

3 Likes

Yes - a native front-end experience.

I’m not sure that the back-end will in fact be a bot, in the way originally suggested, now. That was one possible implementation, but there are others.

FWIW I’ve done most of the work for re-writing OJE now (I hope) … it is with anoek for testing.

So I’m looking in more detail now at whether I can in fact do this.

6 Likes

I’ve been poking around … it looks like I could do this .

I’ve booked some leave days from work in December to have a crack at it.

I think the escrow suggestion is a good one, to guard against obvious potential for tears later.

Any suggestions for how to do that in practice? There is escrow.com, looks pretty straightforwards.

6 Likes

I have no experience with that service but we can give it a shot (famous last words). :ok_hand:

Edit:
So, for a first draft of the “Rengo” feature to be implemented:

  • Minimum number of participating Rengo-Players: 4.
  • Players should only be on the online-go.com site and not in need to visit other websites or use of external programs
  • Each player has his own dedicated game board where he is to make a move every 1 out of 4 turns (if it’s 4-player Rengo, 1 in n turns in case n-player Rengo with n != 4 even gets implemented, which would be nice but not required.) He makes a move by either clicking on an intersection of the go board to place a stone, or click on pass or resign, just like for normal non-Rengo games.
  • For making their move (play a stone, pass or resign) Players just use the same, usual UI functions as for non-Rengo games on OGS, no need for entering coordinates manually or other helper functions.
  • Each player just needs one browser tab to participate in the Rengo game, same as for normal non-Rengo games on OGS.
  • No need for account sharing or credential sharing, every player can just participate with his normal OGS account like he would in any normal non-Rengo game too.

Good?

Edit more: Thanks for input, added it. And yes, some of the stuff above seems redundant, but whatever.

9 Likes

I would personally add to that list “no need for account or credential sharing” just in case it isn’t implied (which it probably is) :wink:

6 Likes

You are creating a legal document for the proper exchange of money for services rendered, there is no such thing as redundant.

9 Likes

Thanks this is a great outline, and seems to capture the spirit of “give us an initial implementation” nicely.

The first question I have is - is it OK if either player can perform the pass or resign on behalf of the team?

(Note: I’ve never played or seen rengo played :slight_smile: )

I’ve read that both players should agree, or something like that, in the real thing? This would be a nasty complication to think about initially… we need to use as much as possible of “how things work already”, initially.

3 Likes

Yes, it’s an important mechanism, that we could say is always respected. One ask his partner if it’s time to resign (whenever) who answer by agreement or not

1 Like

Oh, excellent - so this is “allowed communication”, and the system does not have to take care of it? That will be good news.

Out of interest, are the players required (by ettiquette?) to make this communication visible ?

If you allow in-game chat, then the problem is solved.

1 Like

It’s not hidden.

2 Likes

I think its also worth talking about how matchmaking will happen initially.

I’ve been doing some exploration/preparatory work, and it’s seeming like this will be the most fiddly part of the whole thing.

I propose

  • A player can create a “Rengo” challenge, which is an invitation for others to participate in a Rengo game.
  • Most game-creation parameters that are nornally available, are available
    • Rengo games are unranked
    • Correspondence might work, but it is not required to (initially).
  • Others can nominate to join that game (likely subject to rank restrictions on the game creation page, but not subject to “you have to be within 9 stones, which only applies to ranked games anyhow”)
  • The original creator selects which team the nominating players are on (and whether they get to play at all in this challenge)
  • When the original creator presses “Start”, the game starts.

Maybe all the involved players get an “Accept” dialog, but this has the potential for making game startup a pain.

4 Likes

The accept for each on the other side is a guarantee that no one is AFK.
AFK is a recurrent problem because it takes time to join 4 players and internet players don’t have always the patience. It’s different from a 2 players game set up.

Not really. One person may accept and then AFK because the others are taking too long.

My gut feel is that this will be a nuisance, both in experience and coding.

If you review the matchmaking, you will see that an underlying thought is that it is likely that players are talking to each other about joining the Rengo game. The “creator” will accept those who the know (through this mechanism) are ready and willing. So the game might as well just start. Only the first two players need to be right there at that time anyhow, the others can rush back from their coffee.

This mechanism also does allow for “creating a game that strangers join” of course.

1 Like

In my opinion it’s a bit optimistic and not fitting my experience. It’s not good to start games with missing players too.

Well, I’ll be exploring this aspect of it, but I hope we’ll agree that it will be OK without Accept initially.

If we gold-plate the specification now, I won’t be able to sign up for it at all, because I “lose everything” if I don’t get it done in time.

Well i try to be honest as possible and not to charge too much too. Promise.

It can work without confirm but then you’ll have to go search the player watching a game for waiting the rengo to have 4 players ( or worse who started to play another game)

Maybe the use of rengo will be different on OGS but the fact is that few players will be invested in regular play and it can really take a long time to join a full game. I saw rengo offers staying for many minutes (with players coming in and out, spaming advertising in the site chats etc etc )