[Kde-games-devel] kigo

Inge Wallin inge at lysator.liu.se
Tue Oct 27 10:35:17 CET 2009


I'll reply to several mails in one go here.

On Monday 26 October 2009 19:26:36 Sascha Peilicke wrote:
> On Monday 26 October 2009 18:22:02 Matthew Woehlke wrote:
> > Inge Wallin wrote:
> > > Matthew Woehlke wrote:
> > >> For kigo, a better "easy" level of difficulty might be to take the
> > >> gnugo moves and have a random chance of a: taking the best one, b:
> > >> taking a suggested move at random, c: taking a totally random move.
> > >
> > > I strongly advice against using a random move.  A close game can be
> > > totally destroyed by just one bad move, and at least my enjoyment of
> > > the game would disappear if my opponent threw away moves like that.
> >
> > Perhaps not the 'totally random' option toward the endgame then.
> > (Actually I was intending that mostly for the opening few moves anyway.)
> >
> > However I think there is a hole in your expectations. Human players make
> > mistakes. Sometimes even colossal mistakes in endgame. Why should the
> > computer be different?

Sure, everybody makes mistakes. However, the nature of the mistake tend to be 
different depending on your strength.  If we leave the extreme beginner for a 
moment and look at the player who has played for a few days, he often makes 
tactical mistakes.  Groups get lost, he misses obvious threats, etc.  The 
slightly more advanced player catches the obvious threat but misses the 
indirect threat or even combination of threats. Several levels above that are 
the strategic mistakes.  It's possible to win every tactical fight on the 
board and still lose because you chose to fight the wrong fights: the opponent 
let you win the skirmishes to win the war himself.

In none of these cases are the moves 100% random.  Every player makes the 
moves depending on the input that he is able to get from the board.  The 
beginner sees less  than the experienced player, but he does see something.  A 
random move is the same as making a move with *no* input, and only the player 
who plays his first game ever does anything like that.

So the correct way to create  weaker player is not to throw in random moves.  
It's to take away input into the evaluation.  And the only way to do that is 
to do it within the engine.  And that's exactly what we have done with the "--
level" option of gnugo.  Level 10 takes everything that it can into account.  
Level 5 leaves out much of the life&death calculation and leven 1 only does 
tactical evaluations and at much lower depth than at level 10.  (ok, that's 
not exactly how it is, but you get the picture).

> > Personally, my enjoyment is lessened by the opponent being 99.999%
> > predictable. (I've noticed the first move isn't fixed. But after that,
> > it's not hard to replay identical games.)
> >
> > Obviously, mistake rate goes down with skill level. Which is why I made
> > this suggestion w.r.t. *easy*, not hard(er).
> >
> > It sounds to me that what you dislike is a novice opponent. Well, that
> > is no conflict with my suggestion; just don't set the AI at easiest.

No, not at all; see above.  But what I dislike is a decent opponent (according 
to my own level of play) that sometimes just says "what the heck" and throws a 
stone on the board.

Now, I understand that beginners are not good enough to play against gnugo at 
even level 1.  That's where the awesomeness of the go game itself comes in: 
You can even the odds by using handicap. You yourself said that you are a 
beginner, but still had no problem with beating gnugo on a 9x9 board and with 
9 stones of handicap! I know no other game that can even out the differences 
between players of very different strengths in this way and then still have an 
enjoyable game.  Giving piece handicap in chess, for instance changes the game 
so much that it's hardly the same anymore.

> I still believe that such an _improvement_ should be made directly in the
> backend. Kigo can't assume that it's actually a GnuGo backend, other
>  engines (even commercial ones) could provide a less predictable opening
>  game. Therefore and to avoid ugly hacks (the GTP wrapper is already ugly)
>  I strongly object against random moves. So to say, this discussion is off
>  topic and should be moved to a GnuGo devel list.

I agree that a 100% predictable game is bad.  I know that there is some code 
for randomization in the opening in gnugo, but perhaps it's difficult to get 
it going on a small board with high handicap.  I think you have to reduce the 
handicap or try other moves yourself and see what happens. :-)

	-Inge



More information about the kde-games-devel mailing list