The big feature is lots of new unlockable icons, along with some improvements around icons. Specifically:
- Fireworks icons.
- Hallowe’en icons.
- Valentine’s Day icons.
- Earth Day icons.
- Zodiac sign icons.
- Show icon locked status in more places.
- Icon selection screen layout improved.
- Unlockable icons screen layout improved.
- Icon license screen layout improved.
- SVG icons centered and scaled better.
- Improved Gomoku AI.
A while ago I announced that Tic-tac-toe Collection would no longer support Android Jelly Bean.
The reason was the desire by the Xamarin Forms team to drop support for it. That doesn’t seem to have happened. At least not explicitly.
Instead, more features are being added that require Android Lollipop (5.0). So at some point in the future that will become the minimum requirement for Tic-tac-toe Collection, and devices running 4.4 or lower will no longer receive updates. Existing installations will not be affected.
The server component for Tic-tac-toe Collection has always been based on Azure Functions, a serverless compute platform by Microsoft. It is currently used to run the cloud AI and the game simulation used for fairness estimation, and does this by running the exact same code as the app. And, pretty much like the blog, deploying it was a slightly error-prone mostly manual process.
But like the blog, I’ve automated the deployment using an Azure pipeline.
The first update deployed with the new system is an improvement to the fairness estimation.
The fairness estimation is performed by simulating a game for a few moves, and then seeing how each of the AI rates its best possible next move. A big problem with this method is that the AI is probabilistic, so for a single simulation it is unlikely to be accurate (and some times it will end up being terrible). And, since the result for each combination of settings is cached, if an estimate is bad, it will stay bad.
With the update however, each subsequent request for a fairness estimation queues another one to run, and the results are averaged. So hopefully over time the estimation will actually become accurate.
Another change is draws are now considered. For example, previously, the estimation for standard tic-tac-toe gave the first player a score of 0.91 (on a scale of 0 - 1). Which more or less means a 91% chance of winning, assuming draws aren’t possible. Now, the first player gets a score of 0.68, which is closer to what your intuition would suggest your chances of winning tic-tac-toe is.
A while ago I switched the blog from Wordpress to Hugo. Since the switch updating the blog has had a few steps to it:
- Write the new content.
- Commit to the git repo.
- Run the
hugocommand to generate the site.
- Upload to Azure Blob Storage.
- Purge the CDN.
I’ve been running those steps manually up until now. But then I discovered this guide to deploying Hugo using Azure Pipelines by Michael Brinkman.
After a long hiatus, this release is mainly about cleaning things up internally before more serious work begins. However, the following should be apparent:
- Fixed in-app purchases not working for some users.
- Fixed “Setup local game” part of modify game flow.
- Fixed “Quickplay” with human players in modify game flow.
- Hide AI thinking details while panning or zooming to improve performance.
- No longer show the AI as “thinking” when browsing a game’s history.
- Improved startup performance.
A small release to fix some iOS issues that only became apparent after launch, including:
- Fixed some screens that did not with certain regional settings (including Arabic and Thai).
- Significantly reduced app size.
- Fixed the modify game flow not working in some cases.
- Improved layout of the modify game page on tablets.
Tic-tac-toe Collection is now available to download for iPhone and iPad on the App Store.
All existing game modes and features are available, including cross-platform multiplayer.
Prime is not yet supported, but will be coming soon.
- Removed Google Advertising ID from Analytics.
- Made network games work if you start the app without a network connection.
- Fixed startup issues on iOS.
What is Google Advertising ID
This link explains it quite well, but basically it is an identifier stored on your device that identifies you to Google when using different apps and when browsing websites. This allows Google to determine a lot of information about users.
This information is not directly available to people who operate apps or websites (like me), but is available indirectly in an aggregate form. For example, I can see a report that says what percentage of my users are male or female, what their age ranges are, and even their interests broken down into various categories.
While this is all quite interesting, I realised I’m not making any decisions based on it, so I decided to disable it.
What does this have to do with advertising
One of the main uses of the data is to provide more relevant advertising. That will still be enabled for Tic-tac-toe Collection for users who have personalized ads enabled. It functions based on information already collected about you (from other places that have Google Advertising ID enabled for their analytics).
With regards to Google, Tic-tac-toe Collection will no longer be a source of information about you, but will still use it if it is available.
- Enabled iPad, landscape iPhone, and iOS 9 devices.
- Fixed some screens not handling safe area insets (i.e iPhone X) properly.
- Enabled rewarded ads for skipping campaign levels on iOS.
- Improved layout on tablet and landscape phone screen sizes.
- Improved campaign skip dialog.
- Hide the add remote player button when not in a network game.