News:

VIP Donor members get fewer ads;  Donate - don't be late
cheers

Main Menu

gnubg features in CocoaFIBS

Started by esbailey, March 22, 2005, 07:09:01 AM

Previous topic - Next topic

esbailey

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


The Moon and Mars are the next frontiers...
I am doing my part to explore them...
Are you?

adamosad

#1
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.

amarganth

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:
To be is to do
          Sokrates
To do is to be
          Sartre
Do be do be do
          Sinatra

Bondy

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

Chris

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.

DirtyHarryII

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
DirtyHarryII

DirtyHarryII

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
DirtyHarryII

adamosad

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  

adamosad

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
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!

esbailey

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...


The Moon and Mars are the next frontiers...
I am doing my part to explore them...
Are you?

adamosad

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....


DirtyHarryII

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
DirtyHarryII

DirtyHarryII

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
DirtyHarryII

inim

#13
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
This space is available for rent by advertisers. Call 0900-INIMITE today, and see your sales skyrocketing in no time! New customers receive free Vl@9rĂ¥ and a penis enlargement set as a bonus! We support banners, flash banners, and scrollers. Discrete handling by our HQ on the Dutch Antilles.

tansley

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.

socksey

#15
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

tryout

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.



GammonLeague -- Join free Backgammon tournaments
[size=8] [/size]
FIBS TEAM League -- Play Backgammon with friends in a team