Little Go 1.0.0 released
Little Go 1.0.0 has been released to the App Store a couple of days ago. The GitHub issue tracker has a list of all issues that I worked on for 1.0.0, and here is an excerpt of the changelog for the visible features changes:
- Superko is back (it was disabled in 0.12.0), but simple Ko remains the default. You can select the Ko rule when you start a new game (#169).
- Little Go now supports area scoring (#30). I implemented this mostly out of necessity because I realized that Fuego does not properly support territory scoring. That's also the reason why area scoring is now the default scoring rule.
- Accurate scoring is now possible because stones can be marked to be "in seki" during scoring (#190).
- A little goodie that I wanted to implement for a long time is the display of player influence, aka territory statistics (#18).
These features, however, were not why it took me so long (over 3 months) to finish the 1.0.0 release. Rather it were the things that changed under the hood:
- Upgrading to Xcode 5 cost me quite a bit of time (and a lot of nerves!) until I realized how I could get back unit tests to run. Initially I also tried to upgrade from OCUnit to XCTest, but had to abandon the effort because I am still using the 6.1 SDK. This Stack Overflow question summarizes my troubles.
- I completely rewrote the 3rd party software build process to use Git submodules. For this I had to learn about Git submodules in general, and in particular about svn2git so that I could mirror the Fuego Subversion repository with Git. The end result is the fuego-on-ios repository on GitHub, which is intended to provide other people with a base for creating their own Fuego builds for iOS.
- Last but not least, I decided to upgrade from Fuego 1.1 to the trunk version of the Fuego source code. This gave me a nasty surprise because the trunk version of Fuego uses much more memory in its default configuration than Fuego 1.1 did. So much memory, in fact, that Little Go becomes unusable for iOS devices with 256 MB of memory, and unstable for iOS devices with 512 MB memory. Although I soon found out how to reduce memory usage, a lot of effort went into making sure that Fuego works correctly with this low-memory configuration. The results are published on the Fuego wiki.
Implementing most of these technical changes were not fun, and thus releasing version 1.0.0 has not been an occasion of joy, but rather one of relief. In the end, I must admit, that my motivation was so drained, and I was so weary of the whole thing, that I pushed the release to the App Store without a lot of testing. I hope my users will forgive me for this.