Category: SmartGo

SmartGo One for Mac

I released SmartGo One for iPad and iPhone a bit more than a year ago, and thought the Mac version would be at most a few months behind. However, it proved to be more difficult than expected, and Mac Catalyst didn’t make it quite as easy as advertised. And I got distracted by bug fixes, localizations, and tons of improvements in the iOS version. (As well as designing a passive house.)

Anyway, the Mac version is now available. Like the iOS version, it’s a free download. All your in-app purchases from iOS should automatically show up and work on the Mac: books, problem collections, as well as your Pro subscription. Files in iCloud Drive are now shared between all your devices. And your progress in solving problems that synced between iPhone and iPad now also syncs to your Mac.

There are a few differences to the iOS version:

Menu items: Menus make it easier to add more functionality, and a few extra functions are available. For example, under Edit > Delete Nodes you’ll find the following submenu:

Delete All Variations and Delete Rest of Game are not currently available on iOS. Insert Node also offers more options. I’m looking for ways to make the same features available across all devices without overloading the UI.

On My Mac: File access on iOS is restricted to a specific folder reserved for the app. On the Mac, you can access other folders, once you allow access. There’s a new button next to On My Mac (see image below) that lets you select a folder with your go files. You can then directly access and work with files in that whole folder and any subfolders.

Title bar: To leave more space for the content, I’ve removed the navigation bar from the game view and moved some functions to the title bar (Game Info, Share, Settings). I’ve also added controls for switching between the areas of the app (My Files, Pro Games, Players, Problems, and Books) to the title bar (see image above). I found that having direct access there worked better than using the sidebar. (The sidebar is still available if you prefer to use it.)

Multiple windows and tabs: You can open multiple windows, each with multiple tabs. The Window menu has standard commands like Merge All Windows and Move Tab to New Window.

I’m excited that new features and bug fixes can now apply to all platforms: iPhone, iPad, and Mac. As always, please let me know what you’re missing in SmartGo One, or any issues you run into.

SmartGo Too Strong

SmartGo One incorporates KataGo, a really strong go engine. For most players, it’s too strong. While you can increase handicap until you manage to win, getting beaten mercilessly is not that enjoyable.

Smartgo computer levels

The newest version tries to make playing against the computer more interesting. When you start a new game, you can choose between five different levels, from ‘SmartGo++’ (full strength, playing as well as it can) to ‘SmartGo—’ (making more mistakes and even some blunders). The default is the middle of the road ‘SmartGo’ that will try to make the game more balanced.

The trick with dumbing down computer play is that you don’t want the computer to play non-sensical moves. The approach I’ve taken is that SmartGo will still select one of the moves that KataGo generates, but instead of always picking the best move, allow it to choose moves that lose points or reduce its chance of winning. If the computer is further ahead, it can lose more, bringing the game closer to balance.

This is a first stab at this feature, I will likely refine this in versions to come. Please let me know how this works for you: Do you always keep the computer at maximum strength? Is the lowest level still way too strong? Do you enjoy playing against the computer more?

Read UGF, NGF, and GIB files

SmartGo One can now read go games in file formats other than SGF: UGF, NGF, and GIB (with file extensions .ugi, .ngf, and .gib). UGF is popular in Japan, NGF is used by the Korean wBaduk server, and GIB is used by the Korean Tygem server.

SmartGo One will show thumbnails for these files, with the file extension indicated in the lower right corner.

Thumbnails of 4 games in different file formats

Support for these file formats is read-only. If you make changes to the game, it will be saved as SGF, overwriting the imported file. Paste SGF will also accept games in those formats.

Unfortunately, I don’t have the spec for any of these file formats, so the files are interpreted based on reverse engineering as well as comments at Sensei’s Library. I’d love to get more sample files so I can make sure my code handles all the corner cases. And if you run into files that are not handled as well as they could be, please send me a copy at Thanks!

Also, please let me know if I should revive my old code for reading the Ishi (.go) file format. Is anybody still using that one?

Analyze Game

Version 1.3 of SmartGo One adds a much requested feature: analyzing a whole game. I’ve also added a score graph so you can easily see where your game went off the rails. This is a bare-bones first implementation of that feature, will be refined in future versions.

To start a game analysis, tap and hold on the Hint icon, then choose Analyze Game. SmartGo will start with a quick pass through the game, then go back through spending more time on each move. Tap the Hint icon again to stop the analysis.

Analyze game popup
Tap and hold on Hint icon

The score graph shows the score lead for Black or White so you can easily see lead changes. It’s currently using a log scale to better show small changes when the game is close.

Analyze game score graph
Score graph in SmartGo One

You can also have it display the winning percentage. It uses a black or white horizontal line to indicate the projected winner – definitely a minimalist implementation at this point.

Analyze game winrate
Score and winning percentage

You can also tap and hold on the tree view to see the whole score graph (most useful on the iPhone).

Analyze game whole view
Tap and hold on tree view

This version also adds Spanish localization (thanks to Alejandro Montiel), reduces the app size by 200 MB to just 53 MB (by downloading large KataGo models on demand), and fixes some bugs, in particular one where empty text labels were wrongly written out in SGF.