Rybka Chess Community Forum
I wonder if developers will make versions of their engines for the new google android O/S for smartphones?
These new google smartphones could rival the iphone!
The Rybka team consists of luddites who would never touch such a device :)
After Rybka 4, Vas will tell us more about his plans for other plattforms I guess.
Vas is a brilliant programmer. But somehow, none of the other plans to port Rybka to other platforms (Linux, Palm OS, various PDAs) seems to ever take place. Probably these other devices do not have the right memory sizes, 64 bit and other features Rybka profits well with. And squishing down a program to fit small memories is very time consuming. Perhaps he will someday hand off an earlier version of Rybka code to someone who could do this, but I rather prefer he start on Rybka 4, developing new ideas, than wear down his brain porting code. I once had to port someone elses code for the BridgeMaster program. The nightmarish code started appearing in my sleep!
We have a de facto linux port for the 64 bit version. but it's done by Steinar, not by Vas :)
FWIW, today's embedded devices are not really that weak anymore. The G1 (aka HTC Dream), the weakest Android phone, runs at 528MHz and has 192MB RAM. The various iPhones have something similar. Android runs Linux, the iPhone runs an OS X-like operating system. Both run regular 32-bit ARM code.
Of course, someone would need to make an UCI-capable GUI, but that's got nothing to do with porting the engine itself.
(I'm pretty sure that even if you couldn't get Vas interested, you could compile up some version of Fruit or Toga and get playing strength that would blow most of us completely out of the water while sitting on the train nevertheless.)
Disclaimer: My employer has a large interest in Android, and I'm contributing to it from time to time (I've translated the operating system to Norwegian). I don't speak for anyone but myself.
/* Steinar */
There's been a UCI-capable GUI (my own) for the iPhone since almost one year already, but so far it is only used by two programs (Glaurung and Hiarcs). Of course Glaurung's GPL license limits which programs can use this GUI (Hiarcs does it by a special agreement), but there is hardly any work involved in writing your own GUI anyway. I think I spent less than 20 hours total on the GUI, and this was without any prior experience with iPhone programming. Anyone with a Mac can just download the SDK, browse the documentation, and start coding. The coding process is ridiculously easy, even for a non-programmer like me. Porting the engine itself was, of course, nothing more than a straightforward recompile.
Considering the ease of programming for the iPhone, and the enormous market (the last time I checked, Glaurung for the iPhone had seen more than 100,000 downloads, and that was several months ago), it's astonishing that all the top programmers haven't invested a dozen hours porting their programs and hacking up an iPhone GUI.
By the way, I think you underestimate how weak current chess programs are on embedded devices. I estimate the strength of Stockfish 1.5.1 (used as the engine in the new iPhone Glaurung version which will be available in the very near future) on the 412 MHz ARM CPU in my iPhone 3G to be somewhere between 2000 and 2200 Elo. On newer and faster ARM CPUs it will obviously be a little stronger, but still beatable for average club and tournament players on a lucky day.
Are the current programs really that weak? I know Hiarcs, for example, recently had a very high performance rating (>2900) in a human tournament on a Pocket PC, and Stockfish is about the same strength as Hiarcs on a PC.
> I estimate the strength of Stockfish 1.5.1 (used as the engine in the new iPhone Glaurung version which will be available in the very near future) on the 412 MHz ARM CPU in my iPhone 3G to be somewhere between 2000 and 2200 Elo.
But if Stockfish is roughly the same strength as H12.1, how come they claim 2700 elo on the iphone? That's a big difference!
"Roughly the same strength" is only meaningful on a particular sort of hardware. Hiarcs and Stockfish are definitely nowhere near roughly the same strength on the iPhone. Hiarcs is a much older program, and was written at a time when computers were much slower than now. It is therefore not surprising that its algorithms and data structures work better than those of newer programs when forced to run on something as slow as a mobile phone. For the same reason, Hiarcs is severely disadvantaged on modern computers, and that it is still close to the top of computer chess rating lists is a phenomenal achievement. Everything considered, Hiarcs is a considerably more impressive program than Stockfish and most other newer programs.
Another important point is that Elo ratings are not absolute numbers. The number 2700 by itself means nothing, without reference to some specific scale. Only the difference between two Elo ratings within a single population of players has a meaning. The Elo numbers in a program with adjustable strength, such as Hiarcs on the iPhone, are designed in such a way that the differences in strength between the available Elo settings are roughly correct, and that it feels fun and rewarding to play against the program. For the purposes of meeting the first of these goals, the adjustable Elo range could just as well have been from 0 to 1600, rather than from 1000 to 2600, which is the available range on my iPhone (perhaps it goes all the way up to 2700 on the newer iPhone 3 GS, which I don't have). However, for psychological reasons, most users find it more enjoyable to lose against a strength setting called 2600 than a setting called 1600.
Why is GPL a limitation? As long as the two programs communicate over an open protocol and live in separate process spaces, the GPL is generally regarded (including by the FSF) not to apply to the other program.
/* Steinar */
You are right, but Apple's annoyingly strict rules concerning what third-party applications are allowed to do prohibit starting additional processes, and to load libraries at run-time. Therefore, the GUI and the engine must be contained in a single executable file. Technically, it is therefore not entirely correct to say that my GUI is UCI compatible, but it's not far from the truth: Any UCI engine can be adapted with a few trivial adaptations. Instead of receiving commands from the standard input, the engine receives its commands from a queue of strings (the commands themselves are a subset of the standard UCI commands). Instead of writing moves and search output to the standard output, the engine calls GUI functions for displaying search information and executing moves.
A GUI starting UCI engines as separate processes wouldn't be terribly hard to make, but such a program wouldn't be accepted at Apple's App Store (unless the rules are changed, but I'm not optimistic about that). Distribution would therefore be limited to jailbroken devices, which excludes the vast majority of users.
i think anything that runs java would run on android
(By the way, i use HTC Hero (android) and i am very very happy with it)
You can make native Android apps, no need for Java (at least not in the chess AI).
/* Steinar */
yes i know (in any case, native android apps are written in java + android api).
But isn't it that Android apps run on Virtual Machine and not compiled native?
You can run native code in an Android app just fine if you want to. Several apps already do this (say, ScummVM). The security model does not depend on the virtual machine, so you don't need any special rights either.
/* Steinar */
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill