FIBS Board backgammon forum

FIBS Client software => CocoaFibs => Topic started by: esbailey on March 22, 2005, 07:09:01 AM

Poll
Question:
Option 1: Current Move Analysis (both players) votes: 2
Option 2: Analysis History (both players) votes: 7
Option 3: Suggested Move (Tutorial only) votes: 0
Option 4: Auto-move (gnubg plays for you) votes: 1
Option 5: Off-line play (play vs. gnubg instead of on FIBS) votes: 2
Option 6: game history database (using MySQL or postgreSQL) votes: 6
Title: gnubg features in CocoaFIBS
Post by: esbailey on March 22, 2005, 07:09:01 AM
Hi.  agerson has asked me to research what features from gnubg you guys would want added to CocoaFIBS (or whatever it ends up being called).  I've suggested my top 6 features I would like to see added from the gnubg program.  agerson and I will be calling the gnubg engine from CocoaFIBS, so we will be levying the code base already written under the GPL for this.

The original thought was to let gnubg do a running analysis of the game, with an ability to plot the history of how the game went, including move and dice analysis, etc.  This eventually led me to think of using CocoaFIBS as essentially a front-end for the gnubg engine, so you can play BG without having a net connection (practice with the same GUI environment).  

I also thought that we could implement a feature to keep a record of what players you've played and how you've played against them, so you can replay the matches for analysis later, and see if you (or they!) have improved or gotten worse with time.  This would also levy use of an open-source database (such as mySQL or postgreSQL) on the back-end, so the database could be accessed from pretty much anything else (such as  a web page, etc.).

These features may show up in later versions, but agerson and I should get cracking on them now so you all won't have to wait as long!  :D

If you have any more suggestions, please feel free to reply to me and I'll add them to the list.

-Erik
Title: gnubg features in CocoaFIBS
Post by: adamosad on March 22, 2005, 09:11:17 AM
I do not think that auto-move must be added to Cocoafibs because it will encourage cheating. A lot of players may avoid playing with a Cocoafibs user if you add that feature. So I believe that it is not a good idea to add it or contain it to the poll for voting.
Even if you add it only for offline games, some players may stop trying to find the best moves as they will know that they can avoid thinking by pushing one button....

Of course I think that all the other features are great improvements.
Title: gnubg features in CocoaFIBS
Post by: amarganth on March 22, 2005, 12:45:31 PM
I think, this new Client will be a good thing. It looks nice.

I'm working under Windows and I'm using JavaFIBS.

Beside the features you listed, for me, the following two things are important:
  • If someone has a technical advantage in using CocoaFIBS, I would not play with that person. I can accept a Thorp-Counter and a Kleinman win chance (only in MacFibs, as far as I know), but I cannot accept more than this. Chris with his planned TutorBot made some thinking about a fair usage for both players. It's difficult.
  • One feature, that I miss in JavaFIBS is the *moving* of chequers on my screen after a move. JavaFIBS only shows the board *after* the move, 3DFIBS shows the move. With the FIBS-protocol, it's absolutely possible to show this moves, by interpreting the move-commands of the player and its opponent. By implementing this, the client will be much nearer by new GUI's as you can see at GammonEmpire, TrueMoneyGames, GamesGrid and others.
I'm not very happy, that I cannot use your new client on my windows system, agerson.  :tears:
Title: gnubg features in CocoaFIBS
Post by: Bondy on March 22, 2005, 02:12:36 PM
QuoteI'm not very happy, that I cannot use your new client on my windows system, agerson. cry.png

Get a real computer then!

:P
Title: gnubg features in CocoaFIBS
Post by: Chris on March 22, 2005, 02:55:18 PM
I'm always interested in statistics, so it's a pity I won't be able to use this client (I'm on a Linux box).

Perhaps you might consider using a proxy for that task which would work with other clients on other operating systems too.
Burper's fibscompanion could be a good starting point.

On the other hand, if you want a smoother integration with your client and reject the proxy idea - then I wouln't use MySQL or something similiar but a lighwight database like for example SQLite, which could ship with your application.
Title: gnubg features in CocoaFIBS
Post by: DirtyHarryII on March 23, 2005, 08:40:17 AM
Hi Adam.. and all others :)

Generally I don't think there's any need for gnubg features in CocoaFIBS. All it takes is a game export option in .mat or similar readable to gnubg. This will give us all the options of gnubg provided it's installed.

DHII
Title: gnubg features in CocoaFIBS
Post by: DirtyHarryII on March 23, 2005, 08:47:27 AM
Hi adamosad :D

Automove already exists in javafibs - definition of automove is simple - when only one optionnal move exists application will make that move. No reason to worry - cocoafibs is not a new bot.. :)

DHII
Title: gnubg features in CocoaFIBS
Post by: adamosad on March 23, 2005, 09:06:45 AM
QuoteHi adamosad :D

