Abstract
We have ported an open-source chess engine to Android using the Native Development Kit (NDK), tested it against other engines, and played against it ourselves. The porting process revealed a number of challenges and insights, some of which may be similar across other mobile application ports, while others are likely unique to chess. We found that few changes were needed to have a working engine, and that the architecture of chess engines based on the universal chess interface (UCI) protocol enabled quick adoption of an advanced user interface. We also found that the native development experience made it difficult to find the path to a complete solution requiring relatively minor changes. In this paper, we present our solutions, along with observations about the porting process in the context of the UCI-based chess engine architecture. We believe that these observations will be of interest to developers of other applications as well.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bik, A.: Chessbase compatible engines. Aart’s Blog (2013), http://aartbik.blogspot.com/2013/07/chessbase-compatible-engines.html (retrieved)
Chess Programming Wiki (2015), https://chessprogramming.wikispaces.com/ (retrieved)
Computer-Chess Wiki (2015), Chess Engine List. Computer-Chess Wiki, http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:chess_engine_list (retrieved)
Google, Android NDK CPU features detection library. Android NDK Documentation (2014a), $NDK_HOME/docs/CPU-FEATURES.html (retrieved)
Google, Bionic C library overview. Android NDK Documentation (2014b), $NDK_HOME/docs/system/libc/OVERVIEW.html (retrieved)
Google, Android NDK ChangeLog. Android NDK Documentation (2014c), $NDK_HOME/docs/CHANGES.html (retrieved)
Hyatt, R., Cozzie, A.: The Effect of Hash Signature Collisions in a Chess Program. ICGA Journal 28(3), 131–139 (2005)
Levy, D.N.L., Newborn, M.: How Computers Play Chess. W. H. Freeman & Co., New York (1990)
Liu, F.: Android native development kit cookbook. Packt Publishing, Birmingham (2013)
Meyer-Kahlen: UCI Protocol. Shredder Computer Chess (2000), http://www.shredderchess.com/chess-info/features/uci-universal-chess-interface.html (retrieved)
Pohl, S.: Bullet-ratinglist of the world’s strongest engines. Stefan Pohl Computer Chess: private website for chess engine tests (2014), http://spcc.beepworld.de/top-bullet-list.htm (retrieved)
Ratabouil, S.: Android NDK: Beginner’s guide. Packt Publishing, Birmingham (2012)
Schneirer, K.: Karl’s Blog (2013), http://c4akarl.blogspot.com/ (retrieved)
Thoresen, M.: TCEC – Archive Mode. TCEC (2014), http://tcec.chessdom.com/archive.php (retrieved)
Uckardes, G.: RAPIDROID: Update 2015/01. Chesstroid: a chess experience for the Android user (2015a), http://chesstroid.blogspot.com/2015/01/rapidroid-update-201501.html (retrieved)
Uckardes, G.: RAPIDROID RELOADED: March-2015. Chesstroid: a chess experience for the Android user (2015b), http://chesstroid.blogspot.com/2015/03/rapidroid-reloaded-march-2015.html (retrieved)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abshire, C., Gusev, D. (2015). Firenzina: Porting a Chess Engine to Android. In: Kim, K., Wattanapongsakorn, N. (eds) Mobile and Wireless Technology 2015. Lecture Notes in Electrical Engineering, vol 310. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-47669-7_19
Download citation
DOI: https://doi.org/10.1007/978-3-662-47669-7_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-47668-0
Online ISBN: 978-3-662-47669-7
eBook Packages: EngineeringEngineering (R0)