Check out Symmetric Chess, our featured variant for March, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Earlier Reverse Order LaterLatest
[Subject Thread] [Add Response]
Rich Hutnik wrote on Thu, Oct 16, 2008 07:55 PM UTC:
Would anyone here be interested in there being a way for Zillions to be
able to interface with the Game Courier system here, so people could use
it to enter in their moves, and the Game Courier system handle it?  This
flows out of the standards discussion.

Image we could get Zillions to work with the CV site, and others?  Would
anyone be interested in this?

H. G. Muller wrote on Thu, Oct 16, 2008 08:12 PM UTC:
I would be more interested to get Zillions to work with a GUI (any GUI at
all, anything that would make it communicate its moe with the outside
World according to a public protocol). After that it would simply be a
matter of interfacing the GUI to the GC server.

I think it is a bad idea to interface an AI directly with a server,
without a GUI in between. It would be very inconvenient when you wanted to
ply two different engines against each other if you had to do it through
the server, for instance.

🕸Fergus Duniho wrote on Thu, Oct 16, 2008 08:18 PM UTC:
Since Zillions of Games is a commercial product that hasn't been updated
since 2002 or thereabouts, I wouldn't hold my breath on this happening.
Basically, what you want is a point-and-click interface for Game Courier.
I think this can be done with JavaScript, but I don't yet know how. I did
download a JavaScript Chess program called P4wn, which lets you move pieces
by clicking on a piece, the piece image goes to the mouse pointer, and then
you move it to the square you want to go to. This showed me that I should
be able to do something similar with JavaScript, but the source code was
so compact and obfuscated, I couldn't learn anything from studying it.
I've also learned about something called Ajax, which works with
JavaScript, and I found a very nice Ajax Chess program. But I still know
next to nothing about Ajax. If someone knows how I can use JavaScript or
Ajax to create a point-and-click interface, please share what you know.

H. G. Muller wrote on Thu, Oct 16, 2008 09:06 PM UTC:
The goths.html page on my website is powered by JavaScript. I am not really
a JavaScript expert (someone helped me write the program, but I understand
how it works), but it seems to me that what you want is not too difficult.
My viewer does not allow you to move pieces around, but there is a similar
feature: you can click alternate representations of the Archbishop and
Chancellor, and then it alters the board display accordingly.

The trick is that you can put an 'a' tag around some html element (e.g.
the 'img' tag defining the picture displayed in a square), with an
onClick='' parameter in it. Through this you can let a JavaScript
subroutine be called, which can assign to global variables (to remember
which from-square was clicked), or replace html elements by other elements
(on the second click). If you wantto have a look at the (rather simple)
javaScript code of the viewer, you can find it at

http://home.hccnet.nl/h..muller/chess.js

Graeme Neatham wrote on Thu, Oct 16, 2008 11:39 PM UTC:

Point-n-Click can be done entirely in PHP - see here


Matthew La Vallee wrote on Fri, Oct 17, 2008 12:11 AM UTC:
Here is a bit of serendipity: a coder friend of mine and myself were
having exactly the same discussion about the possibility of including Java
aplets on this site for a few (or, perhaps, many) of the CVs. He seemed to
think that it would not be difficult at all to create them, and, even
claimed he would personally write the requisite code. He was just
uncertain if adding them would interest anyone. Any thoughts?

🕸Fergus Duniho wrote on Fri, Oct 17, 2008 12:21 AM UTC:
Graeme, Any chance I could see the underlying code to the example you
linked to of using PHP for point-and-click?

🕸Fergus Duniho wrote on Fri, Oct 17, 2008 12:27 AM UTC:
We're certainly interested in having Java applets of Chess variants here.
We already have hundreds by Ed Friedlander, though his all use the same
lousy graphics and don't play well. We have one great Java applet for
Chinese Chess, which plays well and has customizable graphics. If your
friend wants to write some Java applets of Chess variants, we would be
interested, especially if they can play the game well and can use custom
graphics. Go to http://play.chessvariants.org to learn about the Java
applets we already have.

Graeme Neatham wrote on Fri, Oct 17, 2008 12:46 AM UTC:

The code is in a zip file here.

Not sure how clear it is but I'll try to answer any questions you may have. Basically it uses a transparent image that overlays the board as an input type in a form that returns a set of co-ordinates.


H. G. Muller wrote on Fri, Oct 17, 2008 07:59 AM UTC:
Adding mouse input to Game Courier would of course be a good feature, and
you should certainly do it. But as a feature, it still falls far short of
the possibility to connect a real GUI to the GC server.

