John F. White

From Computing Pioneers
Revision as of 14:15, 5 December 2020 by Computingpioneers (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

John F. White: Writing Strategy Games On Your Atari Computer & Superquerg

This interview took place via email from July 13 through 16, 2020. This text-based version is the original published version. An audio version will be published on ANTIC: The Atari 8-Bit Podcast, which is the reading of this canonical text version.

Interviewer: Kay Savetz for ANTIC: The Atari 8-Bit Podcast

John F. White is author of the book Writing Strategy Games On Your Atari Computer and the creator of Superquerg and Negaquerg, computer chess programs that were distributed in New Atari User magazine.

He was also a contributor to the UK computer magazines Popular Computing Weekly, Personal Computing, Practical Computing, and Computer Weekly, often writing about computer chess and game strategy.

His book Writing Strategy Games On Your Atari Computer, published in 1983, offers “techniques for intelligent games,” with advice and BASIC code for programming tic-tac-toe, checkers, chess, and other board games.

New Atari User’s description of SuperQuerg — it was a “disk bonus,” not a type- in program — was: “SuperQuerg Chess is a third generation program with alpha-beta pruning and iterative deepening. An alpha-beta window is also employed. Uses Shannon A and B strategies, killer heuristic and chopper functions, new methods for searching to deep levels and for other game strategies. ... Querg Chess is unusual among chess programs in that it relies more on the strength of its positional strategy than on its tactical play. Artificial Intelligence methods are used to switch between strategic and tactical searching, as the program considers appropriate.”

John organized the 1982 Chess Computer Symposium, the first major tournament to assign gradings to chess computers by their play against human opponents. He is co-creator of Blitz Latin, Latin-to-English language translation software.

This interview took place via email from July 13 through 16, 2020.

KS: First, why do you prefer to do our interview via email instead of a phone call?

JW: I'm not one of the Facebook generation. And definitely I'm not much keen on self-publicity. I have learned over the years that one never gains much from exposing oneself to public view. And that was before the word ‘trolling’ had been invented.

KS: Tell me about Superquerg.

I would never have guessed that my chess program for the old Atari 8-bit computers would one day generate interest!

Unfortunately, it was all so long ago, that I just can't remember much about it now. But I do remember that I wrote a computer chess program for the early Atari 8-bit models, and it was distributed with Atari User magazine in the UK. It had what was then a very rare feature: the ability to 'think' while it was awaiting the opponent's move. However, the graphics were very poor - again I can no longer remember the details, but I think it probably just used 'WK' for 'white king', 'BN' for 'black (k)night' and so. The magazine was short of money, and I received a year's subscription to it instead of payment!

Coincidentally, though, it was when I needed to find a machine translator for Latin - and discovered how dismally slow and poor-quality existing computer translation programs were - that I decided to write my own program to translate Latin, using the techniques acquired from computer chess to make the very fastest possible program. That was about year 2001 or 2002, using William Whitaker's famous electronic Latin dictionary (with his permission and blessing - we collaborated together until his death in 2010.)

The best existing Latin translation program at that time had taken 20 minutes on a contemporary PC/Microsoft Windows computer to translate just one paragraph of my Latin text.  The prototype Blitz Latin, on the same computer, gave a better translation of the same paragraph in 0.02 seconds. That's when I knew I  had a good product. A fast program can have far more heuristics for translation, all other things being equal.

I have still on my computer a self-penned computer-chess program for PC/Windows systems. It has a different pedigree from the old Atari version - I'd had some new ideas - and the graphics are still weak. It plays a very strong game of chess, but I can't compete with dedicated teams of experts in computer chess and graphics. My program thrashes Microsoft's own chess program running on the same computer in nearly every game though, playing at one-fifth of the time-setting of Microsoft Chess!

KS: I found Superquerg and Negaquerg. They look better than you remember. They show the pieces as graphics, not bad at all considering the time. I've attached screenshots.

JW: Many thanks indeed for the screen shots of my old Atari chess program - much better than I had hoped or remembered, although undoubtedly the contemporary commercial competition all had better graphics. One (whose name I have forgotten) was definitely superior in play too. It was released by David Levy’s company based in the UK as a ROM cartridge for the Atari 8-bits. 

‘Superquerg’ is the proper chess program.

‘Negaquerg’ plays Suicide Chess, a form of chess where the objective is to give away all your pieces as fast as you can. The side-on-move must always make captures when available, but can choose which capture if there is more than one. There is no concept of ‘check’ or ‘checkmate’, and ‘en-passant’ (a special pawn move) is not permitted either. Negaquerg was the subject of a magazine article (by me) in ‘Personal Computer World’ magazine (UK), and attracted quite a lot of international interest. I received not only PCW’s standard fee for the article - PCW paid one of the best rates - but also secondary royalties for publication in a few international computer magazines too.

One of the last articles that I wrote for [New] Atari User magazine actually comprised four articles with a lot of code written in such a manner that it could be used with either the standard Atari Basic module or with a 3rd-party compiler to provide an alternative Basic . Compilers make programs run much faster than interpreted programs - they are pre-compiled to the native machine language of the computer. My code described an ‘Adventure’ program where the player had to control a figure with text commands - like the Scott Adams adventures, if you remember them. I’d already joked that far too many ‘adventure’ programs were set underground battling trolls or other enemies to find treasure. I had a different concept: you were an outraged picnicker clutching a bucket of snow - which you were going to dump on the head of the weather-presenter for forecasting good weather for yesterday’s picnic. Your clothes were still soaked! But first you had to find him in the fortress complex of the Weather Centre - designed to keep complainers out. And the snow was melting all the time. I spent most of the articles apologising for the weird code I had written to try to accommodate users of both standard Atari Basic and the Compiler Basic. But probably my articles provided the only comprehensive guide on how to use the compiler.

KS: I found your weather centre adventure game articles, scanned at Internet Archive!

JW: I’m delighted that you found my four-article description of an adventure in a weather centre. I kept the tear-outs from the magazine for ages, but (naturally) as soon as I wanted them in the past few days, I couldn’t find them. I’ve often planned to translate the code into the ‘C’ programming language to create a toy adventure for the amusement of others. Now at last I might get round to it.

KS: I’d like to talk about your book, Writing Strategy Games on Your Atari Computer. I have a copy, and scans are available online — both the UK and the US versions. It’s interesting that they didn't change "draughts" to "checkers" for the American edition. I'm curious how this book came to be, and how well it sold.

JW: The publisher was Sunshine Books (London, England), who also owned the monthly ‘Your Computer’ and later the magazine ‘Popular Computing Weekly’. I’d been writing articles on computer chess intermittently for both magazines (largely I think due to the influence of one of the editors, who worked first for Your Computer, then for Popular Computing Weekly.) One day I was phoned up out of the blue by the editor-in-chief, who asked if I would write a book about computer chess and/or other computer games. I’d never written a complete book previously, but agreed anyway, and really the book was written as a series of brand-new magazine articles, all put together to make one volume. Sunshine Books distributed books worldwide from their London base, which certainly explains why ‘draughts’ never became ‘checkers’ for the American market.

The book was published in Germany as ‘Strategische Computerspiele für Ihnen Atari’ (Markt und Technik Verlag, 1984) and in the Netherlands as ‘Strategische Spellen voor de Atari’ (Kluwer Software-reeks; 1986). I received royalties from all three foreign publications. My father, a big traveller after he retired, told me that he had seen an English-language copy on sale in a bookshop in South Africa!

There was also an English-language version for the contemporary Commodore 64 computer, at the insistence of Sunshine Books. Apparently C64s sold four times as many units as Atari 8-bit units at about that time. But I didn’t have a Commodore 64. Still, a work-friend did have a C64, and he undertook to do the code conversion from the Atari. This meant in practice that I spent a lot of time at his house debugging - he had taught himself how to program, but lacked professional experience. The arrangement was that I took 80% of the royalties, and he took 20%. It proved to be an amicable arrangement, and we never quarrelled. However the C64 was primarily a computer for gaming, whereas the Atari was designed primarily for programmers. My Commodore 64 book never sold as well as the Atari version. Sunshine Books did manage to sell the European rights for a nice sum, which again we split 80:20.

In passing, I’d like to mention what a delight it was to use the old 8-bit computers. They were a programmer’s dream, with excellent documentation from Atari itself. Unfortunately, when Atari released the 16-bit successors, it decided initially to sell its documentation only to professional software houses. That left me out of the loop for many years, even though I owned one of the 16-bit Ataris, and, by the time the documentation was released, I had acquired my first IBM PC with Windows 3.

KS: What did you learn while writing that book?

JW: First and foremost, don’t write a book as a series of magazine articles! I’ve never done that again, although these days I’m a much published author. Books of which I am proudest are ‘The Roman Emperor Aurelian - Restorer of the World’ (Pen and Sword Publishers (UK), hardback; new paperback edition due in October 2020) and ‘The Milk Cows’ (the story of Germany’s submarine tankers 1941-45; also Pen & Sword). Pen & Sword books are well distributed in the USA.

Secondly, books written competently on factual subjects are always likely to find a publisher, although you may have to send a lot of letters to find a suitable publisher. That’s because only experts can write properly on factual subjects, whereas anyone can write a novel of some sort. It is very, very hard for a new novelist to be published, there is too much competition.

Thirdly (from more recent experience), don’t rely on sales from e-Book format. Reviewers receive hard-copy books to read. But the owners of e-Book readers (eg of Kindles) only purchase best-sellers, they tend not to read more widely. So anything that isn’t in hard-copy won’t be read - unless the author is lucky enough to get rave reviews from those who have been given free hard-backs. (It seems that sales of e-Books are falling rapidly anyway.)

KS: What language were Superquerg and Negaquerg written in? My assumption is a hybrid of BASIC and assembly language. 

JW: From memory, all in assembly. Definitely assembly for move calculations, a small chance that the interface was in BASIC but I don’t think so.

KS: You mentioned that it was unique in its ability to consider its next move while waiting for user input. Can you tell me about that development? 

JW: It was unique among Atari chess programs at the time for considering its answer to user moves while the user was considering his move. However precedent for this had already been established. Dedicated chess boxes like Sargon 2.5 and the Great Game Machine already had this ability, so the original idea was not mine.

Superquerg used the Vertical Blank Interrupt (when the monitor screen was refreshed) to carry out its moves on a shadow board. If the user played the move previously considered best by Superquerg, then the shadow board was copied into the main board and the program made its move (if thinking was completed) or continued to think in the shadow board until its allocated time was used up, when the final position on the shadow board would be copied to the main board. If the player did NOT play the move hinted by the computer, then the shadow board position was abandoned, and Superquerg began thinking again on the main board. (I didn’t implement this idea for Negaquerg - very few players could beat it anyway, mostly due to unfamiliarity with the concept of Suicide Chess.)

KS: In one of the online lists of Atari software, in addition to NegaQuerg and SuperQuerg, I see something by you called "Chess Openings for Beginners." Was this a product or from another magazine article?

I was a subscriber to the International Chess Computer Association (ICCA), an English-language academic journal based in the Netherlands. In one article, I described how Superquerg had fared in a league table of games against five other chess computers or chess programs all against one another (it came fourth out of six at equal speeds), while a later second article would outline my method for an easy way to handle transpositions in book openings for chess. An editor added to my description of Superquerg - where I had acknowledged that it thought on its opponent’s time - that this was a rare capability (at the time, of course).

Since it is possible to reach the same position in chess by a variety of different opening manoeuvres, how best could one achieve this result without using memory-hungry transposition tables? I pointed up in my second article that short strings of a few opening moves could be matched against a short list of alternative ways of reaching the same position, with play carrying on from whatever line of chess was considered the main line from that point.

Academic magazines rarely pay contributors - the glory of being printed is supposed to be enough, and academics receive salaries. I wasn’t receiving a salary, so - probably - I reworked the article as ‘Chess Openings for Beginners’ (ie, beginning chess-programmers.) I have to say that I don’t remember any such derivative article though.

KS: What was the biggest challenge of programming chess games in those early days?

Without doubt, the two equal problems were lack of computer RAM and insufficiently fast processors, at any rate so far as domestic computers were concerned. It was also essential to know assembly language and, of course, you needed a compiler for the assembly code. Academic chess programs were often written in ‘C’ (still very popular today), but ‘C’ compilers tend to occupy a lot of RAM and were too large for most domestic computers. 

KS: How did you get interested in chess?

JW: Learned it at school. There were annual competitions, which the sixth-formers (more experienced, of course; at 16+ years) always won. But in due course I became a sixth-former too, and in my final year I won the chess championship. Then I went to university, and was slaughtered at chess by all and sundry.

KS: How did you get interested in computers?

JW: There was a lot of talk in the newspapers, in my later school days, that computers were the up-and-coming device to transform working patterns. So I thought I’d better get in on the ground floor. I bought a book ‘Teach Yourself Computer Programming’. Teach Yourself was a famous brand-name at the time, since superseded by the ‘Dummies’ series. The book happened to teach programming in Fortran - it could have been Cobol or Algol, both of which have largely disappeared since, but Fortran remains popular. At university, I attended all the voluntary courses on computer programming (I was there to read chemistry) and we volunteers were permitted to use the university computer for programming during its slack periods. As soon as the first computers were available for personal use, I just had to have one. It required programming in Basic, but - miraculously! - at the time Basic was little more than a subset of Fortran. I was able to program my new computer almost at once.

KS: What is a "querg"? https://www.chessprogramming.org/Querg says "The name Querg has no meaning." If that is accurate, how did you come up with that name for your program?

JW: The name ‘querg’ came from the name of my software company at the time, Quergsoft Ltd. The name Quergsoft still appears on my Blitz Latin machine translation program, although the company itself was wound up voluntarily around 15 years ago.

The name ‘querg’ has no meaning, I just like the sound. When asked the origin of ‘Quergsoft’ (my contracting company) by curious people for whom I was doing contract work, I used to reply ‘Quasi-Ergonomic Software’, a title which sounds impressive, but actually has no meaning either.

KS: Did you learn assembly language from a book also? I ask because assembly is considered more challenging to master than BASIC or Fortran.

JW: Yes, but I’ve long forgotten the title and author.

KS: This is certainly a naive question, but ... now that's it's 2020, has the problem of computer chess been solved? Are the programs as good as they're going to get?

JW: I’m not sure what you mean by ‘the problem’, but certainly strong chess programs running on main-frame computers can beat any grandmaster regularly. Commercial chess programs, intended for sale and use on domestic computers, will beat pretty much any but the strongest of grandmasters at their highest levels.

However, all this uses ‘brute force’ to search deeper and deeper into the sequence of moves and counter moves for each side. ‘Selective Search’, which mimics the way human grandmasters play, remains much weaker. Most human grandmasters examine only a handful of moves before making their choice. Brute force, by its nature, examines every possibility. Think of the problem of trying to make an artificial device that will out-run a swimmer over 100 metres. A motor-boat certainly will win, but it uses a completely different process from swimming. So far as I know, there is not a robot with flailing arms that can out-swim a human swimmer. Just making it float would be quite an achievement. So have we solved the ‘problems’ of chess and of swimming, or not?

In any case, the academic programmers of different chess programs still have an incentive to try to beat each other, even if their human opponents ran out of steam long ago.

KS: I will ask the same question about machine translation of language. Based on my limited experience with Google Translate, my assumption is there's a still long way to go here. What is your perspective as the creator of Blitz Latin?

JW: There are two current ways of making a machine translator. The first is to examine each sentence (better, each paragraph) to assign the vocabulary, the sentence structure and the word order. This is how things used to be done, and it is how Blitz Latin runs - deliberately. Needless to say, this approach is time-consuming for the programmer and requires expert input.

The second is to make a so-called statistical translator (a gross misnomer - ALL translators use statistics to work out which words are more probable in ambiguous cases.) Statistical translators function first by chopping up existing human translations of foreign languages into small electronic jigsaw pieces (metaphorically speaking). A jigsaw piece has a few words of eg French on one side and their corresponding English meaning on the other. So you are translating your text with chopped up pieces from many texts created by other human translators. This works surprisingly well where the word orders of the texts are the same, and there are no inflections. Google puts much emphasis on the fact that it now uses neural networks as a fine-tune for statistical translators, but this suffers from the same problem. The method is very weak for languages like Latin, which comprises nearly all stems and inflections with words arranged in their order of emphasis.

In the final analysis, ALL translations of a foreign text into another language require human knowledge, to assign ambiguous meanings correctly. (If I say ‘I hit a ball with a bat’, have I struck the ball with a shaped wooden stick or with a small flying mammal?) Google’s big problem with translation is that it does everything on an industrial scale, which requires machinery (in this case, computers). In the real world, all accurate translations are made by human professionals, and this will remain so for the foreseeable future. Blitz Latin is intended to be only a tool to aid translation of Latin, but I’ve spent nearly 20 years now improving it and it is the assistant of choice for professional translators of Latin.

KS: What do you do these days?

I alternate between improving my Blitz Latin machine translator and playing golf. Plus occasional contract computing.

KS: If you could send a message to the people who still play with Atari computers today — and you can, now — what would you tell them?

JW: Today, all games are judged by their graphics ability. In the old days, when graphics were weaker, programmers had to make games that were interesting, not beautiful. I got far more fun out of Star Raiders and Pac-man than from any modern equivalent. The game-play was better.

I've noticed that when old games become updated for modern use, it is the graphics that are improved, not the game - a waste of time. When you have finished marvelling, what are you left with? Just the original game, but now confusing to play.

Links:

John F. White at ChessProgramming.org: https://www.chessprogramming.org/John_F._White

Querg at ChessProgramming.org: https://www.chessprogramming.org/Querg

John F. White at AtariMania: http://www.atarimania.com/list_games_atari-400-800-xl-xe-white-john_team_1403_8_G.html

Download SuperQuerg and NegaQuerg: http://a8.fandal.cz/detail.php?files_id=4349

Querg Chess article in ICCA Journal: https://archive.org/details/john-f-white-querg-chess

The Amateurs' Book Opening Routine in ICCA Journal: https://archive.org/details/john-f-white-amateurs-book-opening-routine

Blitz Latin: https://blitzlatin.com/

Superquerg announcement in New Atari User: https://archive.org/stream/Page630Nov87/Page6/Page6-64-Oct93#page/n44/mode/1up

Writing Strategy Games on Your Atari Computer: UK version: https://archive.org/details/writing-strategy-games-on-your-atari-computer/mode/2up US version: https://archive.org/details/writing-strategy-games-on-your-atari/mode/2up 

A Colorful Combination article: https://archive.org/details/atari-user-uk-magazine-12/page/n25/mode/2up

Weather Center adventure game articles: Part 1: https://archive.org/stream/Page630Nov87/Page6/Page6-48-Feb91#page/n25/mode/1up Part 2: https://archive.org/stream/Page630Nov87/Page6/Page6-49-Apr91#page/n17/mode/1up Part 3: https://archive.org/details/New_Atari_User_Issue_050_1991-06_Page_6_Publishing/page/n17/mode/1up Part 4: https://archive.org/details/New_Atari_User_Issue_051_1991-08_Page_6_Publishing/page/n11/mode/1up

Checkers program by John White, Creative Computing: https://archive.org/details/CreativeComputing1982-12/page/n329/mode/1up

Bill Lange’s blog on Writing Strategy Games On Your Atari Computer: https://atari8bitads.blogspot.com/2020/08/the-accessory-shop.html