Tic-tac-toe Collection
Blog Other  

Tic-tac-toe Collection has been implemented with a technology called Xamarin Forms. That officially reached end-of-life at the end of April 2024.

There is a natural progression from Xamarin Forms to Microsoft MAUI, but it is a non-trivial amount of work.

Currently in progress

The short term plan is to do as much as possible to enable the MAUI transition to be as smooth as possible while still using Xamarin Forms. This will mainly be removing any dependencies that aren’t supported in MAUI (which means not changing in a user-visible fashion).

Future - Started

Save game revamp

I plan to switch the game to save all previous games by default. The storage space is tiny. This will also involve a new section combining the functions of the current load game screen and game stats screen.

Automatically discovered game modes

Since fairness calculations based on game simulations have been improved, I can now see which game modes are fairer than others. At the moment the results are only based on game modes people have actually tried though. To improve the situation I plan to do a few things. First is to run the simulation more for modes that look promising - simulations with a few runs are unlikely to be accurate. More interesting is to take the promising modes and mutate them - change one of the properties slightly - and then simulate that. This essentially becomes a simple genetic algorithm for finding fairer games.

The first results of this have been mixed. After playing with it for a while I’ve decided a more restricted search would be more interesting. Finding the best possible game modes out of all possible variations is quite daunting. Finding the best game mode that is “reasonably similar” to a specific one might be more useful.

Player rating

This will become a key part of any online multiplayer, but I plan to have it working offline too.

It will be Elo based, but with modifications to deal with requirements that most games don’t have. First is multiplayer. I won’t be the first to deal with this using an Elo-like system, and there are a few ways to handle it that all seem reasonable. The other big requirement is inherently unfair games, and my research on this topic has found no existing material on this.

Most games are designed to give each player an equal chance of winning, or at least as close as possible. And, for games played seriously like chess, a single match involves playing several games in which the advantage alternates between players so the match as a whole is considered fair.

Tic-tac-toe Collection has mostly unfair games. But, they are at least quantifiably unfair. This means I should be able to take that into account as part of a rating system. Early investigations are promising.

An independent implementation of this is largely complete and is documented on my personal blog in the Expanded Elo Rating series.

Future - Not started

AI options

At the moment the only difference between the difficulties is how long the AI searches for. There are a couple of other parameters however. There is one for changing the bias between promising moves and unexplored moves, as well as one for how ties are scored compared to wins and losses. My plan is to expand this into different AI profiles that could vary these parameters more. Combined with allowing them to get ratings just like normal players this means the better parameters would actually be discovered over time.

I’m also planning to give the AI names.

Campaign improvements

Campaign has gotten very little love since I added it. It’s a little buggy around progression, I don’t really like the easy/medium/hard split, and there are new game modes that need to be added.

I have a plan developing in my head to make the choice of the game modes to be semi-automated (which is going to be more important over time as more game modes are added). I will probably keep the existing campaign as a kind of legacy mode.

Online multiplayer

A big one that I’ve been intending to do for a while. In many ways it will be simpler than local network multiplayer but requires a commitment to some server resources. The plan includes both private games and matchmaking.

Co-op games

This makes more sense in the context of online multiplayer. I imagine a game mode in which several players “vote” on which move to play.

Crowd games

The simplest form is splitting users into two groups (possibly randomly, possibly with a choice) and have them play a game against each other. Everyone chooses the move they would play and after a certain time limit the most popular move is played.

Match options

The most basic would be to simply track the number of wins and losses as you repeatedly choose “rematch”. There could also be a predetermined match length (best of 5 for instance). I also plan to add timer options, including a simple per move timer and possibly chess clock timing.

Other game modes

Including but not limited to:

  • Ultimate tic-tac-toe
  • Notakto
  • Wild tic-tac-toe
  • Quantum tic-tac-toe
  • Order and chaos
  • SOS
  • 3D tic-tac-toe

Infinite topologies

A new infinite board size. Moves would be restricted to being within one square of the current minimum and maximum row and column. As well as an option of being infinite in both directions, there would be infinite in one direction but something else in the other direction. I believe the complete list of new topologies would be:

  • Infinite plane
  • Infinite horizontal strip
  • Infinite vertical strip
  • Infinite horizontal cylinder
  • Infinite vertical cylinder
  • Infinite horizontal Möbius strip
  • Infinite vertical Möbius strip

Sharing games

A natural extension to sharing game modes is to allow users to share whole games with history.

Airplay support

The ability to broadcast games to AppleTV. You could already just broadcast an iOS device’s screen but it’s possible to completely customize what appears on each screen. This would mean slightly tweaked UI with interactive elements hidden.

This could possibly include other broadcast formats like using a Chromecast but Airplay from iOS is much easier to implement.


This has always been something I wanted to do. The game has worked to some degree on Windows on and off, but some things didn’t quite work so well (partly because Xamarin Forms support for Windows is a lower priority). The switch to MAUI should improve desktop support on Windows, and it also enables macOS support mostly for free.

Xbox One

In theory UWP apps will just run on an Xbox One with minimal changes and can be made available as with plain apps, or games via the Creators Collection. To actually make the game fun to play though a lot of work will need to be done to make the controls actually feel like a console game.

Monday, May 6, 2024 Mon, May 6, 2024 06 May '24