Proposal for Linux engine standard

Discussion of chess software programming and technical issues.

Moderator: Ras

zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: Proposal for Linux engine standard

Post by zamar »

hgm wrote:Btw, how about /usr/share/games/ai_plugins/ as name for the directory?
Finding a good name is difficult:

engines: not very good, there exists many kind of engines... like graphic engines.

ai_plugins: A bit long name and underscore is not nice...

ai: Again too broad concept.

Maybe some native speaker could suggest something better which refers to any "AI client/engine which plays some game".
Joona Kiiski
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Proposal for Linux engine standard

Post by Don »

zamar wrote:
hgm wrote:Btw, how about /usr/share/games/ai_plugins/ as name for the directory?
Finding a good name is difficult:

engines: not very good, there exists many kind of engines... like graphic engines.

ai_plugins: A bit long name and underscore is not nice...

ai: Again too broad concept.

Maybe some native speaker could suggest something better which refers to any "AI client/engine which plays some game".
There is no generic name that represents chess-like programs. "Two person games of perfect information played on boards with squares and tokens."

I would probably go with /usr/share/games/chessplugins

Many of the games xboard supports have name that imply they are related to chess and it would avoid enormous confusion. Seeing ai_plugins would be pretty confusing and it's not right to take the name "ai" for ourselves. I could see this being just as appropriate for a million different applications that have nothing to do with any kind of chess. Most shooter arcade style games use the terminology ai to refer to the part of the game that simulates your computer opponent.

chessplugins would error on the side of being too specific but is far better than taking a name that could refer to every possible game that would run on a computer. I know that I would never look there for a chess plugin unless I knew exactly where to look and names should be pretty descriptive.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Proposal for Linux engine standard

Post by Michel »

Still why not

/usr/share/games/engines

and then subdirectories per family

/usr/share/games/engines/chess
/usr/share/games/engines/tictactoe
/usr/share/games/engines/poker

This seems like an elegant organization without underscores, concatinated words etc...
User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Proposal for Linux engine standard

Post by hgm »

Don's arguments do not really convince me, because we still have a different view of what is the purpose of this operation. If there are zillions of other games that use 'AI plugins', by all means, let them use this directory. We are not 'taking this name for ourselves' at all. We are giving it to the world!

But I like Michel's idea of creating sub-divisions. I would not make them as narrow as 'Poker', though, as it seems very plausible a GUI that can support Poker could also support other card games. And Tic-Tac-Toe really is a sort of Go...

So I would go to
/usr/share/games/plugins/board
/usr/share/games/plugins/cards
/usr/share/games/plugins/map

And if a further subdivision is needed, perhaps

/usr/share/games/plugins/board/chess
/usr/share/games/plugins/board/checkers
/usr/share/games/plugins/board/go
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Proposal for Linux engine standard

Post by Michel »

This seems reasonable to me although I still don't like the word plugin.

Normally a plugin is code that modifies a program in some way (like plugins in a webbrowser).

I don't think that is the way we think about the GUI/engine interaction.

Perhaps

ai_players

because that expresses exactly what we have in mind. Although that brings back the dreaded underscores.
User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Proposal for Linux engine standard

Post by hgm »

Well, this is exactly what we have, not? Start XBoard with Crafty and it plays Chess, start it with HaQiKi D and it plays Xiangqi. I would call that modified behavior...

To me plugins are programs to which you outsource certain tasks you would not be able to do yourself. Like decoding MS Word .doc files. Or thinking up Chess moves.

In the Qianhong GUI, what we call 'engines' are always referred to as 'plugins'.
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Proposal for Linux engine standard

Post by Michel »

Start XBoard with Crafty and it plays Chess, start it with HaQiKi D and it plays Xiangqi. I would call that modified behavior...

If you needed a plugin to make xboard play chess, one plugin would be sufficient....
(you don't want 10 competing flash plugins in your webbrowser).

But you have many chess engines, all making xboard play chess. So that shows I think that a chess engine is something more than a humble plugin.

In fact you could argue that xboard is a plugin for a chess engine since it allows the chess engine to talk to the outside world.
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: Proposal for Linux engine standard

Post by zamar »

hgm wrote:Don's arguments do not really convince me, because we still have a different view of what is the purpose of this operation. If there are zillions of other games that use 'AI plugins', by all means, let them use this directory. We are not 'taking this name for ourselves' at all. We are giving it to the world!

But I like Michel's idea of creating sub-divisions. I would not make them as narrow as 'Poker', though, as it seems very plausible a GUI that can support Poker could also support other card games. And Tic-Tac-Toe really is a sort of Go...

So I would go to
/usr/share/games/plugins/board
/usr/share/games/plugins/cards
/usr/share/games/plugins/map

And if a further subdivision is needed, perhaps

/usr/share/games/plugins/board/chess
/usr/share/games/plugins/board/checkers
/usr/share/games/plugins/board/go
I like the idea of subdirectories too, but I'd go with game/directory basis:

/usr/share/games/plugins/chess
/usr/share/games/plugins/go
/usr/share/games/plugins/poker
/usr/share/games/plugins/othello

Each GUI is usually designed to play only one game (+variants), so it needs to scan only one directory and it knows that all files in that directory are relevant and follow the same format.

It's also fully well possible that go or poker would like to use another plugin-file-format, so in this way we would be showing the World the way to go, but not in anyway dictating how they should do it...

Call the directory 'engines' or 'plugins', doesn't really matter to me :-)
Joona Kiiski
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Proposal for Linux engine standard

Post by Don »

hgm wrote:Don's arguments do not really convince me, because we still have a different view of what is the purpose of this operation. If there are zillions of other games that use 'AI plugins', by all means, let them use this directory. We are not 'taking this name for ourselves' at all. We are giving it to the world!
I think that's the part that I don't like, we are being presumptuous here. Distribution creators don't just let anyone make arbitrary decisions. So try it, and see if it flies. I think it won't. While you are at it, why not change /etc something you like better?

Look through /usr/share and just tell me if you think this is in the same spirit. It doesn't make a lot of difference to me personally, I just don't think it will fly.

But I like Michel's idea of creating sub-divisions. I would not make them as narrow as 'Poker', though, as it seems very plausible a GUI that can support Poker could also support other card games. And Tic-Tac-Toe really is a sort of Go...
I think you will find that this is not space for the entire world to make up whatever standards they see fit. What you and I might like is not necessarily going to fly. In other words you cannot just put anything you want anywhere you want and expect it to be respected.

So I would go to
/usr/share/games/plugins/board
/usr/share/games/plugins/cards
/usr/share/games/plugins/map

And if a further subdivision is needed, perhaps

/usr/share/games/plugins/board/chess
/usr/share/games/plugins/board/checkers
/usr/share/games/plugins/board/go
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
User avatar
hgm
Posts: 28378
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Proposal for Linux engine standard

Post by hgm »

Don wrote:I think you will find that this is not space for the entire world to make up whatever standards they see fit. What you and I might like is not necessarily going to fly. In other words you cannot just put anything you want anywhere you want and expect it to be respected.
That is just selling ourselves short. First we must think what satisfies our needs, and make sure it is good and elegant. Then we are in a good position to convince those that have the power to decide about this. Someone must act first. Chess has always had a leading role in the development of AI games, so we would be the natural party to take th initiative.

We should not give in before even starting a fight, just out of pessimism.