Automove already exists in javafibs - definition of automove is simple - when only one optionnal move exists application will make that move. No reason to worry - cocoafibs is not a new bot.. :)

DHII
In this case there is no problem DH! :D  
Title: gnubg features in CocoaFIBS
Post by: adamosad on March 23, 2005, 09:25:55 AM
QuoteOne feature, that I miss in JavaFIBS is the *moving* of chequers on my screen after a move. JavaFIBS only shows the board *after* the move, 3DFIBS shows the move. With the FIBS-protocol, it's absolutely possible to show this moves, by interpreting the move-commands of the player and its opponent. By implementing this, the client will be much nearer by new GUI's as you can see at GammonEmpire, TrueMoneyGames, GamesGrid and others.

I'm not very happy, that I cannot use your new client on my windows system, agerson
Well i play with both 3dfibs and javafibs but I miss 3dfibs animation when i play with the other client
http://www.fibsboard.com/index.php?showtopic=773 (http://www.fibsboard.com/index.php?showtopic=773)
It is a good idea if you add animation on this Mac Client.

In addition I agree with Amarganth opinion. It is good to see it running in other operating systems too  :D

Chris:
QuotePerhaps you might consider using a proxy for that task which would work with other clients on other operating systems too.
Burper's fibscompanion could be a good starting point.

I did not know that Burper's fibscompanion can do that!!! Thx u Chris for the info and the nice suggestion!
Title: gnubg features in CocoaFIBS
Post by: esbailey on March 23, 2005, 09:37:17 PM
I'm suprised to see you guys like the move analysis and ability to play off-line, but don't like the database idea.  The DB idea can extend the analysis across multiple games to track improvement in chequer play, cube play, and dice trends, and can be filtered by play vs. players, play vs. people of specific ratings, etc. etc. I think this would be extremely useful, personally.

To those of you fearing the analysis - it would only use the equivalency of gnubg's "analyse game [or move]" and "show statistics game" as you progress.  In essence, it's only rating what you've already done, not what you can do.  

Perhaps the tutorial mode could only be made for use against gnubg, but not online.

I realise that gnubg can be used along side any FIBS client (or telnet window) as is to do this, but I'm trying to make it automated so more players will take advantage of the software.  Think of it as a "plug-in" for iFIBS (since that's leading the name polls today!).

Could features like this get iFIBS banned from tournament play?  If so, we'd need to do two things:  Allow and enable/disable of analysis that can only be implemented when not playing a match, and make it so that the client reported to the FIBS server shows whether or not the analysis mode is enabled so opponents can see whether or not they're playing someone with a computational advantage.

Thoughts?  Feedback?  I'm still formulating what I want out of this effort before I begin coding...
Title: gnubg features in CocoaFIBS
Post by: adamosad on March 23, 2005, 10:42:53 PM
QuoteCould features like this get iFIBS banned from tournament play?  If so, we'd need to do two things:  Allow and enable/disable of analysis that can only be implemented when not playing a match, and make it so that the client reported to the FIBS server shows whether or not the analysis mode is enabled so opponents can see whether or not they're playing someone with a computational advantage.
I think that TDs will have additional responsibilities if you do that. They must check if CocoaFibs users have the analysis mode disable in order to protect the other players....

Title: gnubg features in CocoaFIBS
Post by: DirtyHarryII on March 24, 2005, 12:02:43 AM
QuoteCould features like this get iFIBS banned from tournament play?  If so, we'd need to do two things:  Allow and enable/disable of analysis that can only be implemented when not playing a match, and make it so that the client reported to the FIBS server shows whether or not the analysis mode is enabled so opponents can see whether or not they're playing someone with a computational advantage.
Why not simply make 2 apps instead and leave the unnecessary trouble behind from the beginning....:eureka:

1. a native fibs gui for osx, which is already on the move and it looks promising......
2. a native bg-analysis tool for osx - Oh would I love to lose the X11 app...

And perhaps more people would use an analysis tool if it was easier to install than gnubg and X11


DHII
Title: gnubg features in CocoaFIBS
Post by: DirtyHarryII on March 24, 2005, 12:11:04 AM
Oh and the poll don't really work that well here since you need to choose one item over another due to the fact that you can only vote for one of the suggestions.....

DHII
Title: gnubg features in CocoaFIBS
Post by: inim on March 26, 2005, 02:22:28 PM
QuoteI'm suprised to see you guys like the move analysis and ability to play off-line, but don't like the database idea.  The DB idea can extend the analysis across multiple games to track improvement in chequer play, cube play, and dice trends, and can be filtered by play vs. players, play vs. people of specific ratings, etc. etc. I think this would be extremely useful, personally.
Please note that gnubg itself is extended to support what you suggest, a database to track your play over several matches. Please contact Jon Kinsey (superfly_jon on fibs), he is coding this extension. It would be much smarter to add this to gnubg and then re-import it into your client than to do it twice. In general, I'd love to see discussion of your plans, which are good, at the bug-gnubg@gnu.org mailing list as well. I feel there are mutual benefits.