Rich Hutnik wrote on Fri, Oct 17, 2008 02:46 PM UTC:
What I would like to do is get standards out there so not only Zillion
could interface with the CV site and others, but other people could create
programs that do the same also.  You have open standards/protocols, so the
maker of ChessV, Winboard and others, could then get their programs
working with the various game websites out there (CV, SDG, Richard's
PBEM).  Someone could also develop a specialized GUI just for this.  

Idea here is providing a way to be able to get more people on more
websites, and allow specialization in the development of different
components.  By working on the interface end, and allowing people to
create these, IAGO could then have a place where it could capture game
stats, and do record keeping for games.

This all starts by standardizing the way client applications interface
with websites.

🕸Fergus Duniho wrote on Fri, Oct 17, 2008 03:15 PM UTC:
Thanks to the suggestions I got, I have some plans for adding
point-and-click piece movement to Game Courier. It would combine
JavaScript and PHP. On the JavaScript end, I would enclose each piece
image in a borderless anchor. When someone clicked on a piece belonging to
the side that can move, all borders around pieces would be turned off, and
then a border would be placed around the piece clicked on. Clicking more
than one piece that can move would just move the border to a new piece and
change the piece that is going to move. Clicking a piece would also set a
flag that allows the next click to indicate a destination on an empty
space or an enemy occupied space. This second click would cause the
JavaScript to create move notation based on the two clicks and to submit
the form with it. From there, Game Courier would operate as it normally
has. It would check the legality or at least validity of the move and
display the move for verification by the player. This would handle only
single moves from one space to another, including Shogi drops, leaving the
Move field available for other types of moves and for more complex moves. I
might also add support for promotions, but I wouldn't extend it beyond the
needs for Chess and Shogi, because I want it to be simple and easy for most
variants.

H. G. Muller wrote on Fri, Oct 17, 2008 03:23 PM UTC:
I have a question about Game Courier: is this pubicly available software, as opposed to private or commercial?


In particular: if we wanted to set up a way for people to play Superchess
against each other on the Superchess.nl website, would it be allowed to
use Game Courier for this? Would that be technically feasible, and what
are the requirements on the server? (i.e. which sofware packages should be
supported? Only PHP?)

What you propose for the mouse pointing is pretty much the algorithm WinBoard uses as well. An extra that you might to implement as well is that if you click a second time on the highlighted square, you de-select it again.

Rich Hutnik wrote on Fri, Oct 17, 2008 05:45 PM UTC:
My feeling here is, rather than have it so that each and every site needs
to develop its own GUI, that common interface standards for
interoperability be developed, so that someone else could develop a GUI
that would work with all the sites.  Focus on what you need for
communications.  We could then start with the Zillions add-on, Axiom, and
have it have the standards work with that.  ChessV, and Winboard could
then follow.  And get more sites to sign on.  At this point, we have
something that say, Chessmaster or Fritz might even get into and add on. 
Idea is open standards that people can use.

If people want, the CV site could speak to other sites, if you like.  That could follow later, if you develop the standards for allowing communications.

H. G. Muller wrote on Fri, Oct 17, 2008 06:35 PM UTC:
I don't think Zillions is a good starting point, or in fact if it can be
of any use at all for what you want. What I understood is that the Zillions
'GUI' can only handle a single engine, not two (for playing against each
other) as all real GUIs (such as WinBoard, Arena, Shredder, Fritz). So it
could never be used to couple an AI to a game server. It can at most be a
replacement for entering moves and displaying the board over the normal
browser-based representation. For which there is very little need, as GC
already does a pretty good job at that.

With only a single connection, the Zillions GUI is a dead end...

🕸Fergus Duniho wrote on Fri, Oct 17, 2008 11:21 PM UTC:
I have a question about Game Courier: is this publicly available software, as opposed to private or commercial?

Game Courier is private software. It is free to use for registered users of this site, but I have never released the source code to the public. What you can see when you use it is the HTML code it generates, not the PHP code it is written in.

In particular: if we wanted to set up a way for people to play Superchess against each other on the Superchess.nl website, would it be allowed to use Game Courier for this? Would that be technically feasible, and what are the requirements on the server? (i.e. which sofware packages should be supported? Only PHP?)

