I've sometimes thought that it's best to just extract this evaluation
functions and build up a whole new interface around it.
(I've also been in contact with Harald Wittman, the author of loner and
mloner, and we've been thinking of making a common API for
evaluation of
backgammon positions. However, this is difficult as well.)
The separation from the AI and the User interface is quite logical
for several reasons.
The most important for me is: both parts are real hard work and take
a lot of time. An awful lot of time. If there would be a standard for
AI's like winboard or UCI for chess engines someone could concentrate
on the AI, some other on the user interface. Comparing and
experimenting with bots would be easier too. That was one reason,
that BGBlitz supported this from the very start (just I failed on
getting progamms from other people to plug in; the 4 bots that are
running are either from me (TachiAI) or ported and I don't have the
rights to publish them). Anyway the notion of of pluggable AI make
perfect sense to me.
I just scanned the article about winboard. Using pipes is pretty
simple and probably works on most OS, I would only extend it, so that
the transport level (pipes in the case of winboard) is separatly
treated from the content. E.g. having a plain socket connection,
might be useful too if the AI runs on another box.
I personally don't think, that it is too difficult to separate the AI
from the rest:
- in BGBlitz there are several levels from providing only a neural
net, to doing everything include cube stuff.
It wasn't particulary diffcult, but naturally I started with that
approach. The drawback is, that this is at
object/method level. Communication should go over some wire.
- Here comes the latest dueller from Tony Lezard into play. Dueller
communicates with BGBlitz via TCP/IP. It
naturally should be augmented, because the dueller has slightly
different demands, but that should be no
major problem. The point is, that it was just a few days to get it
up and running. It used a proprietary
ASCII based protocol. I just asked Tony, whther it is ok to publish
it.
- for another project I made BGBlitz available via a custom XML/TCP-
IP. Again it was just a few days of work.
Naturally one could use a standard XML-Protocol like SOAP or XML-
RPC, I just felt that custom XML was more
appropriate in that case.
So if a proposal is not using integration with dll/shared libraries
etc. but with pipes/sockects/any other it is doable. And I assume
such a protocol would lead to a proliferation of BG-AIs if there User
interface is attractive enough.
If you really want to set up such stuff, you can count on my support
and having Harald Wittman on board would be simply great.
ciao
Frank
_______________________________________________
Bug-gnubg mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/bug-gnubg