Fri 6 Feb 2009
As is apparent if you are watching the date of posts, it has been over a year since my last posting to this journal, and in that time, much has come to pass to grow the state of Go gaming on the iPhone. There is today a freely available program to play multiplayer matches live over the internet, observe tournament matches in progress and kibitz; a program which allows (at latest count) over 10 thousand professional games, 2 thousand problems ranging in difficulty from 30 kyu to 6 dan, encompassing many lifetimes worth of study material and costs just $10; a self-described inexpensive Go app which allows the automated playback of ancient well-known game records, displayed full screen for your viewing pleasure and study (or perhaps just your confused stare, if you are a mere dabbler in the visual aspects of our game.)
One lovely program substitutes quite nicely for the bowls of stones and board in case of an impromtu match with a fellow enthusiast, one who doesn’t mind passing the single phone back and forth or scrunching up with you over its screen like a tiny little magnetic set. It is charmingly called simply, “Stones.” Some critique it for a lack of a computer player such as GnuGo, but I find it one of the best of the bunch based on its look and feel which is different from all the other apps. Stones provides virtual bowls out of which you drag your stones onto the board for each move, an adaptation of spatial reasoning that shines on the unique environment that the iPhone and iPod touch represent.
There are advantages, flaws, and features to each different implementation. The look and feel of an app also count a great deal in the final judgment because this is a game one pursued in one’s leisure, and must therefore be enjoyable to study and gain mastery in. I would like to review each in more depth, but the executive summary for those who have not been following the development of the App Store ecosystem and iPhone coding tools is good: plenty of software exist doing a variety of different related tasks, providing an ample number of niche applications that can be solved by different software developers. There’s plenty of good code out there to learn from, and lots of evolving implementation ideas out there happening in indie gaming generally and iPhone app development specifically.
Other board games in the App Store are also bringing good new implementation ideas that would fit well with Go on the iPhone. There is an app called “Chess With Friends” by Newtoy, which uses turn-based play which is reminiscent of the Dragon Go Server and of course, iShudan. The interface takes a quick reading of your current game in progress and the current move on opening and includes a running counter of the “moves served” via the app.
The concept of a turn-based game has value seperate from other implementations because it is asynchronous, and well suited for situations where players are working from disparate time zones and may otherwise have difficulty synchronizing their schedules. Turn-based play offers different challenges to a developer than real-time play does in making the app useful and easy to continue using over time. Turn based games come with an increased risk of wasted play effort due to abandonment, but offers in exchange source material for critique and self-study.
One of the areas in which most of the existing apps lack in are in the way they treat the users’ data. In a game that is suitably responsible for large volumes of ever increasing data, the output and input of these tiny tools should function like UNIX pipes: chaining together small single-purpose utilities to create more complex, highly powerful yet concise statements that focus on desired results with a laser-like focus. The reason that “Web 2.0″ craftsmen are crazy excited about things like mash-ups and XML and so on is because it makes the glue of all of these distinct tools interoperable and Open in a way that transcends simple commercial interests.
If the rise of Linux (both server and desktop) and similar Open Source poster children such as Firefox and Apache to challenge well-funded commercial interests no less than Microsoft teaches us something, it is that there is some kernel of magic inside this idea of opening or sharing our data, our constructs of ideas in the bare language that they work on our behalf.
The iPhone Go software marketplace, then, mirrors that of the larger game development community: our games should give us our data, export it, allow import and permutation, and creative enhancement or contribution back whether for individual achievement or commercial gain.
Our kifu, or game records, belong to the players in a game, similar to the performance of a musical art, and the results of playing in the game engine should allow the exit, and ideally the importation, of this data in ways that allow enhancement and interoperability that benefits all programs in the noosphere.