Skip to content

Releases: herzbube/littlego

1.7.1: Bugfix release

23 Sep 20:55
1.7.1
Compare
Choose a tag to compare

Summary

Version 1.7.1 is a bugfix release. It was published on the App Store on September 23 2022.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Bugfixes

  • Fixed app crash when board position cells are reused after a new game is started or loaded from the archive (#397).
  • The app no longer crashes when the user performs a board setup operation (e.g. places a setup stone) and the game has ended without any move because a player immediately resigned without playing a move (#398).

1.7.0: Feature release

18 Sep 11:38
1.7.0
Compare
Choose a tag to compare

Summary

Version 1.7.0 is a feature release. It was published on the App Store on September 18 2022.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Features

Smart Game Format (SGF) support:

  • The app now supports reading and writing of all SGF node annotation and move annotation properties (#339). The app also displays these properties' values and lets you edit them. This means that you can now add a valuation to a move (e.g. good/bad move) and/or to the entire board position (e.g. good position for black/white), designate a board position to be a "hotspot" (e.g. it contains a game-deciding move), annotate a board position with an estimated score, and finally you can add textual notes to a board position. Annotation data is displayed by, and can be edited via, an all-new annotation view.
  • The app now supports reading and writing of all SGF markup properties (#349). Except for the DD property (dim parts of the board), the app also displays these properties' values and lets you edit them. This means that you can now mark intersections on the board with 5 different symbols (circle, square, triangle, "X" mark, "selected" symbol), place single-character letter markers or single-digit number markers, place a free-form label text, and finally you can draw arrows or plain lines on the board. The app has an all-new markup editing mode for this (accessible via menu icon) that includes drag & drop support to move around existing markup.
  • A notable consequence of these additions is that board positions without moves are now possible when loaded from an SGF file (e.g. a board position that contains only markup and/or annotations), but you cannot create such positions yet from within the app. This feature will be added in the next release.
  • In the Settings screen there are now a number of user preferences that affect how markup is drawn and that let you tweak some aspects of the markup editing process.

Improvements and changes

  • The general user interface (UI) of Little Go now looks and behaves the same on all device types (#371). This unification of UI layouts became necessary because the effort to support different layouts proved to be too much. Also the unification provided the opportunity to get rid of many behind-the-scenes hacks. The main changes are: 1) Smaller iPhone devices which only support the Portrait orientation UI layout, now display board positions and the navigation buttons differently than before. 2) Larger iPhone devices now display a tab bar when in Landscape orientation (alas, reducing the size of the board). 3) iPad devices now always show board positions when in Portrait orientation, and when in Landscape orientation they display board positions and navigation buttons differently than before.
  • Changed the icon of the "More Game Actions" button (#377). The previous icon was a "curved arrow" symbol, which seemed to confuse many users so that they couldn't find important actions, such as "New game". The new icon is the established "hamburger menu" icon, which should now more clearly indicate that the button pops up a menu with actions to select from.
  • Button boxes and the board position list now support Dark mode by switching to a dark background color (#378 and #379). Thanks to Peter Waldispühl for reporting this.
  • Coordinate labels are now drawn at the board edge instead of at the screen edge (#147).
  • The "Last move" marker is now drawn in red color, to distinguish it from the new Square markup symbol (#396).
  • The Go board is now always properly centered within the screen space that is available to it (#367).
  • Little Go has a technical limit for the number of moves that can be played in a single game (in case you wonder: the limit currently is 1394 moves). The app now explicitly checks for this limit when you attempt to place a stone or pass (#381).

Bugfixes

  • Board position zero (representing the start of the game) sometimes did not display handicap and komi. This is now fixed (#374).
  • Speculative fix for a potential app crash when the board setup is changed but somehow the board displays a position after the start of the game (#366). Instead of crashing the app now displays an alert.
  • Two speculative fixes (#369 and #370) for potential app crashes in a wide variety of circumstances.
  • Another set of fixes (#364) that helps with app stability and avoids a number of potential app crashes.

Regressions

  • A bug was introduced in version 1.6.0 that would cause Ko detection to fail after the app was suspended and was forced to restart by the operating system (a relatively common occurrence). This is now fixed (#372). Because Little Go has struggled with Ko detection many times in the past, this regression was particularly painful.

Technical changes

  • The project has been upgraded to the iOS 15.2 SDK and Xcode 13.2.1.
  • The following third party software has been upgraded to new versions: Cocoa Lumberjack (from 3.7.0 to 3.7.4) and Firebase Crashlytics (from 4.6.2 to 8.11.0).
  • SGF files that were previously locally maintained have now been added to version control (commit f6aa17e). The manual testing script in the TESTING document can now be played through by anyone.

1.6.0: Feature release

27 Feb 22:46
1.6.0
Compare
Choose a tag to compare

Summary

Version 1.6.0 is a feature release. It was published on the App Store on March 27 2021.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Features

Smart Game Format (SGF) data processing:

  • Added an SGF parser (#112). Little Go can now read and write SGF data on its own without having to delegate this task to Fuego (the built-in computer player library). The core piece of software is SGFC, the SGF Syntax Checker & Converter. A big thank you to Arno Hollosi for writing this tool and making it available under a free license, and also for helping with integrating it into Little Go.
  • When you select an SGF file in the archive you can now see if the file contains more than just one game. For each game you now get a preview of its content and you can select which game to load (#338).
  • In the Settings screen there are now a number of user preferences that give you some control over how SGF files are processed (#337). The defaults should be fine, especially for files that were created by Little Go, but if you have imported files from an external source you might need to make adjustments. The in-game manual has all the details.

Other features:

  • Added a new user preference to the "Board position" settings screen that lets you choose whether discarding the computer player's last move also discards your own last move (#99). The goal is that if the option is enabled you can immediately play again after a discard and try out a different move.
  • Added a new entry to the "More game actions" menu that lets you play a rematch without showing the "New game" screen first (#313). This is a convenientshortcut to quickly start a new game with the same parameters as the last one.
  • Added a new user preference that lets you choose what kind of computer assistance you would like to receive. The default is, just like before, to let the computer make a move on your behalf. What's new is that if you prefer you can now tell the computer to insted only make a suggestion how to play (#28). Note that the feature is still a bit rough on the edges. Known issues have been collected in #363, the polish will come in one of the next releases.

Improvements and changes

  • The buttons that let the user navigate between board positions have now more space between them (#346), making it less likely that the user taps the wrong button. Thanks to Dan Hassin for both reporting the issue and implementing the fix.
  • Loading a game from the archive now benefits from improved error handling. If a game cannot be loaded you will now get better error messages that should be more helpful.
  • When a game is saved to the archive the current player names are now written to the SGF data (#237).
  • The user interface has been adapted to newer iOS devices with a sensor notch, rounded corners and/or a Home indicator instead of a Home button (#336).
  • The app now supports Dark Mode (#345). A new, darker wooden background for the board still needs to be found (#360).
  • When Little Go is newly installed from the App Store the default computer player is now weaker (#358). This should give more users a positive first app experience. Users who want a challenge can still increase the difficulty by switching to a stronger computer player. A side effect of this change is that the default computer player no longer uses the "Pondering" setting, which means that the iOS device's battery should now be used up a lot less.
  • Added another predefined computer player that has "Pondering" disabled. Users who already have the app installed need to select "Reset to defaults" in the "Players" settings screen to see the new player.
  • The app's user interface no longer exposes GTP engine profiles as a separate entity, instead the user interface now only displays players (#211). It should now be easier for users to find the settings for adjusting the computer player's strength.

Bugfixes

  • The app no longer crashes when a game with many moves (500 or more) is archived or unarchived (#357).
  • The app no longer crashes when a game is loaded while an ended game with non-alternating dispute resolution is present (#361).
  • Speculative fix for a potential app crash when an SGF file is imported (#362).
  • The information which player resigned is no longer lost when the user switches to an earlier board position (#341).
  • On iPhone devices with larger displays, when the device is rotated while the activity indicator is displayed in the status view the activity indicator is now still displayed after the rotation (#343).

Regressions

  • All iPhones: When board setup mode was added in version 1.5.0 a bug was introduced that made it possible for board position lists to show erroneous information when moves were discarded and then replayed, or when games were restarted with different characteristics. This bug has now been fixed (#359).
  • iPhone devices with smaller displays: When iOS 13 or newer was installed on these devices the current board position view stopped responding to taps. This bug has now been fixed (#344).

Technical changes

  • The project has been upgraded to the iOS 14.3 SDK (#335) and Xcode 12.3 (#334).
  • The migration from Twitter Fabric to Google Firebase is now complete (#322).
  • Support for iOS 8 has been dropped, the minimum required version is now iOS 9.0 (#305). This should not affect any devices unless they are artificially held back at iOS 8.
  • The project's software build should now work out of the box for new contributors. Thanks to Dan Hassin for contributing the necessary changes.

1.5.1: Bugfix release

27 Mar 15:17
1.5.1
Compare
Choose a tag to compare

Summary

Version 1.5.1 is a bugfix release. It was published on the App Store on March 24 2019.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Bugfixes

  • App no longer crashes during launch on iOS 9.x and below (#332). Thanks to Li Chen Ke and Dennis for reporting the issue.

1.5.0: Feature release

21 Mar 20:50
1.5.0
Compare
Choose a tag to compare

Summary

Version 1.5.0 is a feature release. It was published on the App Store on March 21 2019.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Features

  • Added a board setup mode (#276). When you start a new game, instead of beginning to play you can now switch to board setup mode. In this mode you can place black or white stones in any order and combination to set up the initial board before you begin to play moves. In addition to placing stones, you can select the side which is to play the first move. Read the "Board setup" section in the in-game manual for a detailed feature description.

Bugfixes

  • Fix for a memory leak in UnarchiveGameCommand (#331)

Technical changes

  • Added an initial set of a few automated UI tests (#134)

1.4.1: Bugfix release

19 Jan 20:32
1.4.1
Compare
Choose a tag to compare

Summary

Version 1.4.1 is a bugfix release. It was published on the App Store on January 17 2019.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Bugfixes

  • Fixed a bug in Fuego that could cause Fuego to play a stone during the opening game on an intersection that was already occupied by a handicap or setup stone (#328). In addition, Little Go's error handling is now capable of dealing with such a situation so that user's are not stuck in a seemingly endless "computer is thinking" loop. Thanks to Rob Wildschut and Mark Spurlock for reporting the issue.

Maintenance and bugfix release

16 Jan 19:41
1.4.0
Compare
Choose a tag to compare

Summary

Version 1.4.0 is a maintenance and bugfix release. It was published on the App Store on January 15 2019.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Known bugs

  • On iPhone Plus devices as well as on iPhone XS Max, when the user navigates to the first or last board position most of the time the new current board position is not displayed with a special background color as it should (#326).

Features

  • Added support for loading and saving .sgf files that contain stone and/or player setup nodes (#323). This kind of .sgf files is frequently used for sharing board positions that teach how to play best in certain game situations, or that are puzzles to be solved. Notes:
    • It was already possible to load these .sgf files before the change, but Little Go would not display the stones specified by the stone setup nodes, and playing after loading such an .sgf file would usually result in the alert message "Your move was rejected by Fuego".
    • Even after this change, only those .sgf files are properly handled which contain setup nodes at the beginning of the file. Little Go still cannot properly handle .sgf file that contain setup nodes after the first move is played.

Improvements and changes

  • The "New game" screen now displays a recommendation to use the area scoring system.
  • The "Game info" screen now shows stone and player setup information.
  • When the app is started for the first time after the update, two new GTP commands "list_setup" and "list_setup_player" are added to the user's list of GTP commands (Diagnostics > GTP commands).
  • The way how an archived game can be shared was re-implemented (UIActivityViewController instead of the long deprecated UIDocumentInteractionController). This may result in users now seeing different sharing options.
  • The Changelog is now available in-app

Bugfixes

  • When playing with area scoring, the Fuego computer player now correctly includes handicap compensation in its score calculation (#319). Before this fix, the Fuego computer player was calculating scores without handicap compensation, which would lead to it resigning (when playing as white) even though it had actually won the game. Or it might not resign (when playing as black) even though it had actually lost the game. This serious bug was reported by dtsudo - thanks a lot!
  • The app now synchronizes komi with Fuego when board positions are changed (#324). Up until now the app never synchronized komi. This omission could lead to the following problems:
    • An .sgf file is saved with the wrong komi value in it.
    • Fuego is likely to play wrong moves. For instance, towards the end of the game Fuego might start to pass because it thinks it is winning, or it might resign because it thinks it is losing. The probability of misplays increases when there is a large difference in komi values.
    • These problems would occur only if the user loaded an .sgf file that contained a different komi value than the last game that was started with the "New game" function, and then changed board positions or discarded a move.
  • A bug in the board drawing routines was fixed which caused the app to occasionally crash (#308).

Regressions

  • White player influence is now shown correctly with white squares (#317). White player influence was erroneously shown with black squares since the release of version 1.1.0. Thanks for reporting this bug go to ecru86.
  • Users that do not have automatic crash reporting enabled are now asked whether they want to submit a crash report (#321). The alert that asks for permission was accidentally disabled since the release of version 1.3.0. Because the alert was disabled, no crash reports were submitted at all unless the user had automatic crash reporting enabled.

Technical changes

  • The project has been upgraded to the iOS 12.1 SDK (#314) and Xcode 10.1 (#315)
  • Code signing overhaul: Code signing is now managed automatically by Xcode
  • The project is now built with Bitcode enabled (#295)
  • The project now uses libc++ (#181), the C++ standard library implementation provided by the LLVM project, instead of libstdc++, the GNU project's implementation.
  • Communication between Little Go and Fuego is no longer based on named pipes, instead it works with a custom stream buffer that acts as an in-memory pipe (#316). This change was necessary because libc++ has a bug [1] that breaks the original named pipe communication channel. [1] https://bugs.llvm.org/show_bug.cgi?id=23078
  • Started migration from Twitter Fabric to Google Firebase (#320). A best effort has been made to disable all other Google services and to only keep Crashlytics enabled. Notably, Firebase Analytics data collection has been explicitly disabled! An explanatory side note: This technical change has become necessary because in January 2017 Google acquired Fabric/Crashlytics and, after a grace period of 1.5 years, announced in September 2018 that they will discontinue Fabric in favour of the Firebase platform. It's all very complicated, but the main point is that Little Go wants to continue to use the excellent Crashlytics as its crash reporting service, and since that now requires integration with the Firebase platform, Little Go has no choice but to follow Google's lead.
  • All third party software has been upgraded to their newest versions (Boost 1.69.0, CocoaPods 1.5.3, MBProgressHUD 1.1.0, Cocoa Lumberjack 3.4.2, Fabric 1.6.13, Crashlytics 3.8.6)

1.3.1: Bugfix release

22 Jan 12:55
1.3.1
Compare
Choose a tag to compare

Summary

Version 1.3.1 is a bugfix release. It was published on the App Store on January 19 2017.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Features

None

Other improvements and changes

None

Bugfixes

  • Another ko detection problem when viewing an old board position is now fixed (#307). This was the root cause for the dreaded alert message "Your move was rejected by Fuego", which must have popped up on quite a few people's devices, but which I had never been able to reproduce despite the bug reports that were kindly sent to me by some of the most patient users. Yesterday, however, I received a report that finally gave me a reproducible case which allowed me to pinpoint and fix the coding error. Many thanks to everybody who sent bug reports, but especially to Manuel Braun for submitting the crucial last bug report.

Technical changes

None

1.3.0: Technical and bugfix release

14 Sep 08:28
1.3.0
Compare
Choose a tag to compare

Summary

Version 1.3.0 is a technical and bugfix release. It was published on the App Store on September 14 2016.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Features

  • iPad Pro is now supported with its native screen resolution (#297)

Other improvements and changes

  • When the game is resumed to settle a life & death dispute, a "Resume Play" alert is displayed if the game rules allow resumption with non-alternating play. Previously the alert buttons were sometimes displayed in the order Black/White and someteimes in the order White/Black, depending on whose player's turn it was. Now the alert buttons are always displayed in the order Black/White (#300)

Bugfixes

  • Ko detection now works correctly if an old board position is viewed (#289). Many thanks to Denis Martynov for bringing this to my attention. I promised to release the bugfix "as soon as possible, probably next weekend". This was in June 2015 - over a year ago :-(
  • The status view now displays the correct text after the user discards all moves at the beginning of a game (#301)
  • iPhone n Plus devices: The "Game Info" and "More Game Actions" buttons are now correctly enabled after rotating the device to landscape (#299)

Technical changes

  • The project has been upgraded to the iOS 9.3 SDK (#298) and Xcode 7.3.1
  • Support for iOS 7 has been dropped, the minimum required version is now iOS 8.1 (#260). The only device that is no longer supported is the iPhone 4.
  • The project now uses CocoaPods for most 3rdparty libraries (#291)
  • The 3rd party crash reporting library QuincyKit was replaced by a new library called Crashlytics (#293)

1.2.0: Feature release

24 Jun 16:16
1.2.0
Compare
Choose a tag to compare

Summary

Version 1.2.0 is a feature release. It was published on the App Store on June 23 2015.

Below is a summary of changes, taken verbatim from the ChangeLog document. For the full story, a list of issues closed for this release is available here on GitHub.

Features

  • iPhone 6/6+ are now supported with their native screen resolution (#263)
  • iPhone 6+ has a redesigned user interface that makes better use of the available screen estate (#253). iPhone 6+ also supports holding the device in landscape.
  • When starting a new game, it is now possible to select from several predefined rulesets, which allows setting many game rules at once with a single tap (#274). This makes the "New game" screen less cluttered and more user friendly. Rule enthusiasts can still adjust each individual game rule by calling up an "Advanced settings" screen.
  • Gameplay mechanics at the end of the game have been significantly revised:
    • It is now generally possible to resume play after two pass moves without having to discard ("undo") the second pass move
    • 3 new game rules were added that govern gameplay mechanics at the end of the game. These rules allow to play games under AGA or IGS rules (#221, #223), but also under Japanese and Chinese rules where non-alternating play is possible to resume a game after it has ended after two pass moves (#275).
  • As a consequence of these new gameplay mechanics at the end of the game, a much wider array of .sgf files can now be loaded from the archive, provided that the user selects the appropriate rules for the game that is in the .sgf file.
    • Files that contain more than two pass moves at the end of the game. This is especially useful to load games that were played on IGS (Pandanet), where games end with 3 instead of 2 pass moves.
    • Files that resume play after two pass moves. Again, this is useful for loading files from IGS (Pandanet), but also for files that contain games played under any ruleset that allows play to be resumed after two pass moves.
    • Files that contain non-alternating play (e.g. two moves in a row by black). This is useful to load files that contain game problems where theoretical board situations are set up by non-alternating play. Also, games can now be loaded that were played under rulesets (e.g. Chinese, Japanese) that allow play to be resumed after two pass moves by non-alternating play.
  • Special thanks go to Norbert Langermann and his innocent suggestion to add support for loading .sgf files with games that were played on IGS. This was the trigger for adding the new end-of-game gameplay mechanics.
  • One more thing: When placing a stone a magnifying glass is now displayed that shows the area of the board that currently under the user's 'fingertip (#271). This feature replaces the old "stone distance from fingertip" feature, which confused and was hated by many users.

Other improvements and changes

  • Disable Fuego pondering in human vs. human games (#281). This saves a lot of otherwise wasted battery power. Thanks to Ben Jackson for the suggestion. Unfortunately, a nasty piece of code was required to upgrade existing user preferences, which may result in unnecessary player and profile backup copies cluttering the upgraded preferences. Users will get an alert if this happens so that they can clean up their preferences.
  • When a game cannot be loaded from the archive because it has moves after the game has ended, the error message displayed to the user should now be less cryptic (#277)
  • When the game has ended, the "Scoring" menu item is now shown as a button so that the user can quickly switch between scoring mode and play mode without first having to call up the "More game actions" menu (#268)
  • A couple of buttons have gotten new icons (#269). Thanks to David Helfand for the suggestion.
  • The status view now always shows the status for the current and the next board position (#265). Up until now the status view only showed when a player had passed, and never showed any information about the next board
    position.

Bugfixes

  • The app now correctly synchronizes handicap stones with Fuego when board positions are changed (#279). This is the most important bugfix of this release because it fixes another source for the infamous "The computer played an illegal move" and "Your move was rejected by Fuego" alerts. Many thanks to Laurent Guanzini for providing step-by-step instructions that helped me with diagnosing the problem!
  • The app no longer crashes when a game is loaded from the archive that contains a board that is larger than 19x19 (#283). The game still cannot be loaded, but an error message is displayed instead of crashing.
  • The app no longer crashes when the last game in the archive is deleted (#286)
  • It is now possible to place a stone when viewing an old board position, even if the game has already ended (#278). It is thus possible to resume play at an earlier board position than the last.
  • The user interface no longer rotates while a stone is being placed (#272)
  • The status view now correctly displays " passed" when a computer vs. computer game is paused (#266)
  • If the user attempts to make an illegal move, the status view now displays the intersection of the move (#261)
  • The device statusbar at the top of the screen no longer disappears when some screens are displayed (#256)
  • iPad only: The board is now rotated correctly even if it is not visible at the time that the device orientation changes (#255)
  • A number of other bugs were fixed that may have caused crashes (#192, #284)
  • Other minor bugfixes (#209, #257, #258, #262, #273)

Technical changes

  • The project has been upgraded to the iOS 8.1 SDK (#248) and Xcode 6.1.1
  • 64-bit support was added (#249)
  • The Xcode project has been cleaned up (#252, #253)
  • The vector graphics sources (.svg files) for all icons in the app were added to the project and to version control (#264)
  • User defaults updating is no longer triggered for fresh installs (#282)
  • The 3rd party crash reporting library QuincyKit was upgraded to version 3 (#285)