Author: Tord Romstad
Date: 10:22:45 01/06/04
Go up one level in this thread
On January 06, 2004 at 11:03:06, Reinhard Scharnagl wrote: >On January 06, 2004 at 10:40:57, martin fierz wrote: > >>On January 06, 2004 at 06:53:39, Reinhard Scharnagl wrote: > >>[snip] > >>>What I miss is a really modern (DLL based) protocol between an engine and a GUI, >>>which consequently has a unic move encoding regardless whether normal chess, >>>nocastle or fischerandom, additionally would be flexible to support 10x8 boards >>>with more piece types, doing this with reduced intelligence by using engines >>>themself as referee e.g. to decide whether moves are legal or not. > >>i did something like this for checkers - my winboard-inspired interface can use >>engines which use other rules than the pre-coded american checkers (however, >>only 8x8). in these cases it requires the engine to have an "islegal" function >>which takes the move the user clicks on the board, and the engine tells the >>interface whether it should accept that move or not. >> >>however, what you call "modern" - the dll - is not such a good idea IMO. i did >>just that for my checkers interface, and i think the console output thing of >>winboard/UCI is far superior. dlls are windows only. console programs run >>everywhere. if i started doing this again, i'd use consoles now - but i guess >>i'm stuck with the dll... > >there are similar technics as DLLs in Linux etc., but Linux is of no interest >for me. Looking on the traffic statistics of my homesite: >[http://www.rescon.de/Compu/fullchess1.html], there can be found only about 2% >Linux and 1% Mac or Sun. Moreover Linux does not work correctly with my hardware >and parallel installed Windows XP pro. So why should I also target other OSs >already being here very exotic with my goals. When designing a protocol, you shouldn't think only about your own goals. The protocol is for the community, not just for you. That there is something similar to DLLs in Linux (I assume you are right about that, though I don't even know what a DLL is) is not good enough. I want to use exactly the same code to compile my engine in MacOS, Linux and Windows. Thanks to the fact that both of the two wide-spread protocols use console IO, it is unimportant that Linux does not work on your hardware. You could still easily port your engine to Linux, by simply borrowing somebody's Linux box and recompiling your sources. My own situation is precisely a mirror image of yours: We have no Windows machines around here, only Macs and Linux machines. I haven't used a Windows machine since the days of Windows 3.0, and am therefore almost 100% Windows-illiterate. But despite this, thanks to the wise choices of Tim Mann and Stefan Meyer-Kahlen, my engine now runs on Windows machines. Porting it was simply a matter of copying my source code to a Windows machine and typing 'make' from the command line. If it were just marginally more complicated, it would never have happened. >COM moreover allows to specify events with the interface. That is, what makes >that solution "modern". But may be, that somebody has a wonderful and better >approach for a modern protocol. I would like to read from that then. What is wrong with using console IO for the protocol? I cannot see any disadvantages at all. It is portable, it works well over the network, and it makes it trivial to port an engine to a new OS without having to learn how the OS works. In particular for non-technical people like myself, it is extremely convenient. I don't have the time nor desire to learn any programming beyond basic console IO functions, especially not for a foreign OS. Tord
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.