124 lines
6.3 KiB
Groff
124 lines
6.3 KiB
Groff
|
|
||
|
|
||
|
GNU Chess: Experiences Learned
|
||
|
with Communal Sharing
|
||
|
by Stuart Cracraft
|
||
|
(and contributors to the GNU Project)
|
||
|
|
||
|
|
||
|
Limited sharing has characterized the computer chess community
|
||
|
for the past two decades. Occasional research articles give hints
|
||
|
and suggestions for useful features, but rarely reveal the real
|
||
|
details of the critically important advances. We will here
|
||
|
describe an effort underway (titled "GNU Chess") to create a more
|
||
|
open and friendly environment of sharing.
|
||
|
|
||
|
GNU Chess is part of Project GNU, a large-scale effort in which
|
||
|
the philosophical goals are far-reaching. We will not go into any
|
||
|
great depth about these goals as they relate to the larger pro-
|
||
|
ject, because these are described elsewhere [1]. However, we will
|
||
|
mention the basic issues and the changes we hope to encourage.
|
||
|
|
||
|
The start of the GNU Chess project was a natural result of the
|
||
|
experiences gleaned in writing a chess program. While the author
|
||
|
was at a progressive academic location [2], he was able to con-
|
||
|
ceive the idea of a communal chess program only after much heart-
|
||
|
ache. During the period of writing the initial version (which
|
||
|
has since undergone many improvements and whole revisions), it
|
||
|
became clear that the best features and most useful hints, the
|
||
|
very best of the heuristics, were hidden and difficult to find in
|
||
|
the literature.
|
||
|
|
||
|
Sprinkled across many books, research papers, magazine articles,
|
||
|
accumulated in the community, during the past 25 years, there was
|
||
|
literally a void of true, empirical programs. Locating usable
|
||
|
programs was difficult. Many programs were the result of academic
|
||
|
work in "ivory towers", and hence were inaccessible to the common
|
||
|
man. Other programs were sequestered in research think-tanks. Na-
|
||
|
turally, developers of commercial programs carefully guarded
|
||
|
their source in order to protect their investment. On the other
|
||
|
hand, a few chess program source listings had actually been pub-
|
||
|
lished, but these were not really very strong, often written in a
|
||
|
non-general language, and frequently more pedantic than practi-
|
||
|
cal.
|
||
|
|
||
|
The idea of a reasonably strong communal program solidified.
|
||
|
When we refer to a communal program, we do not regard this as
|
||
|
public-domain software. Rather, we refer to a program which is
|
||
|
under the shared authority of a number of individuals, the prin-
|
||
|
cipal contributors. These individuals have experienced and real-
|
||
|
ized the positive results of a sharing community and the rapid
|
||
|
improvements that come through contributing in such a community.
|
||
|
Further, these individuals devote time and energy to coordinating
|
||
|
the contributions of other individuals. While they exercise a
|
||
|
certain editorial right, this is usually not exercised arbitrari-
|
||
|
ly; instead, a discussion is often undertaken.
|
||
|
|
||
|
Eventually, a working C program that played chess was available.
|
||
|
The coordinating institution for Project GNU [3], accepted our
|
||
|
suggestion of inclusion of a chess program in the GNU distribu-
|
||
|
tion. Initial distribution of GNU Chess commenced in October of
|
||
|
1986. Interest in the project increased rapidly.
|
||
|
|
||
|
Contributions came in from many places and people. Interfaces to
|
||
|
X-windows and SUN-windows were donated, thus allowing very fancy
|
||
|
chess fonts on bit-mapped screens. Also, contributions involving
|
||
|
large portions of opening books such as MCO and collections of
|
||
|
master games were added to the distribution. Additionally,
|
||
|
tree-search modifications and heuristics were provided, and occa-
|
||
|
sionally even entire rewrites.
|
||
|
|
||
|
The program advanced in strength by several USCF class intervals
|
||
|
during a period of less than one year. During this time, many
|
||
|
unusual features and enhancements were added to the program, usu-
|
||
|
ally under the coordination of two or more people, with one work-
|
||
|
ing in a distant-advisory capacity to the other. Frequently, gra-
|
||
|
duate students would give up significant time from their thesis
|
||
|
work to devote energy to contributing. Their corporate counter-
|
||
|
parts would often give up project time to make their donation.
|
||
|
|
||
|
Contributors would often enter the project in a very forceful way
|
||
|
and then having made their contribution, learn the viability of
|
||
|
communal sharing once others had stepped in and contributed to
|
||
|
them, thus providing considerable reinforcement. Frequently, con-
|
||
|
tributors would then go into "hibernation" for a long period of
|
||
|
time, but most of them remained open to contributing and were
|
||
|
helpful when asked to reprogram their particular contribution in
|
||
|
a more recent version.
|
||
|
|
||
|
GNU Chess has made great strides in relatively little time. It
|
||
|
has run on many different hardware architectures and has been
|
||
|
compiled by a number of C compilers [4]. A sampling of the com-
|
||
|
puters on which the program has run is: National 32032, Vax
|
||
|
11/750, 8550, 8600, 8650, Motorola 68020, CCI 5/32, CCI 6/32
|
||
|
(tahoe), Cray XMP.
|
||
|
|
||
|
It is our belief that GNU Chess will stimulate graduate research
|
||
|
in computer chess theory and practice. When students are able to
|
||
|
easily obtain a state-of-the-art program in order to test out
|
||
|
their ideas, they will no longer need to reinvent the wheel. The
|
||
|
students will be able to investigate their research areas much
|
||
|
more thoroughly, because they will spend more time on the specif-
|
||
|
ic research areas they are concerned about. Basically, GNU Chess
|
||
|
"frees up" time in order to get on to more fundamental issues.
|
||
|
|
||
|
We also feel that as other researchers gain trust in the GNU
|
||
|
Chess project, they will be more likely to release their results
|
||
|
directly and rapidly, through journal articles, or directly to
|
||
|
the GNU project, and in fact become contributors and join the
|
||
|
present list [5]. At the very least, a communal, ever-growing
|
||
|
program will encourage the few "closeted" researchers to be some-
|
||
|
what more open in their approach to disseminating advances.
|
||
|
|
||
|
In whatever form it takes, the progress toward elaboration of
|
||
|
machine chess is ongoing, and we hope that GNU chess will be
|
||
|
helpful to the community. Copies of GNU Chess source and "book",
|
||
|
as well as additional experimental code are available from the
|
||
|
Free Software Foundation [3] or the author [6].
|
||
|
|
||
|
|
||
|
[1] The GNU Manifesto, Richard Stallman, Free Software Foundation, Inc.
|
||
|
|
||
|
[2] University of Southern California, Information Sciences Institute.
|
||
|
|