Game Courier is all PHP on the server side, and it makes use of some JavaScript on the client side. It is integrated with the MySQL user database of this website, and path names of this website are hardcoded into it. I expect it could be made to work on any other site with PHP and MySQL, but modifications would have to be made.

As for permission, we can negotiate terms privately if Superchess.nl is really interested in using Game Courier.


🕸Fergus Duniho wrote on Fri, Oct 17, 2008 11:35 PM UTC:
One of my design principles for Game Courier has been that the browser is
the GUI. Game Courier already has better graphics than the GUIs I've
seen, such as Winboard and ChessV, and it supports many more games than
these do. With the coming addition of point-and-click moving, Game Courier
will be its own fully-functional browser based GUI for playing Chess
variants against other people online. I don't see what the point would be
in having it communicate with external GUI programs. Would this enhance
Game Courier's abilities in any way?

Rich Hutnik wrote on Sat, Oct 18, 2008 02:44 AM UTC:
If you open up Game Courier to outside clients, then people can design
clients on their own, to provide additional functionality, so you don't
have to.  It would also provide a way for IAGO to also capture stats.  In
addition, the standards for communication could also enable people who
create AIs to be able to interface with the CV site, to provide people a
chance to play against AIs on here.

If you don't allow for this, you will have to do all the work.  It
requires yourself to be a master of everything.  

By the way, Zillions is just an example of one GUI.  Zillions is the most accessible program I believe people have on here and own.  It was used as an example.

🕸Fergus Duniho wrote on Sat, Oct 18, 2008 03:35 AM UTC:
If you open up Chess Courier to outside clients, then people can design clients on their own, to provide additional functionality, so you don't have to.

It's called Game Courier, and that's just too vague an assertion. My question is what additional functionality could they add?

It would also provide a way for IAGO to also capture stats.

IAGO's ability to capture stats doesn't motivate me. After all, I'm not involved with IAGO.

In addition, the standards for communication could also enable people who create AIs to be able to interface with the CV site, to provide people a chance to play against AIs on here.

I don't know if I want that here. One thing I like about Game Courier is that it connects people together. If I want to play an AI, I can already use Zillions of Games, ChessV, Coffee Chinese Chess, etc. Besides, why would you want to play an AI through a website when you can just as well play against your own computer?

If you don't allow for this, you will have to do all the work. It requires yourself to be a master of everything.

I don't mind mastering lots of things, and I enjoy the sense of accomplishment I get from it. Besides, Game Courier is already incredibly functional, and I expect most of the work is behind me.


Rich Hutnik wrote on Sat, Oct 18, 2008 05:24 AM UTC:
Just a few comments for bet:

As far as functionality goes, when you go with open standards that enable
people to add more content, things can go in directions no one expected,
that would be of benefit for everyone involved.  It leads to innovation.

As far as IAGO goes, the CV site is involved with IAGO now.  The
Play.Chessvariants.org is part of the IAGO Clubhouse reference links.

As far as why have an AI on a website, well, not everyone has Zillions for
one thing.  Secondarily, you enable people to work on improved AIs without
having to also do GUI work.  Lastly, by having people able to play an AI
on a website, that gives them a reason to remain on the website, while
waiting for other human players to show up.  In fact, this approach could
enable contests to be run where people design AIs to compete against one
another.  They could have them log on the website and compete.

The idea of not needing to master a lot of things means that one can focus
on what one prefers to do.  However, if someone wants to tackle everything,
they are able to then create things that are beneficial for other uses. 
Like, say you happen to be able to do game sites/servers AND GUIs.  You
create a GUI other people use.  Also, get the notation to work right, and
the Courier system can then have someone create a rules engine the GC
system could connect to.  You get rules enforcement on the Game Courier
system that is missing now, and you didn't have to write it.  Someone
else did it for you.

H. G. Muller wrote on Sat, Oct 18, 2008 09:00 AM UTC:
Fergus:
| Game Courier already has better graphics than the GUIs I've
| seen, such as Winboard ...

This cannot be true by definition, as WinBoard allows the user to define
any piece anyway he wnts it to look...

| and ChessV, and it supports many more games than these do. 

WinBoard groups most of these other variants under the name 'fairy'.
It is not very useful to includes variants in the list for which there are
no engines and no servers.

| Would this enhance Game Courier's abilities in any way?

How do you play two engines against each other using a browser? How do you
play an engine against the server? Can GC handle blitz and bullet games?

H. G. Muller wrote on Sat, Oct 18, 2008 11:53 AM UTC:
To Rich:

It seems that what you want and what Fergus wants is fundamentaly
incompatible. It seems you are striving for a situation like exists on
normal Internet Chess Servers, and to which I am used as well: At any time
a large number of games is gong on, and a large variety of opponents is
available for new games. GMs and beginners, commecial engines, dumbed-down
open-source engines, and people trying to test the engines they are
building. People play mostly quick games, like 5'+3' or 12'+5'.
Engines are usualy on line 24/7 and many people play them (providing a
good test bed for their developers.)

This variety makes the typical ICS a thriving community, where everyone
can find what they need (provided they play normal Chess or a very limited
range of 'variants' such as Crazyhouse, Losers/Suicide, normal Chess with
non-standard initial positions, Chess960, and occasionally Shatranj. This
is a situation I would also like to see for variants. Offering one variant
only, without providing engines, is not enough to make a viable ICS, as the
unspeakable server shows.

I would like to see something similar to an ICS like FICS or ICC, but then
for variants. My interest would be to find Human opponents for the engines
I develop. I don't have Zillions, and I do not have the slightest
interest in buying it, as it plays like cr*p. I am not interested in
playing games myself against other Humans, I just want to see how my
engines do, against Humans or other good engines, in fast games, (in order
to play enough of them). So that I can spot their mistakes and correct
them.

Game Courier has a much more limited scope. It is basically a medium for
playing correspondence Chess between Humans-only, and Fergus would like to
keep it this way. What would be interesting to me lies far beyond its
scope.

So I think we should forget about Game Courier, (and Zillions!), and try
to find a medium that is more suitable for interactivegame playing than
the http channel of a web browser. ICS protocol is unfortunately not
variant friendly, nd ven fails to handle Chess960 properly. Something like
the unspeakable server would be a nice start, (using a Java client that
auto-downloads through the browser Java plugin), except that this is also
proprietry software, and is buggy on the server side.

Rich Hutnik wrote on Sat, Oct 18, 2008 03:36 PM UTC:
H.G, my interest is getting a group of people to agree to standards for
communications between systems that would enable people who make different
components have them work together.  The standards would be open standards,
to facilitate people creating different parts.  These standards get
adopted, and work well, then there is a chance someone could create a
plug-in for Zillions that would enable it to also be involved.

My interest isn't in Zillions, per-se.  Zillions was used as an example
to describe what I was going for.  I am interested in the 'plumbing'
being able to work.  This would enable what you are working on to connect
to other systems in the network, without having to fully understand what
people have in their systems.

So Zillions and GC has to refer to interoperabilty.

H. G. Muller wrote on Sat, Oct 18, 2008 06:01 PM UTC:
Well, different media need different protocols. Calling an engine that is a
DLL is different from opening a pipe to another proces, which is again
different from opening a TCP link to an internet server. In general, other
information has to be exchanged to get the thing to work. When connecting
to a server you will have to announce who you are (i.e. log in). When a
GUI starts up an engine, there is no need for that. That is just one
example.

Standard protocols do exist. WinBoard protocol is one of those, usable for
GUI-engine communication. ICS protocol is another standard, used for
client-server communication over the internet. Many hundreds of engines
use WinBoard protocol. Dozens of Internet Chess servers use ICS protocol.
Why not simply stick to the existing standards? If te answer is: 'but the
sites I want to connect to don't want to use those standards', then why
do you think they would use our standard if we develop a new one?

Btw, I heard that FICS might be convinced to provide the unspeakable
variant on their site. I hope this wil open ICS potocol to variants in
general.

Rich Hutnik wrote on Sat, Oct 18, 2008 06:16 PM UTC:
I will say here, there are multiple aspects to this.  Like in the case of
OSI, there are layers and different aspects that need to be worked on. 
There is the bit level.  There is the notation level.  There is the
uniformity in what labels mean also, and the same with what board positions map to one another. 

The interest here is to get different sites to coordinate their efforts
and agree to what they want to use.  I do believe that what is out there
should be used whenever possible.  If there are shortcomings, such as
games where you have stacks, piles, and regions, then these should be
dealt with also, through extension and tweaking.

The main thing is agreement and implementation.  Not rationalizing reasons
for not doing things, but having things done.  From an IAGO perspective, there is an interest in what is being done work with all abstract strategy games, not just chess variants.  My personal druthers would be that it could be extended to cover all boardgames and cardgames, so what is done will get adopted.

25 comments displayed

Earlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.