E.g. personally I would be very interested in a clean API for the eval.c methods, which OTOH you need for most of your proposed extensions. Others, such as Amarganth and Chris, need the very same API for their bots. I can offer interested parties a headstart lesson (maybe using skype) into the gnubg sources, I've spent quite some time digging into them. My own mid term plan is to create a JNI (Java Native) interface to gnubg, but the move to GTK 2.6 needs to be done first. So there are at least 3 use cases that would require a clean API, maybe we work together here?

Chris told me you are looking at using gnubg-no-gui as the vehicle to glue gnubg into your client. Please be warned, it's pretty painful. You need few methods only from eval.c, so C may in fact be easier. If you are interested, I can offer (Java) code that talks to gnubg using either the external interface or an in-process modell of gnubg-no-gui. Tutorbot is using the latter, so it's stable. Nevertheless, the overall approach has problems, if I were you I'd go for an API-based solution.

inim
Title: gnubg features in CocoaFIBS
Post by: tansley on June 24, 2005, 10:32:39 AM
QuoteTo those of you fearing the analysis - it would only use the equivalency of gnubg's "analyse game [or move]" and "show statistics game" as you progress. In essence, it's only rating what you've already done, not what you can do.

Even historic analysis can be used to help us play, particularly with the cube.
For example a sudden "historic" cube error may well induce us to double next turn,  or it could be used to confirm a position we suspect of being too good to double - no error, we were right and would continue not to double etc.

It is even possible (though less likely) that this would happen with checker play (throwing similar dice consecutively etc).

I don't like the idea of my opponents receiving any kind of artificial assisatnce when I play them, after all I don't get any.  I don't like the idea that some of my opponents have a Thorp counter/Kleinman counter.  If I brought something equivalent to this to my local Backgammon Club, they would kick me out.

This is supposed to be a game of wits against wits, and we should keep it like that if possible.

I am, of course, all for improvement to any clients, just so long as it doesn't give some players an advantage.
Title: gnubg features in CocoaFIBS
Post by: socksey on June 24, 2005, 11:03:31 PM
Well said, tansley!  All the technicality takes away from the fun of the game to me.  I prefer my own wits when I play.  Any prompting from outside smells of cheating to me.   :(  Any analysis after a play would be helpful to prevent errors in the future, tho.  Is this what is happening here?  Wouldn't this tend to slow the game down?  I wouldn't like that part.   :P    

socksey



"An archaeologist is the best husband a woman can have; the older she gets, the more interested he is in her." - Agatha Christie
Title: gnubg features in CocoaFIBS
Post by: tryout on June 25, 2005, 12:45:27 PM
QuoteI'm suprised to see you guys like the move analysis and ability to play off-line, but don't like the database idea.  The DB idea can extend the analysis across multiple games to track improvement in chequer play, cube play, and dice trends, and can be filtered by play vs. players, play vs. people of specific ratings, etc. etc.

Gnubg has a database interface already inplemented which enables the features you describe above. Any external db such as MySQL, postgreSQL or SQLite can be attached. I see that inim has already suggested to discuss this matter further on the gnubg mailing list, which I support since it is still work in progress. The db could e.g. be extended with FIBS only related data such as the current rating or experience.

Btw, if you're willing to dig into gnubg: we'd need someone who would build gnubg for Mac OS from time to time. The last gnubg installation setup for Mac is a bit dated. Everyone willing to take this on is more than welcome on the gnubg mailing list (bug-gnubg (at) gnu.org).

QuoteTo those of you fearing the analysis - it would only use the equivalency of gnubg's "analyse game [or move]" and "show statistics game" as you progress.  In essence, it's only rating what you've already done, not what you can do. 

This is still far too much help. There are lots of situations where when you get indicated an error you know what the right thing to do will be on the next move. This includes almost all cube decisions and also many chequer play decisions, e.g. when to break an anchor, pay now or later decisions or whether to run or not.

I'm also opposed against a Thorp or Kleinman or any other count. Everything that gives one player an artificial advantage does the game no good. This could either lead to an arms race between programmes turning every client eventually into bots or to players using clients with such features to be avoided. The single one accepted aid in online play is the pip count, nothing more.

QuoteCould features like this get iFIBS banned from tournament play?

Most definitely.

QuoteIf so, we'd need to do two things:  Allow and enable/disable of analysis that can only be implemented when not playing a match, and make it so that the client reported to the FIBS server shows whether or not the analysis mode is enabled so opponents can see whether or not they're playing someone with a computational advantage.

To watch out for the latter would be a pain in a certain body part. I would simply avoid playing people using this client.